使用Net-SNMP 5.6.1.1执行snmpwalk获取主机数据失败求助
我来帮你排查这个问题,你遇到的 HOST-RESOURCES-MIB::host = No Such Object available on this agent at this OID 错误,通常和几个核心配置点有关,咱们一步步拆解分析:
目标主机SNMP代理未加载HOST-RESOURCES-MIB模块
很多系统默认的SNMP代理(比如Linux的snmpd)不会自动启用所有MIB模块。你需要检查目标主机的snmpd.conf配置文件(通常在/etc/snmp/目录下),确认是否包含加载HOST-RESOURCES-MIB的配置项。比如要确保有类似这样的配置:includeAllDisks 10% view systemview included .1.3.6.1.2.1.25上面的配置会让代理暴露HOST-RESOURCES-MIB的内容,同时开启磁盘监控项。修改配置后记得重启snmpd服务:
systemctl restart snmpd(或service snmpd restart,取决于你的系统版本)。尝试指定更具体的子OID
你使用的1.3.6.1.2.1.25是HOST-RESOURCES-MIB的根OID,部分代理可能不会对根OID返回遍历结果,需要指定具体子节点测试。比如你可以先尝试查询系统运行时间的OID:snmpwalk -v2c -c public 192.168.0.102 1.3.6.1.2.1.25.1.1如果这个命令能返回数据,说明根OID未被代理设置为可遍历,后续可以直接针对具体子OID进行查询。
确认权限配置是否生效
你提到已经将public配置为读写权限,但要确保配置里的view规则包含了HOST-RESOURCES-MIB的OID。比如snmpd.conf里的view和共同体配置应该类似这样:view systemview included .1.3.6.1.2.1.25 rocommunity public default -V systemview rwcommunity public default -V systemview这样
public共同体才能有权限访问HOST-RESOURCES-MIB的内容。本地测试排除网络问题
建议先在目标主机上执行snmpwalk -v2c -c public localhost 1.3.6.1.2.1.25,如果本地也返回同样错误,那可以确定是代理配置问题,按照前面的步骤调整即可;如果本地能正常返回数据,再排查网络层面的防火墙、路由等限制。
内容的提问来源于stack exchange,提问作者Matios RUS

