记录一个简单的zabbix的URL监控小脚本。
在本机测试中curl命令其实可以写在一句命令中,但是由于用到if else的结构,分号之后的部分zabbix调用脚本的时候好像会截断,所以本地执行正常,但是通过zabbix-server端调用总是会出错,无奈还是把这个写成一个脚本使用
1、在要监控URL的主机的zabbix-agent目录下的scripts目录下新增一个脚本文件,比如checklt.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import commands
from sys import argv
name, urlpath = argv
comm = "sudo curl -I -m 10 -o /dev/null -s -w %{http_code} " + urlpath
[stat, rtv] = commands.getstatusoutput(comm)
if rtv == "200":
print "200"
else:
print "0"
这里只简单的判断了200为正常,有时根据需要可能如301等也是正常的值,可以根据实际情况调整脚本,返回值这里设置了200和0.
2、向zabbix注册方法
在zabbix_agent.conf中或者在其include的文件中添加
UserParameter=checklt_stats[*],sudo python /etc/zabbix/scripts/checklt.py $1
3、重启zabbix-agent
/etc/init.d/zabbix-agent restart
4、登录zabbix-server端测试返回结果
zabbix_get -s 192.168.0.0 -k checklt_stats[url_path]
如果返回预期的结果则表示成功。
5、添加监控项
图1
使用右上角的搜索框找到要添加的主机,点击监控项出现如图界面,点击添加监控项
图2
点击完成,添加成功。
6、添加触发器
选择添加触发器,选择要添加的主机,选择对应的监控项,表达式就选择系统自带的T不等于n即可,然后设置n=200,设置相应的报警级别,完成。












网友评论