zabbix snmp自定义OID监控– nginx监控实例(53) – 21运维
通知: .-...

zabbix snmp自定义OID监控– nginx监控实例(53)

Zabbix 21运维 3813浏览 0评论

1,为什么要自定义OID?

前面的文章我们已经讲过zabbix如何使用snmp监控服务器,但是他有一个很明显的局限性:只能监控定义好的OID项目,假如我们想知道nginx进程是否在运行?在没有zabbix agent的情况下,我们该怎么做呢?接下来就用这个实力来讲解自定义OID  

OID内容可以回顾参考《zabbix SNMP OID列表 监控需要用到的OID

 2,确认SNMP OID是否存在

首先我们需要找一个oid是否被系统暂用,比如.1.3.6.1.2.1.25.2.2.0  获取内存大小的一个OID

[[email protected] ~]# snmpwalk -v 2c -c public 115.29.249.51 .1.3.6.1.2.1.25.2.2.0
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 500472 KBytes

很不幸,已经被占用了,我们在测试另外一个比如.1.3.6.1.4.1.2021.5000

[[email protected] ~]# snmpwalk -v 2c -c public 115.29.249.51  .1.3.6.1.4.1.2021.5000
UCD-SNMP-MIB::ucdavis.5000 = No Such Object available on this agent at this OID

这个没有占用,那可拿来做自定义了。

3,增加自定SNMP OID

3.1 设置脚本

# vim /root/scripts/check_nginx.sh
#!/bin/bash
nginxNum=`/bin/ps aux | /bin/grep nginx | wc -l`
echo $nginxNum
设置完以后
chmod a+x /root/scripts/check_nginx.sh 赋予执行权限,否则执行报错。考虑下为什么命令使用绝对路径?!

3.2 编辑配置

 echo  "extend .1.3.6.1.4.1.2021.5000  check_nginx /root/scripts/check_nginx.sh " >>  /etc/snmp/snmpd.conf
// 增加这一行

3.3  获取snmp信息

以下获取自定义的oid的所有数据,第一行便是我们需要获取的数据,那么在zabbix中写oid .1.3.6.1.4.1.2021.5000.4.1.2.11.99.104.101.99.107.95.110.103.105.110.120.1

[[email protected] ~]# snmpwalk -v 1 -c public  115.29.249.51  .1.3.6.1.4.1.2021.5000
UCD-SNMP-MIB::ucdavis.5000.1.0 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.5000.2.1.2.11.99.104.101.99.107.95.110.103.105.110.120 = STRING: "/root/scripts/check_nginx.sh"
UCD-SNMP-MIB::ucdavis.5000.2.1.3.11.99.104.101.99.107.95.110.103.105.110.120 = ""
UCD-SNMP-MIB::ucdavis.5000.2.1.4.11.99.104.101.99.107.95.110.103.105.110.120 = ""
UCD-SNMP-MIB::ucdavis.5000.2.1.5.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.5000.2.1.6.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.5000.2.1.7.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.5000.2.1.20.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 4
UCD-SNMP-MIB::ucdavis.5000.2.1.21.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.5000.3.1.1.11.99.104.101.99.107.95.110.103.105.110.120 = STRING: "5"
UCD-SNMP-MIB::ucdavis.5000.3.1.2.11.99.104.101.99.107.95.110.103.105.110.120 = STRING: "5"
UCD-SNMP-MIB::ucdavis.5000.3.1.3.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.5000.3.1.4.11.99.104.101.99.107.95.110.103.105.110.120 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.5000.4.1.2.11.99.104.101.99.107.95.110.103.105.110.120.1 = STRING: "5"

4,创建通过snmp类型监控项
4.1 创建snmp item

1

4.2  获取最新数据

1

接下来创建触发器以及报警,我就不多说了,大家可以参考《zabbix触发器trigger概述和如何创建

 

 

 

参考资料:http://www.ttlsa.com/zabbix/snmp-custom-oid/  并根据自己的服务器实际部署情况做了内容改动和一些补充。

转载请注明:21运维 » zabbix snmp自定义OID监控– nginx监控实例(53)

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 楼主,按照您的配置,我在最后执行的时候,报的是Exec format error"错误 [[email protected] wy]# snmpwalk -v 1 -c public 192.168.1.100 .1.3.6.1.4.1.2021.5000 UCD-SNMP-MIB::ucdavis.5000.1.0 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.2.5.99.104.101.99.107 = STRING: "/home/wy/check.sh" UCD-SNMP-MIB::ucdavis.5000.2.1.3.5.99.104.101.99.107 = "" UCD-SNMP-MIB::ucdavis.5000.2.1.4.5.99.104.101.99.107 = "" UCD-SNMP-MIB::ucdavis.5000.2.1.5.5.99.104.101.99.107 = INTEGER: 5 UCD-SNMP-MIB::ucdavis.5000.2.1.6.5.99.104.101.99.107 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.7.5.99.104.101.99.107 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.20.5.99.104.101.99.107 = INTEGER: 4 UCD-SNMP-MIB::ucdavis.5000.2.1.21.5.99.104.101.99.107 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.3.1.1.5.99.104.101.99.107 = STRING: "/home/wy/check.sh: Exec format error" UCD-SNMP-MIB::ucdavis.5000.3.1.2.5.99.104.101.99.107 = STRING: "/home/wy/check.sh: Exec format error" UCD-SNMP-MIB::ucdavis.5000.3.1.3.5.99.104.101.99.107 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.3.1.4.5.99.104.101.99.107 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.4.1.2.5.99.104.101.99.107.1 = STRING: "/home/wy/check.sh: Exec format error"
    wy2017-05-02 15:33 回复
    • 你stat /home/wy/check.sh看下是不是有非root的用户的执行权限。如果没有x,那么加上chmod a+x /home/wy/check.sh 后测试下。
      21运维2017-05-02 19:17 回复