Zabbix ist ein Musterbeispiel dafür, wie innovative Open Source-Projekte über die Jahre wachsen und gedeihen, bis sie schließlich ihr kommerzielles Potenzial entfalten. Das Team um Alexei Vladishev hat mit Zabbix eine Monitoring-Umgebung entwickelt, die nicht nur ein hohes Maß an Funktionalität bietet, sondern auch an Benutzerkomfort. Darüber hinaus integrieren sie aktuelle technische Entwicklungen wie Virtualisierung in die eigene Umgebung.
Administratoren schätzen die Möglichkeiten, die die VM-Technologie bietet, um verschiedene Umgebungen auf einem System auszuführen, gerade auch zur Trennung von Applikationen. Doch spätestens dann, wenn in den VMs nicht nur Testumgebungen, sondern produktive Systeme ausgeführt werden, stellt sich die Frage, wie sich diese überwachen lassen. Viele klassische Monitoring-Umgebungen scheitern an dieser Aufgabe. Nicht so Zabbix, das über einen Erkennungsmechanismus verfügt, der VM-ware-Hypervisoren und virtuelle Maschinen automatisch aufspürt.
Das Monitoring virtueller Maschinen mit Zabbix erfolgt in zwei Schritten: Im ersten Schritt werden die VM-Daten durch die Zabbix-Prozesse "vmware collector" gesammelt. Sie beziehen von den VMware-Webservices per SOAP notwendige Informationen über die virtuellen Maschinen, verarbeiten sie und speichern sie im Shared Memory des Zabbix-Servers. Dann bezieht Zabbix die Daten durch Poller, wobei die Monitoring-Umgebung auf von der VM-ware-Umgebung bereitgestellte Werte und Daten zurückgreift (siehe Tabelle "Abfragbare VMware-Werte"). Neben diesen Schlüsseln können Sie mit Zabbix aus den VMware-Installationen weitere Daten beziehen. Die vollständige Liste samt zulässiger Parameter und Rückgabewerte finden Sie unter [1].
Abfragbare VMware-Werte |
|
vmware.cluster.discovery |
Dient dem Aufspüren eines VMware-Clusters |
vmware.eventlog |
Liest VMware-Protokolldateien ein |
vmware.fullname |
Holt sich den vollständigen VMware-Servicenamen |
vmware.hv.datastore.discovery |
Sucht nach VMware-Hypervisor-Datenanlagen |
vmware.hv.hw.memory |
Liest die Speichergröße des VMware-Hypervisors ein |
vmware.hv.memory.used |
Bezieht den verwendeten Speicher der VMware-Hypervisors |
vmware.hv.perfcounter |
Bezieht die Performance-Daten des VMware-Hypervisors |
vmware.hv.uptime |
Laufzeit des VMware-Hypervisors |
vmware.hv.version |
Version des VMware-Hypervisors |
vmware.hv.vm.num |
Anzahl der VMs auf einem VMware-Hypervisor |
vmware.vm.cpu.usage |
Prozessorverwendung der VMware Virtual Machine |
vmware.vm.memory.size |
Gesamtgröße des Speichers der VM |
vmware.vm.memory.size.usage.host |
Speicherverwendung der VM |
vmware.vm.net.if.in / vmware.vm.net.if.out |
Statistik des ein- beziehungsweise ausgehenden Netzwerk-Traffic |
vmware.vm.powerstate |
Power-Status der VMware Virtual Machine |
vmware.vm.uptime |
Uptime der VMware Virtual Machine |
Bislang unterliegt das Monitoring von VMs mit Zabbix allerdings noch einigen Einschränkungen. In aktuellen Zabbix-Versionen können mit den VMware-Performance-Kollektoren nur Informationen zu Datenspeichern und Netzwerkschnittstellen, Laufwerksstatistiken und benutzerdefinierte Performance-Daten gesammelt werden.
Das VMware-Monitoring ist in Zabbix standardmäßig nicht aktiviert. Dazu muss Zabbix mit den Optionen "--libxml2" und "--with-libcurl" kompiliert werden. Darüber hinaus können Sie an der Zabbix-Serverkonfiguration, die üblicherweise im Verzeichnis »/etc/zabbix/zabbix_server.conf
«
liegt (Bild 1), an verschiedenen Stellschrauben für das Feintuning (siehe Tabelle "VMware-Feintuning") drehen.
VMware-Feintuning |
|||
Option |
Wertebereich |
Standardwert |
Beschreibung |
StartVMwareCollectors |
0-250 |
0 |
Anzahl der vordefinierten Kollektorinstanzen. Der Wert sollte sich an der Zahl der zu überwachenden Services orientieren. Der Wert sollte zwischen der Anzahl der Services und dem doppelten Wert liegen. |
VMwareCacheSize |
256K-2G |
8M |
Bestimmt die Größe des Share Memory für die Speicherung von VMware-Daten. |
VMwareFrequency |
10-86400 |
60 |
Häufigkeit des Datensammelns eines einzelnen VMware-Diensts in Sekunden. |
VMwarePerfFrequency |
10-86400 |
60 |
Abstand, in denen VMware-Performance-Kollektoren abgefragt werden (Sekunden). |
VMwareTimeout |
1-300 |
10 |
Dauer in Sekunden, die VMware-Kollektoren auf die Antwort eines VMware-Dienstes warten. |
Zabbix verwendet für das Einlesen von Daten aus VMware-Installationen sogenannte Host-Prototypen. Spürt Zabbix auf Grundlage dieser Prototypen virtuelle Maschinen auf, werden diese in reale Hosts in der Monitoring-Umgebung umgewandelt. Diese Prototypen können – solange Sie nicht als vollständiger Host in Zabbix registriert wurden – keine Trigger- oder sonstigen Monitoring-Elemente besitzen. Die erkannten VM-Installationen sind nach der Zuweisung einer IP-Adresse in Zabbix kaum noch von einem herkömmlichen Monitoring-Eintrag zu unterscheiden.
Den Discovery-Regeln können Sie in den Prototypkonfigurationen Trigger, Grafiken und Hosts zuordnen. In den Prototypkonfigurationen kommen Makros für den Hostnamen, den Anzeigenamen und das Hostgruppenprototypfeld zum Einsatz. Der Host-Status sowie die Host-Gruppen- und Template-Verknüpfung werden hier ebenfalls angelegt. Nachdem Zabbix einen Host auf Grundlage einer Discovery-Regel und den damit verbundenen Element-, Trigger-Konfigurationen eingelesen hat, wird diesem ein Präfix zugewiesen, das auf der Discovery-Regel basiert, und dann in die Host-Liste eingepflegt. Diese Einträge können natürlich auch genauso einfach wieder aus der Überwachung genommen werden.
VMware-Installationen werden automatisch wieder aus der Überwachung entfernt, wenn die Zeitspanne in Tagen abgelaufen ist, die Sie in der Discovery-Regel im Eingabefeld "Keep lost resources period" angegeben haben. Der Standardwert beträgt 30 Tage. Zabbix verfügt standardmäßig über verschiedene Templates für das Monitoring von VMware vCenter oder ESX-Hypervisoren. Diese Templates enthalten bereits vorkonfigurierte Regeln und Prüfungen virtueller Installationen. Der einfachste Check einer VMware-Installation muss folgende Makros verwenden (Bild 3):
- {$URL}: die URL des VMware-Services
- {$USERNAME}: der VMware-Service-Benutzername
- {$PASSWORD}: das VMware-Service-Passwort
Die praktische Umsetzung des VMware-Monitorings ist wirklich einfach. Nach der Kompilierung mit den beiden oben genannten Optionen stellen Sie in der Zabbix-Serverkonfiguration sicher, dass die Option "StartVMwareCollectors" auf den Wert 1 (oder höher) gesetzt ist. Dann erzeugen Sie einen neuen Host und geben in der Host-Konfiguration auf der Registerkarte "Macros" die Zugangsdaten für den VMware-Service an. Mit einem Klick auf "Add" legen Sie den Host an.
Mehr Details über die VMware-Installation bekommen Sie, wenn Sie den Debug-Level hochsetzen. Der ist standardmäßig auf den Wert "4" gesetzt, kann aber auf "5" erhöht werden. Um den Log-Level für alle VMware-Kollektoren zu erhöhen, führen Sie folgenden Befehl aus:
zabbix_server -R log_level_increase="vmware collector"
Um lediglich den Level des zweiten Kollektors zu erhöhen, verwenden Sie dieses Kommando:
zabbix_server -R log_level_increase="vmware collector,2"
Sie können das erweiterte Monitoring auch beenden, indem Sie die Option "-R log_level_decrease" verwenden.