最近在看snmp相关的知识,在centos上安装的snmpd进行测试。
执行如下三条指令
# 查看所有OID snmpwalk -v 2c -c public localhost # 查看系统基本信息 snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.1.1.0 # 查看网络接口数目 snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.2.1.0
当遍历所有OID信息时候,最后一行会出现“No more variables left in this MIB View”的信息。
而要获取网络接口数目时候,则返回”No Such Object available on this agent at this OID”
这其实是由于默认的snmpd配置,只允许用户查看基本系统信息(.1.3.6.1.2.1.1 与 .1.3.6.1.2.1.25.1.1的子节点)。其他OID信息无权查看。
# 配置可见节点组systemview,只允许查看.1.3.6.1.2.1.1 与 .1.3.6.1.2.1.25.1.1的子节点 # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 #### # 配置notConfigGroup用户组的可见节点组为systemview # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact systemview none none
所以要想给默认用户开通查看所有节点的权限,应该修改snmpd.conf文件。添加allview可见节点组
# name incl/excl subtree mask(optional) # 配置allview可见组,允许查看.1下的所有节点 view allview included .1 view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact allview none none # 注意,一个用户组只有第一条access节点组生效。 # 所以如果这里还保留systemview并放在allview上面的话,那第二条access就无效了。
然后重启snmpd之后,就能查看到所有OID的信息了。