zabbix 自动发现规则配置(详解)

前言

         对于很多情况下手动创建监控项是很费劲的事,所以zabbix提供了自动发现的功能,我这里以自动发现agent端活动端口为例,再借助zabbix自带的端口监控项来实现自动监控。废话不多说,直接来硬的。

一、修改agent端配置文件

   该位置以自己安装的为准,没找到可用locate搜索一下

   vim /etc/zabbix/zabbix_agentd.conf

UnsafeUserParameters=1 # 默认为0,表示不允许自定义key
UserParameter=portall,/root/shell/python/postjson.py   #自定义监控项

        注意:如果不能成功获取到监控项数据(一般提示权限不够),请修改agent配置文件 AllowRoot=1

        https://img-blog.csdnimg.cn/20191202091445240.png

二、在agent上添加脚本

      获得本地端口的shell语句如下:

      netstat -ntl|tail -n +3|awk '{print $4}'|awk -F: '{print $NF}'|sort|uniq

     

    然后写个python2的脚本,将数据转换成json格式

     Vim /root/shell/python/postjson.py

#!/usr/bin/env python
import json
import os

cmd=os.popen("""netstat -ntl|tail -n +3|awk '{print $4}'|awk -F: '{print $NF}'|sort|uniq""")

ports=[]

for port in cmd.readlines():
         r=port.strip()
         ports+=[{'{#PORT}':r}]

print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))

     效果截图

      

      注意:记得给脚本加执行权限

三、重启agent服务,server端测试

        server端使用zabbix_get测试监控项有效性。

        

四、创建自动发现规则

         键值就是前面agent配置文件那里写的名称

        

五、创建监控项原型

        注意:net.tcp.port[,{#PORT}]键值必须这么写,在写的时候参考官方文档不然监控项无效。

      

      

六、zabbix 查看监控项数据   ​

 

总结:

             我这里主要是介绍zabbix有这个功能,简单的实现方法,如果自己有其他需求要自己去写脚本咯,监控项原型也可以是自己自定义的监控项,我希望我的文章对朋友们有帮助,记得点个赞啥的,哈哈

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章