Я нашел ниже команду 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?
решение1
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, он должен его поддерживать, поэтому его можно отключить в конфигурации.