zbx_tem_redis中包含userparameter_redis_lld_plus.conf和redis_templates_for_zbx_3.4.xml两个文件
2. zabbix_agent配置
# 调整zabbix_agentd.conf
vim zabbix_agentd.conf
~
Include=/u01/zabbix/etc/zabbix_agentd.conf.d/*.conf
将zbx_tem_redis中的userparameter_redis_lld_plus.conf放到zabbix/etc/zabbix_agentd.conf.d/中,并重启zabbix_agentd服务。
3. 导入redis监控模板并添加监控
通过模板导入的形式导入redis_templates_for_zbx_3.4.xml模板(如命名为redis模板),根据实际需要对模板进行克隆调整,生成zabbix客户端主动式模板(默认导入为被动式)。由于该模板采用自动发现规则,调整主动式时一定要将规则和监控项原型中涉及zabbix客户端的部分,全部调整为zabbix客户端(主动式)。
针对需要被监控的主机,链接上redis模板即可完成模板关联,此时redis模板可能还无法正常工作,需要做以下调整。
- 点击被监控主机,找到“自动发现规则”
- 修改/etc/sudoers
vim /etc/sudoers
~
#1.注释掉如下语句
#Defaults requiretty
#2.末尾添加
zabbix ALL=(ALL) NOPASSWD: ALL
- 修改userparameter_redis_lld_plus.conf文件(增加)
#修改前
UserParameter=redis.port.discovery,ss -4lp|grep redis-server|awk -F':' '{print $2}'|awk '{print $1}'| awk NF | sed -e s/^/'{"{#REDIS_PORT}": "'/g -e s/'$'/'"},'/g | tr -d \\n | sed -e s/^/'{"data":['/g -e s/',$'/]}/g
#修改后
UserParameter=redis.port.discovery,sudo ss -4lp|grep redis-server|awk -F':' '{print $2}'|awk '{print $1}'| awk NF | sed -e s/^/'{"{#REDIS_PORT}": "'/g -e s/'$'/'"},'/g | tr -d \\n | sed -e s/^/'{"data":['/g -e s/',$'/]}/g
... ...
#修改前
UserParameter=redis.repl.discovery,ss -4lp|grep redis-server|awk -F':' '{print $2}'|awk '{print $1}'| awk NF|while read line; do role=`(echo info ; sleep 0.1)|telnet 127.0.0.1 $line 2>/dev/null|grep 'role:slave'|awk -F ':' '{print $2}'`;if [ "$role" == "slave" ] ;then echo "SLAVE:$line"|sed -e s/^/'{"{#REDIS_PORT_'/g -e s/'$'/'"},'/g -e s/':'/'}": "'/g ; fi;done| tr -d \\n | sed -e s/^/'{"data":['/g -e s/',$'/]}/g
#修改后
UserParameter=redis.repl.discovery,sudo ss -4lp|grep redis-server|awk -F':' '{print $2}'|awk '{print $1}'| awk NF|while read line; do role=`(echo info ; sleep 0.1)|telnet 127.0.0.1 $line 2>/dev/null|grep 'role:slave'|awk -F ':' '{print $2}'`;if [ "$role" == "slave" ] ;then echo "SLAVE:$line"|sed -e s/^/'{"{#REDIS_PORT_'/g -e s/'$'/'"},'/g -e s/':'/'}": "'/g ; fi;done| tr -d \\n | sed -e s/^/'{"data":['/g -e s/',$'/]}/g
4. 针对“自动发现规则”可以通过设置过滤器,单独匹配端口
点击规则Redis Discovery for slave Port或进入后,选择过滤器,设置{#REDIS_PORT_SLAVE}的正则表达式即可,此处根据实际需要设置,如6379
点击规则Redis Discovery for Port或进入后,选择过滤器,设置{#REDIS_PORT}的正则表达式即可,此处根据实际需要设置,如6379
5. 被监控主机需要有redis-cli和telnet命令