【zabbix】zabbix自动发现规则

当一台主机上有多个端口的时候,不可能一个个模板的导入更改,那样太麻烦,发现规则很好用
背景:
  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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程目标     全面理解和掌握 Zabbix 监控系统的架构及运行原理,搭建和管理各种规模的Zabbix监控系统 课程简介         Zabbix是一个开源的企业级的监控解决方案。通过Zabbix可以监控IT基础设施的方方面面,包括硬件、操作系统、网络、虚拟化层、中间件和各种业务应用系统。用Zabbix几乎可以监控你想监控的任意数据。              本课程从Zabbix的介绍、安装开始,一步步带你深入Zabbix,通过学习你会:         1、掌握Zabbix各个组件的配置和管理。         2、掌握不同监控项的类型和配置方法,根据监控需求灵活配置监控项。         3、掌握网络发现、低级发现和主动式agent自动注册,实现自动化监控。         4、掌握模版、宏变量、触发器和告警通知的配置和高级的应用方法。         5、掌握图形、屏幕、拓扑图和仪表盘等数据可视化的方法,利用大屏可以实时的展示监控数据。         6、掌握Zabbix系统自身的维护、备份、升级、排障以及性能优化。         7、掌握Zabbix内部运行机制和Zabbix使用技巧,让zabbix更好的帮助你实现监控目标。                  本课程中还包含很多操作演示,比如像创建主机,创建监控项、触发器、图形、全局事件关联等,也介绍了微信和钉钉告警的配置方法。当你对Zabbix深入了解之后,面对层出不穷的新业务、新应用,你都能轻松自如的制定和提供相应的监控解决方案。 特别提示:官网的中文文档有些地方翻译的有问题,一定要以英文文档为准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值