Hoe schakel ik SNMP-monitoring in en configureer ik het op een VMware ESXi-host?

Hé, dus je kunt VMware ESXi-hosts monitoren met SNMP? Ja, dat is best handig, maar het kan in het begin best lastig zijn om het goed te krijgen. Vooral omdat de SNMP-agent niet standaard geconfigureerd is – je moet hem handmatig instellen. Deze handleiding helpt je bij het inschakelen en configureren van SNMP op je ESXi-servers (de instructies werken voor vrijwel alle recente versies, zoals 6.7, 7.0 en zelfs 8.0).Eenmaal geconfigureerd, kun je je hosts toevoegen aan elke netwerkmonitoringtool – Nagios, Zabbix, wat dan ook – en zonder veel gedoe hun status in de gaten houden. De sleutel is weten waar je moet kijken en welke commando’s je moet uitvoeren, aangezien ESXi geen grafische interface heeft om SNMP in te schakelen zoals andere systemen. In principe bewerk je dingen via de command line interface (CLI) en zorg je ervoor dat de firewall je SNMP-verzoeken niet blokkeert.

Hoe schakel je SNMP in en configureer je het op VMware ESXi?

Schakel de SNMP-service in via de webinterface.

Dit is de eenvoudigste manier als u al bent ingelogd op de webinterface van de ESXi-host. Ga naar BeheerServices → zoek naar SNMP-server. Houd er rekening mee dat snmpd (de SNMP-daemon) niet standaard actief is. U moet deze dus hier starten. In sommige configuraties is het mogelijk dat het in- en uitschakelen van deze service via de webinterface niet permanent is – VMware maakt het natuurlijk altijd ingewikkelder dan nodig. In dat geval moet u SSH gebruiken.

Maak verbinding via SSH en gebruikesxcli

  • Schakel SSH in via BeheerServices (of via de vSphere Client als u dat wilt).
  • Maak via SSH verbinding met de ESXi-host:ssh root@your-esxi-host
  • Controleer de huidige SNMP-configuratie om te zien of er iets is ingesteld:esxcli system snmp get

Ja, bij de meeste configuraties zal de uitvoer er vrijwel leeg uitzien: alle parameters leeg, service niet actief. Dat is normaal als je het nog niet eerder hebt ingesteld. Om SNMP daadwerkelijk te configureren, volgen hier enkele basiscommando’s:

Stel uw monitoringserver en communitystring in.

esxcli system snmp set --targets=192.168.99.99@161/public

Als u meerdere IP-adressen wilt monitoren, scheidt u deze eenvoudig met komma’s, zoals in dit voorbeeld:

esxcli system snmp set --targets=192.168.99.99@161/public, 192.168.14.14@161/public

Vervang dit publicdoor de naam van de community die je gebruikt. Het is waarschijnlijk het beste om een ​​veilige naam te gebruiken als je met gevoelige gegevens werkt, maar voor lab-/testdoeleinden werkt ‘public’ meestal prima als placeholder. Stel vervolgens de community-string expliciet in:

esxcli system snmp set --communities=YOUR_COMMUNITY_STRING

En om de host een idee te geven van de locatie of om het overzicht te bewaren, kunt u syslocation en syscontact instellen:

esxcli system snmp set --syslocation="Data Center Rack 3" 
esxcli system snmp set --syscontact="[email protected]"

SNMP-service inschakelen en opnieuw starten

Zodra je de instellingen naar wens hebt aangepast, schakel je de SNMP-agent in:

esxcli system snmp set --enable true

Start tot slot de SNMP-daemon opnieuw op om te controleren of deze met de nieuwe configuratie werkt:

/etc/init.d/snmpd restart

Als dat eenmaal gedaan is, kunt u de configuratie zelfs testen met:

esxcli system snmp test

Dat zou je een snelle controle moeten geven om te zien of alles werkt. Soms, bij bepaalde hardware of ESXi-versies, moet je de herstart herhalen of zelfs de host opnieuw opstarten als de configuraties niet worden opgeslagen. Vreemd, maar soms is het herstarten van de host de enige manier om alles op zijn plaats te krijgen.

Hoe u SNMP indien nodig kunt resetten of uitschakelen

  • Om alle SNMP-instellingen terug te zetten naar de standaardwaarden:esxcli system snmp set --r
  • En om SNMP volledig uit te schakelen (als je klaar bent met testen):esxcli system snmp set --disable true

