【zabbix】zabbix自动发现规则

本文介绍如何使用Zabbix监控带有多个端口的Redis服务。通过编写Python脚本实现Redis端口信息的JSON化展示,利用正则表达式过滤不关心的端口。此外,详细说明了如何配置zabbix_agentd.conf文件及创建发现规则。
当一台主机上有多个端口的时候,不可能一个个模板的导入更改,那样太麻烦,发现规则很好用
背景:
  1. 主机:192.168.1.152
  2. redis端口:
  3. 26279
  4. 17100
  5. 17101
  6. 17102
  7. 17103
  8. 26479
  9. 15600
  10. 17200
  11. 17300
  12. 18100
  13. 11255
  14. 31000
  15. 18200
  16. 17400
  17. 17500

1、监控内容的json化

在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果

下面在是我的json监控redis的json展示

  1. 脚本:
  2. [root@HaoDai_App_Weight02 tmp]# more /etc/zabbix/redis_low_discovery.py
    #!/usr/bin/env python 
    import os 
    import simplejson as json
    t=os.popen("""sudo netstat -tlpn |grep redis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """) 
    ports = [] 
    for port in  t.readlines(): 
            r = os.path.basename(port.strip()) 
            ports += [{'{#REDISPORT}':r}] 
    print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))

  3. [root@HaoDai_App_Weight02 tmp]# python  /etc/zabbix/redis_low_discovery.py
    {
        "data":[
            {
                "{#REDISPORT}":"26279"
            },
            {
                "{#REDISPORT}":"17100"
            },
            {
                "{#REDISPORT}":"17101"
            },
            {
                "{#REDISPORT}":"17102"
            },
            {
                "{#REDISPORT}":"17103"
            },
            {
                "{#REDISPORT}":"26479"
            },
            {
                "{#REDISPORT}":"15600"
            },
            {
                "{#REDISPORT}":"17200"
            },
            {
                "{#REDISPORT}":"17300"
            },
            {
                "{#REDISPORT}":"18100"
            },
            {
                "{#REDISPORT}":"11255"
            },
            {
                "{#REDISPORT}":"31000"
            },
            {
                "{#REDISPORT}":"18200"
            },
            {
                "{#REDISPORT}":"17400"
            },
            {
                "{#REDISPORT}":"17500"
            }
        ]
    }

给该脚本给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat
  1. echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers

#Disable requiretty

  1. sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers
2、修改zabbix_agentd.conf文件
  1. 添加:
  2. UserParameter=redis.discovery,/etc/zabbix/redis_low_discovery.py                                  ------key名下面的发现规则需要填写的
    UserParameter=redis_status[*], /usr/local/bin/redis-cli  -p $1 info  |grep $2|cut -d : -f2


3 测试一下
  1. [root@HaoDai_App_Weight02 tmp]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf   -t  redis.discovery
    redis.discovery                               [t|{
        "data":[
            {
                "{#REDISPORT}":"26279"
            },
            {
                "{#REDISPORT}":"17100"
            },
            {
                "{#REDISPORT}":"17101"
            },
            {
                "{#REDISPORT}":"17102"
            },
            {
                "{#REDISPORT}":"17103"
            },
            {
                "{#REDISPORT}":"26479"
            },
            {
                "{#REDISPORT}":"15600"
            },
            {
                "{#REDISPORT}":"17200"
            },
            {
                "{#REDISPORT}":"17300"
            },
            {
                "{#REDISPORT}":"18100"
            },
            {
                "{#REDISPORT}":"11255"
            },
            {
                "{#REDISPORT}":"31000"
            },
            {
                "{#REDISPORT}":"18200"
            },
            {
                "{#REDISPORT}":"17400"
            },
            {
                "{#REDISPORT}":"17500"
            }
        ]
    }]
    [root@HaoDai_App_Weight02 tmp]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf   -t  redis_status[11255,role]
    redis_status[11255,role]                      [t|slave]

4 重启zabbix服务

网页端:
1 创建模板》创建应用》创建发现规则


发现规则如下:

filters可以过滤掉一些不想看的端口 r如:

2、设置正则

在“管理”=》“一般”=》“正则表达式”里,选择“新的正则表达式”

然后设置类似如下



需要的端口写进去,不需要的端口排除掉就好啦

3、主机关联模板

