基本上,我有一个小型网络,其中我的 OpenNMS 安装位于一台 CentOS 6.4 机器上。
现在我有一个想要监控的服务器(也是 CentOS),但它在互联网上,有一个公共地址。
我已经在目标服务器上安装了 net-snmp 并配置了 /etc/snmp/snmpd.conf
当我尝试做
snmpwalk -v 2c -c public localhost
在我的目标系统上,它返回预期的输出。
但跑步
snmpwalk -v 2c -c public c******2.com
在我的 OpenNMS 服务器上,查询我的目标服务器返回
Timeout: No Response from c******2.com
我尝试打开调试(snmpwalk -v 2c -c public c******2.com -d)并得到以下输出:
Sending 42 bytes to UDP: [*.*.*.*]:161->[0.0.0.0]
我不知道可能存在什么问题?
更新:
这是 snmpd.conf 中的配置
##sec.name source community
com2sec local localhost private
com2sec national x.x.x.x/23 public
##group.name sec.model sec.name
group MyRWGroup v2c local
group MyROGroup v2c national
##incl/excl subtree mask
view all included .1 80
## -or just the mib2 tree-
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
## context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth prefix all none none
access MyRWGroup "" any noauth prefix all all all
disk PATH [MIN=100000]
disk / 10000
load 12 14 14
答案1
这里有一个问题:您实际上并没有允许 snmpd 响应您的连接。
com2sec national x.x.x.x/23 public
您说这个 IP 地址是运行 snmpd 的同一台服务器的 IP,这意味着只有该 /23 内的机器才被允许。这几乎肯定不是您想要的。
要解决此问题,请使用将发送 SNMP 请求的机器的 IP 地址。如果您有多个 IP 地址,则需要com2sec
在此处输入多行。或者您可以直接使用default
,然后使用防火墙来控制访问。
答案2
这只是针对 OpenNMS 监控的一个建议。
对于没有专线或无法使用 LAN 到 LAN VPN 隧道的远程 OpenNMS 系统,我采用了不同的方法。我使用ntop 中的 n2n在系统之间创建对等隧道。当我无法控制一方或另一方的防火墙或需要应对复杂的 NAT 时,这非常方便。
不过,我不建议通过互联网发送未加密的 SNMP。