10 Virtuele machine monitoring

Overzicht

Ondersteuning voor het monitoren van VMware-omgevingen is beschikbaar in Zabbix vanaf versie 2.2.0.

Zabbix kan gebruikmaken van regels voor ontdekking op laag niveau om automatisch VMware-hypervisors en virtuele machines te ontdekken en hosts aan te maken om ze te monitoren, op basis van vooraf gedefinieerde host-prototypes.

De standaard dataset in Zabbix biedt verschillende kant-en-klare sjablonen voor het monitoren van VMware vCenter of ESX-hypervisor.

De minimaal vereiste VMware vCenter- of vSphere-versie is 5.1.

Details

Het monitoren van virtuele machines gebeurt in twee stappen. Allereerst worden de gegevens van de virtuele machine verzameld door de vmware collector Zabbix-processen. Deze processen halen de benodigde informatie op via VMware-webdiensten via het SOAP-protocol, verwerken deze voor en slaan deze op in het gedeelde geheugen van de Zabbix-server. Vervolgens halen pollers deze gegevens op met behulp van Zabbix eenvoudige controle VMware-sleutels.

Vanaf Zabbix-versie 2.4.4 worden de verzamelde gegevens onderverdeeld in 2 typen: VMware-configuratiegegevens en VMware-prestatie-tellergegevens. Beide typen worden onafhankelijk verzameld door vmware collectors. Daarom wordt aanbevolen om meer collectors in te schakelen dan de gemonitorde VMware-services. Anders kan het ophalen van statistieken voor VMware-prestatietellers vertraagd worden door het ophalen van VMware-configuratiegegevens (wat even kan duren bij grote installaties).

Op dit moment zijn alleen statistieken voor datastore, netwerkinterface en schijfapparaat en aangepaste prestatieteller-items gebaseerd op de informatie van de VMware-prestatietellers.

Configuratie

Voor het monitoren van virtuele machines moet Zabbix worden gecompileerd met de compilatieopties --with-libxml2 en --with-libcurl.

De volgende configuratiebestandopties kunnen worden gebruikt om het monitoren van virtuele machines af te stemmen:

  • StartVMwareCollectors - het aantal voorgevorkte vmware-collectorinstanties.
    Deze waarde is afhankelijk van het aantal VMware-services dat je gaat monitoren. In de meeste gevallen moet dit zijn:
    servicenum < StartVMwareCollectors < (servicenum * 2)
    waarbij servicenum het aantal VMware-services is. Bijvoorbeeld, als je 1 VMware-service hebt om te monitoren, stel StartVMwareCollectors dan in op 2, als je 3 VMware-services hebt, stel het dan in op 5. Let op dat deze waarde in de meeste gevallen niet minder dan 2 mag zijn en niet 2 keer groter mag zijn dan het aantal VMware-services dat je monitor. Houd ook rekening met het formaat van je VMware-omgeving en de configuratieparameters VMwareFrequency en VMwarePerfFrequency (zie hieronder).
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

Voor meer informatie, zie de pagina's van het configuratiebestand voor Zabbix server en proxy.

Om capaciteitsmetingen voor datastore te ondersteunen, vereist Zabbix dat de VMware-configuratieparameter vpxd.stats.maxQueryMetrics ten minste 64 is. Zie ook het VMware-kennisbank artikel.

Ontdekking

Zabbix kan een lage-niveau-ontdekkingsregel gebruiken om automatisch VMware-hypervisors en virtuele machines te ontdekken.

Alle verplichte invoervelden zijn gemarkeerd met een rood asterisk.

De sleutel van de ontdekkingsregel in de bovenstaande schermafbeelding is vmware.hv.discovery[{$VMWARE.URL}].

Host-prototypen

Host-prototypen kunnen worden gemaakt met de regel voor lage niveaus van ontdekking. Wanneer virtuele machines worden ontdekt, vormen deze prototypes de basis voor het genereren van echte hosts. Prototypen kunnen voordat ze worden ontdekt, geen eigen items en triggers hebben, anders dan die van de gekoppelde sjablonen.

Host-prototypen

