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

凉白开 zabbix735,0622字数 2264阅读7分32秒阅读模式

为什么要自定义OID?

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

 文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

确认SNMP OID是否存在

首先我们需要找一个oid是否被系统暂用,比如.1.3.6.1.4.1.2021.5000文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

# snmpwalk -v 2c -c public www.ttlsa.com .1.3.6.1.4.1.2021.5000
 UCD-SNMP-MIB::ucdavis.5000 = No Such Object available on this agent at this OID

如上说明不存在文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

增加自定SNMP OID

编写脚本文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

# cat /root/scripts/check_nginx.sh
#!/bin/bash
nginxNum=`/bin/ps aux | /bin/grep nginx | wc -l`
echo $nginxNum

 文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

修改配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

# vim /etc/snmp/snmpd.conf
 extend .1.3.6.1.4.1.2021.5000  check_nginx /root/scripts/check_nginx.sh // 增加这一行

获取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文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

# snmpwalk -v 1 -c public 173.219.255.122 .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: "6"
UCD-SNMP-MIB::ucdavis.5000.3.1.2.11.99.104.101.99.107.95.110.103.105.110.120 = STRING: "6"
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: "6"

创建snmp item

nginx

snmp-oid

获取最新数据

nginx

snmp获取nginx数据

接下来创建触发器以及报警,我就不多说了,大家可以参考《zabbix触发器文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

 文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

zabbix snmp监控所有文章

1. zabbix snmp类型 无需安装agent也能监控(51)文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

2. snmp安装配置 zabbix snmp监控准备(52)文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

3. snmp v3的安全配置 snmp认证与加密配置(53)文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

4. SNMP OID列表 监控需要用到的OID 文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

5. zabbix单位符号Unit symbols(32)文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/ 文章源自运维生存时间-https://www.ttlsa.com/zabbix/snmp-custom-oid/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 04/12/2014 01:00:46
  • 转载请务必保留本文链接:https://www.ttlsa.com/zabbix/snmp-custom-oid/
  • nginx
  • oid
  • snmp
  • snmp oid
  • zabbix
  • zabbix使用snmp监控nginx
  • 触发器
评论  7  访客  7
    • star
      star 2

      在snmpd.conf 中的check_nginx 是key值对吧,但是使用这个关键字怎么获取不到数据,可以使用OID获取。

      • 用户5198835665
        用户5198835665 9

        你好,你确定UCD-SNMP-MIB::ucdavis.5000.1.0 = INTEGER: 1这一行是命令执行结果得值? 我做过比较多得测试好像不是这样,我这有一个红毛官网得连接,你看一下,https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-System_Monitoring_Tools-Net-SNMP-Extending.html

        • 用户5198835665
          用户5198835665 9

          你好,很喜欢看你得教程,最近公司需要搭建zabbix监控生产环境,但是不让用agent,只能用snmp协议监控;有没有办法能在client端的snmpd进程挂了,有报警通知呢?

            • 运维生存时间
              运维生存时间 7

              @ 用户5198835665 如果snmp进程挂了,你得监控项数据获取不到,自然会报警的。

                • 用户5198835665
                  用户5198835665 9

                  @ 运维生存时间 zabbix自带得模板是没有针对snmp如果挂了自动报警的,需要自己在创建模板得时候定义一个nodata才可以得吧。我最近一直在研究snmp协议抓取数据,明白了很多内容,你得snmp写得太浅了,而且有些地方是错误得。请原谅我的直白。

                    • 运维生存时间
                      运维生存时间 7

                      @ 用户5198835665 这篇确实写错了,谢谢~

                      • 运维生存时间
                        运维生存时间 7

                        @ 用户5198835665 这不是专门讲snmp,所以肯定写得很浅,如果想深入学习snmp,建议你到当当上买一本snmp书籍恶补一下。
                        你说有些地方是错的?有哪些错呢?麻烦指正一下。

                评论已关闭!