使用zabbix low discovery自动发现所有主机端口监控

一、Low level discovery介绍

  在配置Items的过程中,有时需要对类似的Items进行添加,这些Items具有一些共同的特性,表现为某些特定的参数是变量,而其他设置都是一样的。例如,一个程序有多个端口,需要对端口而皮质Items,再如磁盘分区、网卡的名称等,由于具有不确定性,故配置固定的Items出现无法通用的问题,因为在Zabbix2.0以后版本增加了Low level discovery功能。
  Low level discovery的key可以对网卡、文件系统、SNMP OIDS进行自动发现,除此之外,还支持自定义功能。

二、使用Low level discover实现自动发现tcp端口并监控

2.1定义发现脚本,输出结果需要是json格式

  1. [root@zabbix alertscripts]# cat port_discovery.py
  2. #!/usr/bin/env python
  3. __author__ = 'chuck'
  4. import os
  5. import json
  6. data = {}
  7. tcp_list = []
  8. port_list = []
  9. command = os.popen("netstat -lntp|egrep -v 'tcp6|snmp|ssh|10050'|awk -F '[ :]+' 'NR>=3 {print $5}'")
  10. for port in command:
  11. port_list.append(port.strip())
  12. for port in list(set(port_list)):
  13. port_dict = {}
  14. port_dict['{#TCP_PORT}'] = port
  15. tcp_list.append(port_dict)
  16. data['data'] = tcp_list
  17. jsonStr = json.dumps(data, sort_keys=True, indent=4)
  18. print jsonSt

执行发现脚本,获取当前使用的tcp端口

  1. [root@zabbix alertscripts]# python port_discovery.py
  2. {
  3. "data": [
  4. {
  5. "{#TCP_PORT}": "3306"
  6. },
  7. {
  8. "{#TCP_PORT}": "4505"
  9. },
  10. {
  11. "{#TCP_PORT}": "4506"
  12. },
  13. {
  14. "{#TCP_PORT}": "10051"
  15. },
  16. {
  17. "{#TCP_PORT}": "25"
  18. }
  19. ]
  20. }

2.2配置端口发现的配置文件

此步操作需要在agent主配置文件打开UserParameter=1

  1. [root@zabbix alertscripts]# cat ../zabbix_agentd.d/all_port.conf
  2. UserParameter=tcpportlisten,sudo python /etc/zabbix/alertscripts/port_discovery.py

2.3使用zabbix_get远程获取自动发现结果

  1. [root@zq-salt-zabbix alertscripts]# zabbix_get -s 10.4.200.2 -k tcpportlisten
  2. {
  3. "data": [
  4. {
  5. "{#TCP_PORT}": "3306"
  6. },
  7. {
  8. "{#TCP_PORT}": "4505"
  9. },
  10. {
  11. "{#TCP_PORT}": "4506"
  12. },
  13. {
  14. "{#TCP_PORT}": "10051"
  15. },
  16. {
  17. "{#TCP_PORT}": "25"
  18. }
  19. ]
  20. }

2.4问题提示

此时可能出现you must have a tty to run sudo报错提示,将zabbix用户加入到sudo管理中,注释Defaults requiretty即可。
详情见sudo小记

2.5zabbix主界面添加自动发现模板

此处均已截图方式展现,如果有需要现成模板请查看本博客首页右上角联系博主
Configuration ==》create template

选择Discovert rules==》create Discovert rules

2.6zabbix主界面创建Item prototypes

选择Item prototypes==》创建Item prototypes

2.7zabbix主界面创建Trigger prototypes

创建Trigger prototypes ==》create Trigger prototypes

2
未经许可,不得转载,否则将受到作者追究,博主联系方式见首页右上角

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论
取消评论
代码 贴图 加粗 链接 删除线 签到

(7)条精彩评论:
  1. admin
    :oops:
    admin2016-09-08 12:38 回复
  2. 匿名
    博主写的很好 :evil:
    匿名2016-10-04 15:37 回复
    • admin
      谢谢,后续会有其他项目(mongodb和redis)的监控自动发现
      admin2016-10-19 11:13 回复
    • admin
      谢谢,后续会有其他项目(mongodb和redis)的监控自动发现!
      admin2016-10-19 11:13 回复
  3. 匿名
    一看就是博主自己写的,辛苦了,很有帮助。
    匿名2016-10-10 11:13 回复
    • admin
      是的,自己写的
      admin2016-10-19 11:13 回复
  4. 匿名
    老赵一直是我的偶像 :smile:
    匿名2016-11-22 15:15 回复