西数超哥博客
运维经验教程分享

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

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

[root@aliserver ~]# 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

[root@aliserver ~]# 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

[root@aliserver ~]# 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

4.2  获取最新数据

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

 

 

 

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

转载请注明:西数超哥博客www.ysidc.top» zabbix snmp自定义OID监控– nginx监控实例(53)

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » zabbix snmp自定义OID监控– nginx监控实例(53)