Zabbix VMware-Monitoring

Man kann mit Zabbix auch VMWare-ESXi-Hosts automatisch erkennen und monitoren. Das sieht dann z.B. so aus:

Zabbix VMware CPU-Graph

Was ich gemacht habe um das einzurichten:

  • VMware-Discovery-Prozesse starten:
    Dazu in der docker-compose.yml unter environment die Variable setzen:

    ZBX_STARTVMWARECOLLECTORS=3
    
  • Host anlegen in dem via Macros definiert ist, wie der VMware-Host abgefragt werden soll:

    VMware monitoring Host anlegen - 1
    VMware monitoring Host anlegen - 2
    VMware monitoring Host anlegen - 3

  • Ich habe dann noch unter bei diesem Host unter

    • “Discovery Rules”
    • -> “Discover VMware VMs”
    • -> “Host prototypes”
    • -> der erste (einzige) Eintrag “Template Virt VMware: {#VM.NAME}”: Klick auf “Template Virt VMware”
    • -> Dort wieder der erste (einzige) Eintrag
    • -> unter Host:

    “Visible name” so eingestellt, dass der Name der so erzeugten Hosts immer “vm-” vorangestellt bekommen soll. Dadurch ist es möglich, dass ich für jede VM sowohl den automatischen VMWare-Host als auch den über den Zabbix-Agent überwachten Host in Zabbix sehe. Andernfalls würde unter dem einen Namen nur einer von beiden existieren.

    VMware monitoring Host anlegen - 4

Danach erscheinen in den nächsten Minuten die automatisch erkannten Hosts.

Leider hat das “Template Virt VMware Guest” für die erkannten VM-Hosts keine Trigger. Außerdem sind die Messwerte nicht einheitlich zu den “normalen” Linux-Hosts. Das ist schade. Trotzdem kann man eine Menge damit machen. Ich habe mir selber ein paar Trigger angelegt und z.B. den oben gezeigten Screen zum Überblicken der CPU-Last des VMware ESXi-Hosts.

Noch ein Hinweis zu Triggern, wonach ich lange gesucht habe:

Man kann auf einen Key nur dann einen “Trigger” erstellen, wenn es dazu ein “Item” gibt. Also z.B. habe ich mir das Item “reboot trigger file exists” mit dem Key vfs.file.exists[/var/run/reboot-required] angelegt. Und erst danach konnte ich einen Trigger mit der Expression {Template OS Linux:vfs.file.exists[/var/run/reboot-required].last()}=1 darauf erstellen, der mich warnt, wenn ein Rechner rebootet werden muss.

Interessante Links:

2 thoughts on “Zabbix VMware-Monitoring

  1. Wie hast du den stacked graphen im ersten Screenshot erstellt?
    Die einzelnen Items der Hosts manuell hinzugefügt?
    Oder gibt es da auch was automatisches, bei mir ändern sich die VMs nämlich recht häufig.
    Schön wäre es ja, wenn man einen Stacked Graph erstellen könnte, der z.B. die CPU Usage aller Hosts in einer bestimmten Gruppe anzeigt.

  2. Ja, das ist eine gute Frage, die ich mir auch immer wieder stelle. Bisher ist dieser Graph leider wirklich per Hand erstellt, in dem ich unter “Graphs” die einzelnen Items der verschiedenen VMs per “add” hinzufüge. Ich hätte das auch gerne automatisch, damit ich nicht bei jeder VM-Änderung mehrere Graphen anfassen muss.

    Hier habe ich ein Script gefunden, welches immerhin Screen automatisch erstellt – aber auch nicht Host-übergreifend. Ich stelle mir dort eine Variante des Scripts vor, die (um bei dem Beispiel hier zu bleiben) alle “CPU usage”-Items als Graphen hinzufügt.

    Der nächste Schritt wäre dann ein Automatismus (Skript), der das nicht als Screen, sondern als Stacked Graph erstellt. Dazu hatte ich aber bisher keine Zeit und würde mich über Input etc. freuen 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.