Zabbix添加自定义监控项

为了满足用户的其它监控需求,zabbix允许用户创建自定义监控任务,假设现在有这么一个监控任务,要求监控数据库中某一张表当天更新的数据条数。你会发现zabbix中并不存在这样的Item,为了满足用户的其它需求,zabbix允许用户创建自定义的监控项。

利用zabbix创建自定义监控项需要执行以下操作: 

1.编写监控脚本 并手动测试脚本
2更改agent的配置文件,设置

UnsafeUserParameters=1

并打开Include配置项

3.在agent端的Include路径下编辑以.conf结尾的配置文件,并写入 UserParameter= key , value

重启zabbix_agent

4.在Server端用zabbix_get 尝试获取监控项的数据

5.在web端创建监控项

第一步:编辑zabbix_agentd.conf,设置

UnsafeUserParameters=1  表示用户自定义的脚本中可以包含特殊字符。

设置允许添加自定义配置文件

将#Include=/usr/local/etc/zabbix_agentd.conf.d/前的#号去掉即可

这里写图片描述


第二步:创建监控脚本,会到刚开始的问题,我们要监控的是数据库中一张表的数据更新条数。为了模拟这个环境,我在sqlserver下建了一个pythontest数据库,并在其中建了一张表secumain,建表语句如下:

CREATE TABLE secumain(
    [id] [int] NULL,
    [content] [varchar](32) NULL,
    [updatetime] [datetime] NULL
) 

我的监控脚本是用python写的,代码如下:

#!/usr/bin/python
#coding=utf-8
import pymssql

server = "198.192.1.1"
user = "sa"
password = "6527293"

conn = pymssql.connect(server, user, password, "pythontest")
cursor = conn.cursor()
cursor.execute("select COUNT(*) from secumain where updatetime>(select cast(convert(varchar(10),getdate()-1,120)+' 00:00:00' as datetime)) and updatetime<getdate()")

result=cursor.fetchall()[0][0]
result=float(result)
print (result)
cursor.close()
conn.close()

注意:为了确保脚本无误,你最好执行一下写好的脚本

第三步:在Include路径下创建userparameter_script.conf文件,添加Item key,Item key的格式为

UserParameter=<key>,<command>
  • 1

前面是key值,也就是在web端添加监控脚本时的key值,command就是该key值对应的执行脚本,也就是脚本执行路径。配置如下:

UserParameter=script.getUpdateCountFromSecumain,/usr/local/share/zabbix/alertscripts/getUpdateCountFromSecumain.py

每添加一个新的执行脚本,只需要按照上面的方式,在userparameter_script.conf文件中添加即可。添加完成之后切记需要重启zabbix_server和zabbix_agentd服务,可以通过zabbix_get检测监控脚本是否添加成功,检测指令如下:

zabbix_get -s 127.0.0.1 -k script.getUpdateCountFromSecumain
(检测格式zabbix_get -s host -k key)

由于我没有在该表中添加任何数据,的到的结果是0

这里写图片描述

第五步:在web端创建监控项,和之前创建监控项的方式一样,这是这里需要手动输入key值

script.getUpdateCountFromSecumain
  • 1

这里写图片描述
这里写图片描述

我现在在表中添加五条数据

这里写图片描述

点击检测中-》最新数据找到get count from secumain这个监控项,点击右侧的图形,可以看到检测到的数据是5条

这里写图片描述

看到这样的结果说明成功创建了自定义监控项

版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/u012062455/article/details/53259682
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值