Ich habe den folgenden snmpget-Befehl im Bash-Skript gefunden, mit dem der Status des Remote-Servers überprüft werden kann; ist der Remote-Server aktiv oder inaktiv? Der Befehl lautet
snmpget $1 tcpConnState.0.0.0.0.12000.0.0.0.0.0 | grep listen | wc -l
hier $1
ist der Hostname des Remote-Servers. Immer wenn ich versuche, den Befehl auszuführen, wird der folgende Fehler angezeigt
No log handling enabled - turning on stderr logging
snmpget: No securityName specified (Sub-id not found: (top) -> tcpConnState)
0
Sind Änderungen in der SNMPD-Konfiguration erforderlich?
Antwort1
tcpConnState
ist Teil von TCP-MIB
und ruft Informationen zu aktiven TCP-Verbindungen auf dem Remote-Host ab (ähnlich den von verfügbaren Informationen netstat
). Die ersten fünf Ziffern sind die lokale Adresse und der Port des Servers für die TCP-Verbindung, und die letzten fünf sind die Remote-Adresse und der Port.
Beispielsweise sieht eine aktive SSH-Verbindung wie folgt aus, mit a.b.c.d
als Server und w.x.y.z
als Client
TCP-MIB::tcpConnState.a.b.c.d.22.w.x.y.z.62612 = INTEGER: established(5)
In diesem Fall sucht es nach einem TCP-Socket von 0.0.0.0
(einer beliebigen lokalen Adresse) Port 12000 zum Remote-Host- 0.0.0.0
Port 0 – so würde normalerweise ein Listening-Socket angezeigt (vorausgesetzt, er ist nicht an eine bestimmte lokale IP-Adresse gebunden). Kurz gesagt prüft es also, ob auf dem SNMP-Ziel etwas auf Port 12000 lauscht.
Es ist möglich, dass der Remote-Host den Vorgang nicht unterstützt tcpConnState
oder er nicht verfügbar ist.
snmpwalk
Ich würde es zuerst auf dem Remote-Host versuchen, um zu sehen, ob der tcpConnState
Baum angezeigt wird. Wenn es sich beispielsweise um eine Linux-Box handelt, auf der der Standard-SNMPD-Daemon ausgeführt wird, sollte dies unterstützt werden, sodass es in der Konfiguration deaktiviert werden kann.