Als je een VMware Enterprise Plus-licentie hebt, is er een nog elegantere manier: hostprofielen gebruiken (te vinden onder Beleid en profielen ).Maar eerlijk gezegd doen de meeste mensen het gewoon via de commandline – snel en gemakkelijk. Vergeet niet dat firewallregels ook belangrijk zijn. Als je monitoringserver poort 161 UDP niet kan bereiken, verspil je je tijd. Zorg er dus voor dat SNMP is ingeschakeld in de firewallconfiguratie.

Firewallinstellingen voor SNMP

Je hebt hier twee opties. De snelle en simpele methode: sta al het SNMP-verkeer vanaf elke locatie toe, wat eenvoudiger is maar minder veilig:

esxcli network firewall ruleset set --ruleset-id=snmp --allowed-all=true esxcli network firewall ruleset set --ruleset-id=snmp --enabled=true

Of, voor de veiligheid is het beter om precies aan te geven welke IP-adressen of IP-bereiken SNMP-verzoeken mogen verzenden:

esxcli network firewall ruleset set --ruleset-id=snmp --allowed-all=false esxcli network firewall ruleset allowedip add --ruleset-id=snmp --ip-address=192.168.100.0/24 esxcli network firewall ruleset set --ruleset-id=snmp --enabled=true

Bij de ene configuratie werkte het meteen, bij een andere moet je soms de firewallregels controleren of de host opnieuw opstarten voordat de wijzigingen van kracht worden. Geloof me, controleer de beschikbaarheid van de poort vanaf je monitoringserver nadat je dit hebt ingesteld – telnetof ncje vrienden hier.

Automatiseer de SNMP-configuratie met PowerShell.

Als je veel hosts beheert of haast hebt, kunnen PowerShell-scripts uitkomst bieden. Hier is een kort voorbeeld dat verbinding maakt met je ESXi-server en SNMP instelt:

 $ESXiHost = 'mun-esxi01' $Community = 'public' $Target = '192.168.99.99' $Port = 161 Connect-VIServer -Server $ESXiHost # Clear current SNMP settings (if needed) Get-VMHostSnmp | Set-VMHostSnmp -ReadonlyCommunity @() # Set new SNMP target Get-VMHostSnmp | Set-VMHostSnmp -Enabled $true -Targets @{Community=$Community; Host=$Target; Port=$Port} # Verify $SnmpConfig = Get-EsxCli -VMHost $ESXiHost $SnmpConfig. System. Snmp. Get() 

Dit kan op meerdere hosts worden uitgevoerd als het script correct is geschreven — verander gewoon de variabelen en doorloop je lijst. Niet super elegant, maar het doet zijn werk bij massale implementaties of audits.

SNMPv3 configureren (veiliger en moderner)

Als je nu aan SNMPv3 denkt – de veel veiligere optie met authenticatie en encryptie – dan wordt het hier iets complexer. Schakel eerst ondersteuning in voor authenticatiemethoden ( MD5 of SHA ) en encryptie zoals AES. Het commando is:

esxcli system snmp set -a MD5 -x AES128

Genereer vervolgens wachtwoordhashes voor authenticatie en privacy (ik weet niet waarom het zo ingewikkeld is, maar zo doet VMware het).Voer deze opdracht uit om de hashes te genereren:

esxcli system snmp hash --auth-hash=authpass1 --priv-hash=privpass1 --raw-secret

Kopieer die hashes en maak vervolgens een gebruiker aan met:

esxcli system snmp set -e yes -C user --user=snmpuser --auth-shash=authhash1 --priv-shash=privhash1 --priv=AES128

Geef tot slot het SNMP-doel op:

esxcli system snmp set --v3targets=192.168.99.99@161/snmpuser/priv/trap

Om SNMPv3 op afstand te testen, werken Linux-tools zoals snmpwalk prima met de juiste parameters, en Zabbix kan SNMPv3 integreren met wat configuratie. Houd er wel rekening mee dat dit extra stappen vereist — het is absoluut veiliger, maar de initiële configuratie is wel wat lastiger.

Over het algemeen vergt het configureren van SNMP op ESXi wat geduld, vooral als je het voor de eerste keer doet. Maar zodra het eenmaal werkt, gaat het soepel en zullen je monitoringsystemen je dankbaar zijn. Vergeet alleen niet om de firewalls en machtigingen te controleren!