Zabbix Monitoring

Allgemeines

  • open Source Monitoring aus Riga / Lettland
  • Zabbix monitored jedes IP-Gerät
  • Server unter Linux, für viele Derivate, auch als fertige Appliance (Alma Linux)
  • feste IP in /etc/sysconfig/network-scripts/ifcfg-[ens160]
  • SQL-Datenbank speichert Historie
  • Zabbix Server LogFile - /var/log/zabbix/zabbix_server.log
  • Zabbix Agent LogFile - /var/log/zabbix/zabbix_agentd.log
    Agent Config file - /etc/zabbix/zabbix_agentd.conf
  • Agenten:
    • active Agent (Client sendet bei Änderungen, gut für häufige Daten oder kurze Spitzen)
    • passive Agent (default, Server fragt Client regelmäßig ab)
    • SNMP
    • IPMI - Daemons (Management-Konsolen)
    • JMX (Java Management Extensions)
    • kein Agent (ICMP/HTTP, SSH, Telnet..)
  • Templates
    andere Templates suchen
    • yaml - Datei öffnen, RAW speichern
    • Zabix -> Data Collection -> Templates -> Import

Erste Schritte:

  • Alert -> Actions -> Discovery Actions -> Create Action
  • Name: Auto add Host in LAN
  • Add: Discovery Rule (siehe unten)
  • Operation: Add Host

  • Data Collection -> Discovery -> LAN PING
  • Checks: ICMP ping, HTTP, SSH

