1、在装有agent客户端的服务器上的在指定的路径上编写脚本,下图(zabbix_agent2.conf 部分截图)为配置路径位置
2、编写 userparameter.conf 配置文件
vi /etc/zabbix/zabbix_agent2.d/userparameter.conf
【自定义监控获取Redis缓存中keys的总个数】
UserParameter=redis.keys.count[*], /program/zabbix/command/monitorRedis.py $1 $2 2>/dev/null
UserParameter= 这个为固定的,后面的内容以逗号隔开
其中第一个参数为 监控项名字【key】, 如果需要额外的输入参数,则添加[*]
第二个参数为执行的脚本,$1代表外部输入的第一个参数,$2代表外部输入的第二个参数,依此类推
3、zabbix服务器上添加配置,创建item
主要配置在 *Key, 其中自己配置的不能从Select得到,直接在输入框录入
redis.keys.count["{$redis.hostIp}","{$redis.port}",]
中括号里的值为参数,使用逗号隔开参数,参数可以在宏里面定义,然后使用{$}获取,如下图定义
备注: 下面图为示意图,本次样例直接写死,没有写在宏里面
参数与第一个步骤的外部输入参数相呼应。
注:上面脚本的输出内容为监控项的输出内容,监控Redis 缓存的 key 值 为如下代码
vi monitorRedis.py
#!/bin/python3
import redis
import sys
#建立数据库连接池、redis连接
pool = redis.ConnectionPool(host = sys.argv[1], port= sys.argv[2], db=0)
rd = redis.Redis(connection_pool=pool)
try :
keys = rd.keys()
keyCount = (len(rd.keys()))
print(keyCount)
except Exception as e:
print("获取key失败")
finally:
rd.close()
# host='223.100.128.250', port=16379