Intorduction: 最近一直有使用zabbix,根据需求需要自己手动监控一些服务,这时就需要自己动手自己写一些小脚本了,我这里写了一个比较简单的小脚本,主要用来监控monit监控的服务状态,听起来有些拗口,不过就是这样的。 这里尽可以详细的记录一下,哪里有不对欢迎指正
部署思路
- zabbix的server端我是直接写脚本安装的。先前blog有记录过。
- zabbix的client端和监控脚本采用ansible直接推送和安装。(ansible的配置随后再记录)
配置调试
自定义脚本
- 脚本如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/usr/bin/python
#########################################################################
#Author: arvon
#Email: guoyf@easemob.com
#Blog: arvon.top
#Date: 16/07/06
#Version: 1.0
#Todo: collect the monit summary process status send to zabbix server
##########################################################################
import sys
import commands
my_parameter = sys.argv[1]
total_msg = commands.getoutput('monit summary')
msg_list = total_msg.split('\n')
a = 0
for each_line in msg_list:
if my_parameter in each_line and 'Process' in each_line:
if 'Running' in each_line:
a = 1
else:
a = 0
print a
|
- 开启client端自定义脚本选项
1
2
|
Include=/etc/zabbix/zabbix_agentd.d/ #在这个路径下可以放自己的配置文件
UnsafeUserParameters=1 #就是这个参数1为打开,没有脚本的话打开这个会报错的
|
- 配置文件说明
自定义在/etc/zabbix/zabbix_agentd.d/下的配置文件
里面主要有两个关键因素
1
2
|
UserParameter=process.msg.web #这个就是定义key名称的地方,但最好定义的规整一点,还有就是别和zabbix自带的key重复
sudo python /etc/zabbix/scripts/get_monit_status.py "'nginx'" #这个是Value,可以是脚本也可以是个命令什么,这里返回的值就是zabbixServer得到的值
|
- zabbix-get测试说明
zabbix-get是zabbix的排错工具,在server上安装执行最好,-s是指定主机,-k是指定要获取哪个key对应的值,这里返回的是1,是我想用1和0在web上方便使用布尔值对服务状态做判断