我有这个用于 Net-SNMP 5.7.2.1 的监控网络设置,用于监听我的家庭网关上的多个以太网接口,但它只需要从snmpd.conf配置文件中获取以下组合:
- 单个 IP 地址
- 单个 IP 地址,特定于协议
- 每个唯一协议的单个 IP 地址
如:
agentAddress 127.0.0.1:161
或者
agentAddress udp:127.0.0.1:161
或者
agentAddress udp:127.0.0.1:161,udp6:[::1],tcp:127.0.0.1:161
但它不会接受使用相同协议的多个 IP 地址,如下所示:
agentAddress udp:127.0.0.1:161,udp:172.28.130.1:161
如何让 SNMP 守护进程 ( snmpd ) 监听两个(或更多)以太网接口
在深入研究了 NetSNMP 代码之后,它看起来像是逐行处理配置文件,如果发现什么,它会附加到代理地址数据。
因此,您可以在配置文件中添加具有多个代理地址的多行:
我能够在使用 NetSNMP 构建的自己的代理上对此进行测试...
显然,为版本 Net-SNMP 5.7.2.1 指定多个接口的唯一方法是在snmpd的命令行中指定多个 IP 地址。
我还没有找到使用 snmpd 配置 ( snmpd.conf ) 文件方法指定多个接口的可行解决方案。
在那里(在命令行),您可以指定协议粒度(并继续跨多个接口使用相同的协议),如下所示:
我建议您可以修改 systemd 脚本,而不是在命令行上手动进行。
例如,位于 /usr/lib/systemd/system/ 中的当前 snmpd.service 包含以下内容:
只需更改“ExecStart”行以包含您想要的内容。
例如
注意:我没有测试过这种格式,它可能需要以不同的方式在末尾加上“-f”或其他东西 - 测试和调整。按理说它应该可以工作,然后您就拥有使用 systemd 的所有优势(无论如何都在使用)。
此平台片段来自 CentOS 7.3,因此 snmpd.service 的位置可能因发行版而异。找到您的,将其复制到 .bak 文件并修改原始文件 - 测试 - 享受。