Hey, also VMware ESXi-Hosts per SNMP überwachen? Ja, das ist ziemlich praktisch, kann aber anfangs etwas knifflig sein. Vor allem, weil der SNMP-Agent nicht standardmäßig konfiguriert ist – man muss ihn manuell einrichten. Diese Anleitung hilft dir, SNMP auf deinen ESXi-Servern zu aktivieren und anzupassen (die Anweisungen funktionieren mit fast allen aktuellen Versionen, wie 6.7, 7.0 und sogar 8.0).Nach der Konfiguration kannst du deine Hosts zu jedem Netzwerküberwachungstool hinzufügen – Nagios, Zabbix oder was auch immer – und ihren Zustand problemlos im Auge behalten. Wichtig ist, zu wissen, wo man suchen und welche Befehle man ausführen muss, da ESXi im Gegensatz zu anderen Systemen keine grafische Benutzeroberfläche für SNMP bietet. Du bearbeitest die Einstellungen also über die Befehlszeile und stellst sicher, dass die Firewall deine SNMP-Anfragen nicht blockiert.
So aktivieren und konfigurieren Sie SNMP auf VMware ESXi
Aktivieren Sie den SNMP-Dienst über die Weboberfläche.
Dies ist der einfachste Weg, wenn Sie bereits in der Web-Oberfläche des ESXi-Hosts angemeldet sind. Gehen Sie einfach zu Verwalten → Dienste → und suchen Sie nach SNMP-Server. Beachten Sie, dass snmpd (der SNMP-Daemon) nicht standardmäßig ausgeführt wird. Sie müssen ihn daher hier starten. Bei manchen Konfigurationen wird die Aktivierung dieses Dienstes in der Web-Oberfläche möglicherweise nicht übernommen – VMware macht es einem natürlich unnötig schwer. In diesem Fall müssen Sie SSH verwenden.
Stellen Sie eine Verbindung über SSH her und verwenden Sieesxcli
- Aktivieren Sie SSH unter Verwalten → Dienste (oder über den vSphere Client, falls Sie es etwas komfortabler mögen).
- Per SSH auf den ESXi-Host zugreifen:
ssh root@your-esxi-host - Überprüfen Sie die aktuelle SNMP-Konfiguration, um festzustellen, ob Einstellungen vorgenommen wurden:
esxcli system snmp get
Ja, in den meisten Fällen sieht die Ausgabe ziemlich leer aus: Alle Parameter sind leer, der Dienst läuft nicht. Das ist normal, wenn Sie ihn noch nie eingerichtet haben. Um SNMP zu konfigurieren, verwenden Sie nun folgende grundlegende Befehle:
Legen Sie Ihren Überwachungsserver und Ihre Community-Zeichenfolge fest.
esxcli system snmp set --targets=192.168.99.99@161/public
Wenn Sie die Überwachung von mehreren IP-Adressen aus durchführen möchten, trennen Sie diese einfach durch Kommas – so:
esxcli system snmp set --targets=192.168.99.99@161/public, 192.168.14.14@161/public
Ersetzen Sie dies publicdurch den Namen Ihrer Community. Bei sensiblen Daten empfiehlt sich ein sicherer Name, für Testzwecke dient „public“ jedoch meist als Platzhalter. Legen Sie anschließend die Community-Zeichenfolge explizit fest:
esxcli system snmp set --communities=YOUR_COMMUNITY_STRING
Um dem Host einen Standort zuzuweisen oder den Überblick zu behalten, können Sie syslocation und syscontact festlegen:
esxcli system snmp set --syslocation="Data Center Rack 3"esxcli system snmp set --syscontact="[email protected]"SNMP-Dienst aktivieren und neu starten
Sobald Sie die Einstellungen nach Ihren Wünschen angepasst haben, schalten Sie den SNMP-Agenten ein:
esxcli system snmp set --enable trueStarten Sie abschließend den SNMP-Daemon neu, um sicherzustellen, dass er mit der neuen Konfiguration läuft:
/etc/init.d/snmpd restartSobald das erledigt ist, können Sie die Konfiguration sogar mit folgendem Befehl testen:
esxcli system snmp testDas sollte Ihnen einen schnellen Test geben, ob alles funktioniert. Manchmal müssen Sie bei bestimmter Hardware oder ESXi-Version den Neustart wiederholen oder den Host sogar neu starten, falls die Konfigurationen nicht übernommen werden. Seltsam, aber manchmal ist ein Neustart des Hosts die einzige sichere Methode, um alles zum Laufen zu bringen.
So setzen Sie SNMP bei Bedarf zurück oder deaktivieren es
- So setzen Sie alle SNMP-Einstellungen auf die Standardwerte zurück:
esxcli system snmp set --r - Und um SNMP vollständig zu deaktivieren (wenn Sie mit dem Testen fertig sind):
esxcli system snmp set --disable true
Mit einer VMware Enterprise Plus-Lizenz gibt es eine noch elegantere Methode: die Verwendung von Hostprofilen (zu finden unter „Richtlinien und Profile “).Die meisten Anwender nutzen jedoch die Kommandozeile – schnell und unkompliziert. Wichtig: Firewall-Regeln spielen ebenfalls eine Rolle. Wenn Ihr Überwachungsserver Port 161 (UDP) nicht erreichen kann, ist Ihre Arbeit sinnlos. Stellen Sie daher sicher, dass SNMP in den Firewall-Einstellungen aktiviert ist.
Firewall-Einstellungen für SNMP
Sie haben hier zwei Möglichkeiten. Die schnelle und unsaubere Methode: Erlauben Sie jeglichen SNMP-Verkehr von überall, was einfacher, aber weniger sicher ist:
esxcli network firewall ruleset set --ruleset-id=snmp --allowed-all=true esxcli network firewall ruleset set --ruleset-id=snmp --enabled=true
Oder, aus Sicherheitsgründen besser, geben Sie genau an, welche IPs oder Bereiche SNMP-Anfragen senden dürfen:
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
Bei einer Konfiguration funktionierte es sofort, bei einer anderen muss man manchmal die Firewall-Regeln überprüfen oder den Host neu starten, damit die Änderungen wirksam werden. Glaub mir, überprüfe nach der Einrichtung unbedingt die Portverfügbarkeit auf deinem Überwachungsserver – telnetoder nclass dich von deinen Freunden helfen.
SNMP-Konfiguration mit PowerShell automatisieren
Wenn Sie viele Hosts verwalten oder es schnell gehen muss, können PowerShell-Skripte die Lösung sein. Hier ist ein kurzes Beispiel, das eine Verbindung zu Ihrem ESXi-Server herstellt und SNMP einrichtet:
$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()
Das lässt sich, bei korrekter Skriptprogrammierung, auf mehreren Hosts ausführen – einfach die Variablen anpassen und die Liste durchlaufen. Nicht besonders elegant, aber für Massenbereitstellungen oder Audits ausreichend.
SNMPv3 konfigurieren (Sicherer und moderner)
Wenn Sie nun an SNMPv3 denken – die deutlich sicherere Option mit Authentifizierung und Verschlüsselung – wird es hier etwas komplexer. Aktivieren Sie zunächst die Unterstützung für Authentifizierungsmethoden ( MD5 oder SHA ) und Verschlüsselung wie AES. Der Befehl lautet:
esxcli system snmp set -a MD5 -x AES128
Generieren Sie anschließend Passwort-Hashes für Authentifizierung und Datenschutz (warum das so kompliziert ist, weiß ich nicht, aber so macht es VMware).Führen Sie folgenden Befehl aus, um die Hashes zu generieren:
esxcli system snmp hash --auth-hash=authpass1 --priv-hash=privpass1 --raw-secret
Kopieren Sie diese Hashwerte und erstellen Sie dann einen Benutzer mit folgendem Befehl:
esxcli system snmp set -e yes -C user --user=snmpuser --auth-shash=authhash1 --priv-shash=privhash1 --priv=AES128
Zum Schluss geben Sie das SNMP-Ziel an:
esxcli system snmp set --v3targets=192.168.99.99@161/snmpuser/priv/trap
Für Remote-Tests von SNMPv3 eignen sich Linux-Tools wie snmpwalk mit den richtigen Parametern hervorragend, und Zabbix kann SNMPv3 mit etwas Konfiguration integrieren. Seien Sie jedoch auf einige zusätzliche Schritte vorbereitet – es ist zwar deutlich sicherer, aber die Einrichtung ist anfangs etwas aufwendiger.
Die Konfiguration von SNMP auf ESXi erfordert etwas Geduld, insbesondere beim ersten Mal. Ist sie aber einmal eingerichtet, läuft alles reibungslos, und Ihre Überwachungssysteme werden es Ihnen danken. Vergessen Sie nicht, Firewalls und Berechtigungen zu überprüfen!