我在 bash 脚本中找到了以下 snmpget 命令,该命令用于检查远程服务器状态;远程服务器是启动还是关闭。命令是
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)
在这种情况下,它正在寻找从0.0.0.0
(任何本地地址)端口 12000 到远程主机0.0.0.0
端口 0 的 tcp 套接字 - 监听套接字通常会显示为该端口(假设它未绑定到特定的本地 IP 地址)。简而言之,它正在检查 snmp 目标上是否有东西在监听端口 12000。
远程主机可能不支持该tcpConnState
操作,或者未暴露。
我会先在远程主机上尝试一下,snmpwalk
看看tcpConnState
树是否出现。如果它是运行标准 snmpd 守护进程的 Linux 机器之类的东西,它应该支持此功能,因此可以在配置中禁用它。