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