Python 调用snmp自定义OID实现监控

1.安装netsnmp

yum install net-snmp net-snmp-devel net-snmp-utils net-snmp-python  -y

其中 net-snmp-python  snmp支持python的模块

启动snmp服务

/etc/init.d/snmpd restart

加入开机启动

Chkconfig  snmpd  on 35

 

首先查看snmp配置文件,实现自定义OID捕获linux系统信息。

打开系统自带监控硬盘 负载 内存等的OID 还可以自己编写脚本通过定义oid来执行监控

使用方法

snmpwalk -v2c -c public 192.168.120.131 .1.3.6.1.4.1.2021.50   红色是oid

python  使用方法

import netsnmp

print netsnmp.snmpwalk(netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.4.1.2021.10')),Version = 1,DestHost='localhost',Community='public')

 

排错

1[root@JR-ZR01-TEST ~]# snmpwalk -v1 -c public 192.168.76.250 .1.3.6.1.4.1.4413.4.1

End of MIB

参考:这个错误一般是在 snmp.conf view 里面没有允许该OID ,甚至做了显式拒绝,解决办法是允许该 OID.

加入: view    systemview    included   .1

 

 

 

2.      exec .1.3.6.1.4.1.2021.51 ps /bin/ps

进行snmpwalk查询:

# snmpwalk -v2c -cpublic 192.168.1.21 .1.3.6.1.4.1.2021.51

UCD-SNMP-MIB::ucdavis.51 = No Such Object available on this agent at this OID

可以发现是找不到.1.3.6.1.4.1.2021.51这个OID的。

这是什么原因呢?

 

如果出现这种情况,请先查看一下snmpd的版本。

# snmpd -v

NET-SNMP version:  5.5

上面的配置方式是旧版的配置,新版本已经不用此格式了。新的格式是:

extend .1.3.6.1.4.1.2021.51 ps /bin/ps

 
  
  1. <--!
  2. 参考文献:  
  3. http://hi.baidu.com/tmdniqusi/item/7d2879ffa2eef96e3d1485ce  
  4. http://blog.csdn.net/tin591/article/details/8702577  
  5. http://ilexes.blog.51cto.com/705330/243937  
  6. http://itnihao.blog.51cto.com/1741976/791772  
  7. !--> 

 

最后附上一付修改过的完整配置