Om ervoor te zorgen dat hosts die zijn gemaakt van een prototype unieke hostnamen hebben, moet het veld Hostnaam ten minste één laag-niveau ontdekking macro bevatten.

Sinds Zabbix 5.2 kunnen ontdekte hosts worden geconfigureerd met aangepaste interfaces of het IP-adres overnemen van een host waartoe de ontdekkingsregel behoort (standaard). Om één of meer aangepaste interfaces toe te voegen, schakelt u de Interface selector van Overnemen naar Aangepast modus, drukt u vervolgens op add_link.png en selecteert u het gewenste interface type uit het uitklapmenu dat verschijnt. Voor een hostprototype kunnen alle ondersteunde interface typen worden gedefinieerd: Zabbix-agent, SNMP, JMX, IPMI. Interfacevelden ondersteunen laag-niveau ontdekking macros en gebruikersmacro's. Als er meerdere aangepaste interfaces zijn gespecificeerd, gebruik dan de kolom Standaard om de primaire interface op te geven.

Opmerkingen:

  • Als Aangepast is geselecteerd, maar er zijn geen interfaces gespecificeerd, dan worden de hosts aangemaakt zonder interfaces.
  • Als Overnemen is geselecteerd voor een hostprototype dat bij een sjabloon hoort, erven ontdekte hosts het interface van een host waaraan de sjabloon is gekoppeld.

Een host wordt niet aangemaakt als de hostinterface onjuiste gegevens bevat.

Aangepaste interfaces voor host-prototypen

LLD macros kunnen ook worden gebruikt voor de zichtbare naam, velden voor hostgroep-prototypen, tagwaarden of waarden van gebruikersmacro's voor host-prototypen.

Andere opties die kunnen worden gespecificeerd voor een host-prototype zijn:

  • Koppeling aan bestaande hostgroepen
  • Sjabloongebruik
  • Versleuteling

Als Aanmaken ingeschakeld is aangevinkt, wordt de host in een ingeschakelde toestand toegevoegd. Als dit niet is aangevinkt, wordt de host toegevoegd, maar in een uitgeschakelde toestand.

Als Ontdekken is aangevinkt (standaard), wordt de host gemaakt. Als dit niet is aangevinkt, wordt de host niet aangemaakt, tenzij deze instelling wordt overschreven in de ontdekkingsregel. Deze functionaliteit biedt extra flexibiliteit bij het maken van ontdekkingsregels.

Ontdekte hosts hebben een voorvoegsel met de naam van de ontdekkingsregel die ze heeft gemaakt, in de hostlijst. Ontdekte hosts kunnen handmatig worden verwijderd. Ontdekte hosts worden ook automatisch verwijderd op basis van de waarde van de Periode behouden verloren bronnen (in dagen) van de ontdekkingsregel. De meeste configuratie-opties zijn alleen-lezen, behalve het inschakelen/uitschakelen van de host en de host-inventaris.

Zabbix ondersteunt geen geneste host-prototypen, dat wil zeggen host-prototypen worden niet ondersteund voor hosts die zijn ontdekt door een lage niveaus van ontdekking regel.

Klaar-om-te-gebruiken sjablonen

De standaard dataset in Zabbix biedt verschillende kant-en-klare sjablonen voor het monitoren van VMware vCenter of directe ESX-hypervisor. Deze sjablonen bevatten vooraf geconfigureerde LLD-regels, evenals een aantal ingebouwde controles voor het monitoren van virtuele installaties.

Sjablonen voor het monitoren van VMware vCenter en ESX-hypervisor:

  • VMware - gebruikt UUID-gegevens voor bijbehorende macro's;
  • VMware FQDN - gebruikt FQDN-gegevens voor bijbehorende macro's.

Om het sjabloon VMware FQDN correct te laten werken, moet elke gemonitorde VM een unieke OS-naam hebben die voldoet aan de FQDN-regels en moeten VMware Tools/Open Virtual Machine Tools zijn geïnstalleerd op elke machine. Als aan deze voorwaarden wordt voldaan, wordt aanbevolen om het sjabloon VMware FQDN te gebruiken. Het maken van het sjabloon VMware FQDN werd mogelijk nadat de mogelijkheid werd geïntroduceerd om hosts met aangepaste interfaces te maken in Zabbix 5.2.

