我目前正在尝试设置服务器/客户端配置,但对 snmp 行为有些困惑。确切地说,我不太擅长 Linux 管理,也不太擅长网络管理,所以如果我的问题有时是新手问题,请不要感到惊讶。
我的架构如下:
- rhel6 上有 2 台服务器,ip 为 xxx.xxx.xxx.1 和 xxx.xxx.xxx.2
- 这两台服务器配置了集群套件(故障转移),所以我有一个虚拟地址:VIP 是 xxx.xxx.xxx.3(为了讨论,我们假设主服务器是 xxx.xxx.xxx.1)
- centos6 上的 N 个节点(xxx.xxx.xxx.10、xxx.xxx.xxx.11、...)
- 所有机器(节点和服务器)都在唯一的 LAN 上(没有路由器、没有防火墙、没有路由……)
- 没有 DNS,所有内容都静态存储在主机文件上
我希望主服务器(集群中的主服务器)使用 SNMP 监控节点。因此,我在节点上配置了 snmpd 文件,指定了 VIP 为 xxx.xxx.xxx.3 的主机。我在服务器上进行了相同的配置,以便主服务器也能监控从属服务器。
发生的情况如下:
- 当我从主服务器执行 snmpwalk 到节点时,我遇到了
超时。使用 tcpdump,我可以看到请求已由主
服务器发送,并且节点已接收。看来节点没有
正确应答 - 当我从主服务器执行 snmpwalk 到从服务器时,一切正常。如果我更改节点上的 SNMP 配置,指定具有主服务器地址的主机(例如 xxx.xxx.xxx.1),则一切正常。
我的想法是:
- 我读到过 SNMP 不具备集群感知能力;我觉得我正好遇到了这个问题,但我不知道发生了什么。从我在 1) 和 2) 中看到的情况来看,我认为节点没有响应 VIP,而是响应了主节点的真实地址(没有时间使用 tcmpdump 检查)
- 但如果这是真的,为什么从服务器上的 snmpwalk 可以工作?我本以为会出现同样的行为
我是否应该在节点上指定服务器的两个地址而不是 VIP,这是一个干净的解决方案吗(仍然需要检查它是否有效)?
或者我需要在节点上专门配置 snmp 客户端 (snmp.conf) 吗?我根本没有修改这个。
谢谢你的帮助,我有点迷茫了。
答案1
指定 3 个地址(主地址、从地址和集群 VIP)如我预期的那样工作。
但我不知道这是否是使其工作的正确方法。
更新 更准确地说,我为这 3 个地址分别指定了 rwcommunity 和 rocommunity 行