第十四篇 zabbix创建自定义Item

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

利用zabbix创建自定义监控项需要执行以下操作:
1.在配置文件zabbix_agentd.conf中设置允许添加自定义监控项
2.在zabbix_server.conf中设置监控脚本文件存放路径
3.在指定的路径下创建监控脚本
4.在userparameter_script.conf文件中添加Item key
5.在web端创建监控项

第一步:找到你的zabbix_agentd.conf,设置允许添加自定义脚本将#Include=/usr/local/etc/zabbix_agentd.conf.d/前的#号去掉即可

这里写图片描述

第二步:设置创建监控脚本的存放路径,打开zabbix_server.conf配置文件,找到AlertScriptsPath,设置路径为

AlertScriptsPath=/usr/local/share/zabbix/alertscripts

这里写图片描述

第三步:创建监控脚本,会到刚开始的问题,我们要监控的是数据库中一张表的数据更新条数。为了模拟这个环境,我在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()

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

第四步:在userparameter_script.conf文件中添加Item key,Item key的格式为

UserParameter=<key>,<command>

前面是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

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

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

这里写图片描述

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

这里写图片描述

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值