标签:运维 user 自定义 数据库表 效果 clock 用户名 出现 图片
场景模拟:第二步:编写脚本
脚本如下:
import pymysql
def main():
"""
host:数据库IP
port:数据库端口
user:数据库用户名
password:数据库密码
db:数据库名
"""
host = ‘localhost‘
port = 3306
user = ‘zabbix‘
password = ‘zabbix‘
db = ‘zabbix‘
mysql = pymysql.connect(host=host,port=port,user=user,passwd=password,db=db)
sql = "select name,count(name) ‘发送次数‘,from_unixtime(clock) ‘发生时间‘ from events where clock in (select clock from events where TIMESTAMPDIFF(day,from_unixtime(clock,‘%Y-%m-%d‘),current_date)<30) and value=1 and source=0 group by name order by count(name) desc;"
cursor = mysql.cursor()
cursor.execute(sql)
for col in cursor.fetchall():
print(col[0].strip()+" | "+str(col[1])+" | "+col[2].strftime(‘%Y-%m-%d‘))
cursor.close()
mysql.close()
if name == "main":
main()
解析一下:
sql并没有做优化,读者可自行优化改查询语句
Sql语句中,events表中的source=1代表是触发器的时间,value=1代表触发器的状态是problem即(问题)
脚本中sql语句在数据库查询的结果如下图
第三步:把脚本添加到agent自定义键值中
记得要重启zabbix_agent,不然配置无效
第四步:验证测试结果
第一列:触发器名
第二列:每个月这个触发器出现的次数
第三列:是触发器第一次出现的时间
标签:运维 user 自定义 数据库表 效果 clock 用户名 出现 图片
原文地址:https://blog.51cto.com/14483703/2524650