当一台主机上有多个端口的时候,不可能一个个模板的导入更改,那样太麻烦,发现规则很好用
背景:
给该脚本给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat
2、修改zabbix_agentd.conf文件
3 测试一下
4 重启zabbix服务
网页端:
1 创建模板》创建应用》创建发现规则

发现规则如下:

filters可以过滤掉一些不想看的端口 r如:
发现规则下建立相应的items事件

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

最后的效果图

这里主要介绍了一下思路,网上有很多写好的模板直接可以下下来,然后写上对应的发现规则就好了!
我的模板
http://pan.baidu.com/s/1c2DKWLE
参考文档
http://dl528888.blog.51cto.com/2382721/1357713 ---监控多个mysql
背景:
-
主机:192.168.1.152
-
redis端口:
-
26279
-
17100
-
17101
-
17102
-
17103
-
26479
-
15600
-
17200
-
17300
-
18100
-
11255
-
31000
-
18200
-
17400
- 17500
1、监控内容的json化
在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果
下面在是我的json监控redis的json展示
- 脚本:
-
[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=(',',':'))
-
[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"
}
]
}
- echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers
#Disable requiretty
- sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers
- 添加:
-
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 测试一下
-
[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]
网页端:
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监控带有多个端口的Redis服务。通过编写Python脚本实现Redis端口信息的JSON化展示,利用正则表达式过滤不关心的端口。此外,详细说明了如何配置zabbix_agentd.conf文件及创建发现规则。
2061

被折叠的 条评论
为什么被折叠?



