Zabbix Items Daten ohne Agent sammeln

Was sind einfache Checks?

Mit sogenannten „Simple Checks“ kann der Zabbix-Server eigenständig, ohne den Zabbix-Agenten oder einen SNMP-Agenten, Daten sammeln.

Simple Checks prüfen per ICMP Ping oder Portscan, ob ein Host online ist und ob Dienste Verbindungen entgegennehmen.

Die Rückgabewerte der Simple Checks sind entweder Eins oder Null (Numeric unsigned), wenn der Check die Verfügbarkeit eines Hosts oder Ports prüft. Bei den Performance-Messungen wird die Anzahl der Sekunden (Numeric float) zurückgegeben, die für das Aufbauen der Verbindung gebraucht wurden. Schlägt eine Performance-Messung fehl, weil der entsprechende Port nicht offen ist, wird Null zurückgeliefert.

Die Ergebnisse von sogenannten Simple Checks. Per Ping und Portscan werden Hosts und Dienste geprüft.

Beispiel: Webserver überprüfen

Klicken Sie im Hauptmenü auf Configuration|Hosts und wählen Sie rechts im Dropdown-Menü eine Hostgruppe aus. Sie sehen die Liste aller Hosts in dieser Gruppe. Klicken Sie in der Zeile eines Hosts in der Spalte Items auf den Link Items. Sie sehen die Liste aller Items für den ausgewählten Host. Klicken Sie nun oben rechts auf die Schaltfläche Create Item.

Wenn der ausgewählte Host mehrere IP-Adressen hat, wählen Sie eine passende IP-Adresse im Dropdown-Menü Host Interfaces aus. Lassen Sie sich nicht von der Portangabe 10050 verwirren. Für Simple Checks wird der Zabbix-Agent nicht verwendet und der Port 10050 des Hosts folglich nicht kontaktiert.

Geben Sie dem neuen Item einen aussagekräftigen und präzisen Namen, zum Beispiel „$1-Daemon listening“. $1 ist eine Variable, die später mit der ersten Option des Item-Keys gefüllt wird.

Wählen Sie für das neue Item als Typ „Simple Check“ aus. Den Item-Key können Sie über den Select-Button auswählen, oder Sie tragen direkt net.tcp.service[ssh] ein. Es wird geprüft, ob der SSH-Dienst auf Port 22 Verbindungen annimmt.

Den Type of Information belassen Sie auf dem voreingestellten Wert „Numeric (unsigned)“, denn das Item kann nur die Werte 1 oder 0 annehmen.

Im Dropdown-Menü „Show value“ wählen Sie „Service state“ aus. Der Wert 1 wird dann durch Up und 0 durch Down ersetzt. Im Feld „New application“ geben Sie zum Beispiel „Portscans“ ein. In allen anderen Eingabefeldern übernehmen Sie die voreingestellten Standards. Speichern Sie das neue Item mit Save ab.

Sie sehen nun wieder die Liste der Items für den ausgewählten Host. Als neues Item sollte nur „ssh-Daemon listening“ hinzugekommen sein. Prüfen Sie, ob das Item auch funktioniert. Wählen Sie den Host über Monitoring|Latest Data aus. Sie sollten nun sehen, ob der SSH-Dienst Verbindungen akzeptiert oder nicht.

Einfacher Check, ob der SSH Dienst auf einem Host lauscht

ICMP echo request einrichten

Wenn Sie Hosts per Internet Control Message Protocol (ICMP) überwachen wollen, stehen drei Items zur Verfügung.

  1. icmppingloss[<target>,<count>,<interval>,<size>,<timeout>] Liefert den Paketverlust in Prozent (Numeric unsigned) zurück.
  2. icmpping[<target>,<count>,<interval>,<size>,<timeout>] Prüft, ob ein Host auf ICMP-Pings antwortet, Rückgabe vom Typ Numeric (unsigned): 0 = Host antwortet nicht, 1 = Host antwortet.
  3. icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>] Prüft, ob ein Host auf ICMP-Pings antwortet, Rückgabe vom Typ Numeric (float). Das Item „funktioniert“ wie icmpping mit dem Unterschied, dass bei einer erfolgreichen Verbindung nicht 1, sondern die Anzahl der Sekunden zurückgegeben wird, die für das Aufbauen der Verbindung gebraucht wurden. Antwortet der Host gar nicht auf Pings, wird 0 zurückgeliefert.