Een klassiek sjabloon VMware is nog steeds beschikbaar en kan worden gebruikt als de FQDN-vereisten niet kunnen worden voldaan. Houd er rekening mee dat het sjabloon VMware een bekend probleem heeft. Hosts voor ontdekte virtuele machines worden gemaakt met de namen die zijn opgeslagen in de vCenter (bijvoorbeeld VM1, VM2, etc.). Als later Zabbix-agent actief is geïnstalleerd op deze hosts met autoregistratie ingeschakeld, zal het autoregistratieproces de hostnamen lezen zoals ze zijn geregistreerd bij de lancering (bijvoorbeeld vm1.example.com, vm2.example.com, etc.) en nieuwe hosts aanmaken omdat er geen overeenkomende namen zijn gevonden. Als gevolg hiervan zullen er twee duplicaat-hosts zijn voor elke machine met verschillende namen.

Sjablonen die door ontdekking worden gebruikt (normaal gesproken moeten deze sjablonen niet handmatig aan een host worden gekoppeld):

  • VMware Hypervisor;
  • VMware Gast.

Hostconfiguratie

Om VMware eenvoudige controles te gebruiken, moet de host de volgende gebruikersmacro's gedefinieerd hebben:

  • {$VMWARE.URL} - VMware-service (vCenter of ESX-hypervisor) SDK URL (https://servername/sdk)
  • {$VMWARE.USERNAME} - Gebruikersnaam van de VMware-service
  • {$VMWARE.PASSWORD} - Wachtwoord van de gebruiker {$VMWARE.USERNAME} van de VMware-service

Voorbeeld

Het volgende voorbeeld laat zien hoe je snel VMware-monitoring kunt instellen in Zabbix:

  • Zorg ervoor dat de Zabbix-server is gecompileerd met de vereiste opties (--with-libxml2 en --with-libcurl): het logbestand moet "VMware monitoring: YES" bevatten tijdens het opstarten van de server.
  • Stel de optie StartVMwareCollectors in het configuratiebestand van de Zabbix-server in op 2 of meer.
  • Maak een nieuwe host aan.
  • Stel de hostmacro's in die nodig zijn voor VMware-authenticatie:

  • Koppel de host aan het VMware-service sjabloon:

  • Klik op de knop Toevoegen om de host op te slaan.

Uitgebreide logging

De gegevens verzameld door de VMware-collector kunnen worden gelogd voor gedetailleerd debuggen met behulp van debugniveau 5. Dit niveau kan worden ingesteld in server en proxy configuratiebestanden of met behulp van een runtime controle-optie (-R log_level_increase="vmware collector,N", waarbij N een procesnummer is). De volgende voorbeelden laten zien hoe uitgebreid loggen kan worden gestart als debugniveau 4 al is ingesteld:

# Verhoog het logniveau van alle vmware collectors:
       zabbix_server -R log_level_increase="vmware collector"
       
       # Verhoog het logniveau van de tweede vmware collector:
       zabbix_server -R log_level_increase="vmware collector,2"

Als uitgebreid loggen van VMware-collectorgegevens niet nodig is, kan het worden gestopt met behulp van de optie -R log_level_decrease.

Probleemoplossing

  • Als bepaalde metingen niet beschikbaar zijn, controleer dan of ze niet onbeschikbaar zijn gemaakt of standaard zijn uitgeschakeld in recente VMware vSphere versies, of als er beperkingen zijn geplaatst op query's naar de prestatie-metrische database. Zie ZBX-12094 voor aanvullende details.
  • In geval van de foutmelding 'config.vpxd.stats.maxQueryMetrics' is ongeldig of overschrijdt het maximale aantal toegestane tekens**, voeg een parameter config.vpxd.stats.maxQueryMetrics toe aan de instellingen van de vCenter Server. De waarde van deze parameter moet hetzelfde zijn als de waarde van maxQuerysize in VMware's web.xml. Zie dit VMware kennisbankartikel article voor details.