前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十四篇 zabbix创建自定义Item

第十四篇 zabbix创建自定义Item

作者头像
我是李超人
发布2020-08-21 10:28:21
6880
发布2020-08-21 10:28:21
举报
文章被收录于专栏:大数据入坑指南

为了满足用户的其它监控需求,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,设置路径为

代码语言:javascript
复制
AlertScriptsPath=/usr/local/share/zabbix/alertscripts
这里写图片描述
这里写图片描述

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

代码语言:javascript
复制
CREATE TABLE secumain(
    [id] [int] NULL,
    [content] [varchar](32) NULL,
    [updatetime] [datetime] NULL
) 

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

代码语言:javascript
复制
#!/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的格式为

代码语言:javascript
复制
UserParameter=<key>,<command>

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

代码语言:javascript
复制
UserParameter=script.getUpdateCountFromSecumain,/usr/local/share/zabbix/alertscripts/getUpdateCountFromSecumain.py

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

代码语言:javascript
复制
zabbix_get -s 127.0.0.1 -k script.getUpdateCountFromSecumain
(检测格式zabbix_get -s host -k key)

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

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

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

代码语言:javascript
复制
script.getUpdateCountFromSecumain
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/11/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档