Я нашел ниже команду snmpget в сценарии bash, которая используется для проверки состояния удаленного сервера; удаленный сервер работает или не работает. Команда
snmpget $1 tcpConnState.0.0.0.0.12000.0.0.0.0.0 | grep listen | wc -l
Вот $1
это имя хоста удаленного сервера. Всякий раз, когда я пытаюсь выполнить команду, отображается ошибка ниже
No log handling enabled - turning on stderr logging
snmpget: No securityName specified (Sub-id not found: (top) -> tcpConnState)
0
Какие-либо изменения требуются в конфигурации snmpd?
tcpConnState
является частью TCP-MIB
и получает информацию об активных TCP-соединениях на удаленном хосте (аналогично информации, доступной из netstat
). Первые пять цифр - это локальный адрес и порт сервера для TCP-соединения, а последние пять - это удаленный адрес и порт.
Например, активное соединение ssh выглядит следующим образом: a.b.c.d
как сервер и w.x.y.z
как клиент
TCP-MIB::tcpConnState.a.b.c.d.22.w.x.y.z.62612 = INTEGER: established(5)
В этом случае он ищет сокет tcp от 0.0.0.0
(любой локальный адрес) порт 12000, на удаленный хост 0.0.0.0
порт 0 - это то, как обычно отображается прослушивающий сокет (при условии, что он не привязан к определенному локальному IP-адресу). Короче говоря, он проверяет, прослушивает ли что-то порт 12000 цели snmp.
Возможно, удаленный хост не поддерживает tcpConnState
операции, либо не выставлено.
Я бы попробовал snmpwalk
сначала на удаленном хосте, чтобы проверить, tcpConnState
появляется дерево. Если это что-то вроде Linux, на котором запущен стандартный демон snmpd, он должен поддерживать это, поэтому его можно отключить в конфигурации.