Backup & Restore:

  • MySQL Backup
    mysqldump --single-transaction zabbix > /home/backup.sql (als Root ist kein Kennwort erforderlich)
  • MySQL Restore
    mysql zabbix < /home/backup.sql
  • Config Files
    /usr/lib/zabbix/*
    /etc/zabbix/*
    /etc/ngnix/*
  • Frontend Templates -> Export als YAML File
  • Zabbix Backup & Rescue

Server installieren

Server unter Debian:

  • https://www.zabbix.com/de/download
  • mysql-server -> mariadb-server !
  • "zcat" als uroot
  • "create user zabbix@localhost identified by 'password';" in MariaDB: "create user zabbix@localhost USING PASSWORD('password');"
  • Login: http://<server>/zabbix  Default Login: Admin / zabbix

Updates:

  • dnf update + upgrade (Alma)

Sensoren und Agents:

On Ubuntu 24:

  • wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
  • sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
  • sudo aps update
  • sudo apt-get install zabbix-agent
  • sudo nano /etc/zabbix/zabbix_agentd.conf  - Agent konfigurieren  (Hosname, Server, ServerActive)
  • service zabbix-agent restart
  • Zabbix: Linux by ZabbixAgent

On OPNsense:

-> siehe dort

On Proxmox PVE:

  • siehe https://www.zabbix.com/de/integrations/proxmox
  • Zabbix Template, User+API in Proxmox anlegen
  • >100 Sensoren und Diagramme
  • apt-get install zabbix-agent
  • Server IP in /etc/zabbix/zabbix_agentd.conf
  • systemctl restart zabbix-agent - Restart
  • systemctl status zabbix-agent  - Funktionstest
  • Proxmox mit Zabbix per API verbinden (Monitoring Proxmox VE using Zabbix Agent - Geek is the Way!)
    PVE Datacenter:
    1. zabbix@pam (oder pve) user created
    2. Permissions: Add User Permissions (Pfad: root, Role= PVE Auditor)
    3. (Add API Token permissions, Role= PVE Auditor)
    4. API token for the user created  (UserID = Bezeichnung ohne Leerzeichen, Privilege Separation= aus)
    Zabbix server:
    1. Macros defined (PVE.TOKEN.ID, PVE.TOKEN.SECRET, PVE.URL.HOST (IP) with the values from PVE
    2. PVE host created with Proxmox VE by HTTP template (Kopie) assigned (IP address defined, jeden Host aufnehmen als Agent)
    3. Added to host groups Linux and Hypervisors
    4. Monitoring/Hosts shows 2 hosts, the zabbix server itself and the PVE host

On Ubiquiti Edge Switch:

kein Agent, kein SNMP:

  • Template: "ICMP Ping" (Ping, Loss, Response Time)
  • Template; "Webseite by Browser" (URL)

Zabbix Agent 2:

  • aktive Push-Alarmierung
  • gibt es (noch) nicht für alle Plattformen
  • speichert Daten zwischen
  • Parameter "system.hostname" gibt den kurzen Hostname zurück
  • zusätzliche Items wie Dateibesitzer, Dateiberechtigung
  • Überwachung von TLS/SSL-Zertifikaten auf Gültigkeit und Details

Dashboard:

Text Widget

Es gibt Stand 01/2026 im Dashboard kein Text Widget mehr.

Workaround:

  • Add an "Item value" widget
  • Uncheck "Show header" in the upper right corner
  • Select any item (won't be visible)
  • Uncheck all the boxes in the "Show" section, except for "Description"
  • In "Advanced Configuration", add your text and set the properties you want in Description (size, position, boldness, colors)

Anzeige ohne Anmeldung

Das Dashboard kann nur mit Nutzeranmeldung geöffnet werden, auch bei "Guest" muß der Nutzer ohne Kennwort eingegeben werden.

Lösung:

  • Guest User (ohne Passwort) aktivieren, lesen aller Objekte erlauben
  • gewünschte Dashboards: teilen - öffentlich
  • Usergruppe "Dashboard" anlegen, Benutzer "guest" hinzu fügen, Host-Berechtigung: gewünschte Hostgruppen=lesen
  • User "guest": Gruppe "Dashboard" hinzu fügen
  • Test: kann User "guest" die Dashboarrds lesen?
  • URL: https:///<zabbix>/index.php?name=guest&password=&enter=Sign%20in
  • bei Bedarf geht auch: https:///<zabbix>/index.php?name=guest&password=&enter=Sign%20in&dashboardid=405
  • bei Bedarf Seite mit iFrame anlegen
  • unter Administration > Allgemein > Sonstiges eine Ausnahme für die URL für die X-Frame-Option hinzufügen

Kiosk-Mode (ohne Menue):

  • http:///zabbix.php?action=dashboard.view&kiosk=1

Alarmierung:

  • Alerts -> Media Type -> nach Wunsch konfigurierien + ENABLE (Zeilenende: Test)
  • Users -> Users -> Media Type hinzu fügen
  • Alerts -> Actions -> Trigger Actions konfigurieren
  •   Add -> Type: Trigger severty, Operator: equals, Severity: High
  •   Operations: konfigurieren, Default operation step duration, Alert= enable

Maps:

Maps sind interaktive Bilder vergleichbar mit Prozess-Schaubildern in PLS-Systemen.
- Elemente (Hosts, Host Groups, Maps, Trigger) können sich je nach Item-Trigger ändern
- Verbinder (Links) können sich je nach Item-Trigger ändern
- Shapes sind Rechtecke / Ellipsen / Linien mit Beschriftung ohne Aktion

Map-Elemente können:
- Links zu anderen Karten enthalten
- Staus des Elements / der Hostgroup anzeigen
- Makros nutzen zur Anzeige von Realtime Daten

  • Icons werden verwaltet in Administration -> General -> Images
  • Maps verwaltet unter Monitoring -> Maps
  • Maps (public oder private) können in Dashboards eingebunden werden
  • Maps können in Maps eingebunden werden

Makros:

  • Schlüssel auslesen unter Monitoring -> Latest data, Haken bei "Show details" + Apply  (grüne Zeile)
  • {HOST.HOST} / {HOST.NAME}: Displays the host's name (or DNS name if configured).
  • {HOST.IP}: Shows the host's IP address.
  • {HOST.DNS}: Displays the host's DNS name.
  • {HOST.CONN}: Shows the host's connection address (IP/DNS).
  • {HOST.ID}: Displays the host's internal numeric ID
  • {?last(/{HOST.HOST}/icmppingsec)}  - LAST -Wert von icmppingsec
  • {?avg(/{HOST.HOST}/icmppingsec,30m)} - Durchschnittswert, 30 min
  • {?last(/{HOST.HOST}/net.if.in[igc0])}  - aktueller Wert von Interface igc0 / In
  • HDD: {?last(/{HOST.HOST}/vfs.fs.dependent.size[/,pused])}
  • statt HOST.HOST kann auch ein anderer HostName angegeben werden
    Bsp. für WAN-Link:
    In: {?last(/OPNsense Schieben/net.if.in[igc0])}
    Out: {?last(/OPNsense Schieben/net.if.out[igc0])}
  • Nachkommastellen ausblenden (runden): {?round(last(/HOST.KEY),0)}

von Uwe Kernchen

Kommentare

Einen Kommentar schreiben

Bitte addieren Sie 8 und 2.