Den Items, welche ICMP echo requests durchführen, können Sie folgende Optionen mitgeben:

target
Host-IP-Adresse oder DNS-Name, der „gepingt“ werden soll. Wird in der Regel nicht als Option angegeben. Wenn nichts angegeben ist, wird der Host als Target verwendet, für den das Item eingerichtet wird.
packets
Anzahl der Pakete. Standard sind drei Pakete.
interval
Zeit zwischen den erfolgreich verschickten Paketen in Millisekunden (Mindestwert 20 ms, Standard 25 ms)
size
Paketgröße in Byte (Mindestwert 24 Byte, Standard 56 Byte für x86, 68 Byte für x86_64)
timeout
Timeout in Millisekunden (Mindestwert 50ms, Standard 500ms)
mode
min, max, avg (Standard)
Ping mit zehn Testdurchläufen, Intervall 24 Millisekunden, 128 Byte Paketgröße und einem Timeout von 75 Millisekunden.

Die ICMP echo requests führt der Zabbix-Server mit dem externen Programm fping durch.(Siehe auch die Hinweise zu fping im Kapitel Zabbix-Server installieren.) Wenn Sie keine Optionen für die Ping-Checks angeben, werden die Standardwerte der installierten Version von fping verwendet. Die oben genannten Standardwerte können je nach Version von fping und verwendeter Distribution abweichen. Konsultieren Sie die Manpage von fping.

TCP-Portscans durchführen

net.tcp.service[service,<ip>,<port>]
Prüft, ob ein TCP-Server Verbindungen entgegennimmt, Rückgabe vom Typ Numeric (unsigned): 0 = Server nimmt keine Verbindung an, 1 = Server nimmt Verbindung an.

net.tcp.service.perf[service,<ip>,<port>]
Prüft, wie lange ein TCP-Server braucht, um eine Verbindung entgegenzunehmen, Rückgabe vom Typ Numeric (float). Funktioniert wie net.tcp.service mit dem Unterschied, dass bei einer erfolgreichen Verbindung nicht 1, sondern die Anzahl der Millisekunden zurückgegeben wird, die für das Aufbauen der Verbindung gebraucht wurden. 0 = Server nimmt keine Verbindung an.

Als Service können Sie folgende vordefinierte Services verwenden:
ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, https, telnet, tcp.
Wenn Sie für diese Services keinen Port angeben, dann wird der Standardport verwendet. Möchten Sie einen beliebigen Service testen, geben Sie als Service tcp an. Die Angabe eines Ports ist dann obligatorisch, zum Beispiel net.tcp.service[tcp,,3600].

Zabbix führt reine Portscans durch, wie es zum Beispiel auch das Kommando netcat durchführen würde. Der Zabbix-Server prüft, ob ein bestimmter TCP-Port offen ist. Es wird nicht geprüft, mit welchem Protokoll der Dienst antwortet. Wenn Sie zum Beispiel net.tcp.service[http,,22] als Item anlegen, wird der Zabbix-Server melden, dass der Service verfügbar ist.

Sie können den Items als Option eine abweichende IP-Adresse angeben, auf die der Test durchgeführt werden soll. Diese Option geben Sie in der Regel nicht an. Dann wird die IP-Adresse oder der DNS-Name des Hosts verwendet, so wie Sie es in der Host-Konfiguration angelegt haben.

Wenn Sie über das Dropdown-Menü Show value die Option Service State auswählen, dann werden die Werte 0 und 1 durch Up und Down ersetzt. Wenn Sie ein Item mit dem Key net.tcp.service.perf anlegen, sollten Sie als Units Sekunden (s) angeben.

Die Timeouts für die Verbindungen können Sie nicht individuell angeben. Es gilt das generelle Timeout für alle Checks, welches Sie in der Datei zabbix_server.conf für den Wert Timeout angeben. Der Standard sind drei Sekunden.

Item, welches prüft, ob ein Webserver antwortet
Beachten Sie bei den Rückgabewerten der Performance-Items, zum Beispiel net.tcp.service.perf[http], die Rundung der Werte.

Bei sehr schnellen Verbindungen zeigt Ihnen Zabbix auf der Weboberfläche im Menü Latest Data eine Null an. Das bedeutet, die Verbindung war so schnell, dass der Wert auf Null abgerundet wurde.

Intern arbeitet Zabbix aber mit exakten Messwerten, so dass ein Trigger mit der Funktion „Wert gleich 0“, das heißt Dienst nicht verfügbar, nicht auslöst.