把需要监控mysql实例的主机管理模板即可监控,默认是3600秒后自动更新,如下图

上面的fiflter页面



发现规则下建立相应的items事件


建立对应的触发器以及graphs图等



最后的效果图



这里主要介绍了一下思路,网上有很多写好的模板直接可以下下来,然后写上对应的发现规则就好了!
我的模板
http://pan.baidu.com/s/1c2DKWLE

参考文档
http://dl528888.blog.51cto.com/2382721/1357713   ---监控多个mysql

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-2097793/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-2097793/

课程目标     全面理解和掌握 Zabbix 监控系统的架构及运行原理,搭建和管理各种规模的Zabbix监控系统 课程简介         Zabbix是一个开源的企业级的监控解决方案。通过Zabbix可以监控IT基础设施的方方面面,包括硬件、操作系统、网络、虚拟化层、中间件和各种业务应用系统。用Zabbix几乎可以监控你想监控的任意数据。              本课程从Zabbix的介绍、安装开始,一步步带你深入Zabbix,通过学习你会:         1、掌握Zabbix各个组件的配置和管理。         2、掌握不同监控项的类型和配置方法,根据监控需求灵活配置监控项。         3、掌握网络发现、低级发现和主动式agent自动注册,实现自动化监控。         4、掌握模版、宏变量、触发器和告警通知的配置和高级的应用方法。         5、掌握图形、屏幕、拓扑图和仪表盘等数据可视化的方法,利用大屏可以实时的展示监控数据。         6、掌握Zabbix系统自身的维护、备份、升级、排障以及性能优化。         7、掌握Zabbix内部运行机制和Zabbix使用技巧,让zabbix更好的帮助你实现监控目标。                  本课程中还包含很多操作演示,比如像创建主机,创建监控项、触发器、图形、全局事件关联等,也介绍了微信和钉钉告警的配置方法。当你对Zabbix深入了解之后,面对层出不穷的新业务、新应用,你都能轻松自如的制定和提供相应的监控解决方案。 特别提示:官网的中文文档有些地方翻译的有问题,一定要以英文文档为准。
### Zabbix 自动发现规则配置方法 Zabbix自动发现功能可以显著减少手动配置的工作量,特别是在大规模环境中。以下是关于如何配置和使用 Zabbix 自动发现规则的详细介绍。 #### 1. 创建自动发现规则Zabbix 中,可以通过 Web 界面创建自动发现规则。进入 **Configuration → Discovery** 页面后点击 **Create discovery rule** 按钮[^4]。 - **Name**: 输入规则名称以便识别。 - **Type of check**: 选择检测方式,例如 `Agent` 或者 `Simple check`。 - **Key**: 定义用于数据收集的关键字。对于 Agent 类型,通常会使用内置关键字如 `netstat.listen` 来获取监听端口的信息[^1]。 - **Update interval**: 设置更新频率,默认单位为秒。 - **Keep lost resources period**: 如果资源不再被发现,则保留该资源的时间长度(天数)。 - **Lifetime**: 当某个资源未被再次探测到时,在多少时间内仍然视为有效。 #### 2. 添加低级发现 (LLD) 规则 为了进一步细化监控需求,可以在自动发现规则的基础上定义 LLD 规则。这一步允许动态生成具体的监控项、触发器和图形等对象[^3]。 - 进入刚才创建的发现规则详情页,找到 **Low-level discovery rules** 部分并编辑相关内容。 - 填写 JSON 格式的宏变量映射关系,比如 `{#PORT}` 表示通过端口号自动生成对应的监控条目[^2]。 #### 3. 应用模板与链接主机 一旦完成上述设置之后,就可以将此发现规则应用至目标主机组或单个主机之上。当满足条件的新服务/组件被侦测出来以后,系统便会依据预设逻辑为其分配相应的模板,并建立关联性的监控结构[^4]。 ```bash # 示例命令展示如何查看本地开放端口情况供参考 sudo netstat -tuln | grep LISTEN ``` --- ### 注意事项 尽管自动化带来了便利性,但也需要注意一些潜在问题: - 数据源质量直接影响最终效果,因此务必确认所选 Key 可靠稳定; - 合理规划 Update Interval 参数以免造成性能瓶颈; - 定期审查已失效资源列表以防误报漏报现象发生。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值