Zabbix使用手册:监控Redis(集群)

本文讲述如何通过Zabbix对Redis进行监控,可自动发现Redis端口并全面监控Redis各项参数,建议zabbix-server版本高于4.0。

服务端

下载zabbix_template_redis模板及配置文件,解压后在Zabbix的模板管理页面导入模板zbx_export_templates.xml,建议根据实际情况修改监控项,比如定义自动发现的端口过滤。

客户端

需要命令支持:telnet, ss, redis-cli,且:

chmod +s /bin/netstat

编辑配置文件/etc/zabbix/zabbix_agentd.d/userparameter_redis.conf

# discover redis port
UserParameter=redis.port.discovery,sudo ss -4lpn|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.ping[*],(echo auth $2; echo ping ;sleep 0.1) |telnet 127.0.0.1 $1 2>/dev/null |grep 'PONG'|wc -l
UserParameter=redis.info.json[*],(echo auth $2; echo info ; sleep 0.1)| telnet 127.0.0.1 $1 2>/dev/null | grep ':'| grep -v ^# | grep -v ^db | awk NF | sed -e s/:ok$/:yes/g -e s/^/'"'/g -e s/'$'/'",'/g -e s/':'/'":"'/g | tr -d \\n | sed -e s/^/'{"redis_info":{'/g -e s/',$'/}}/g
UserParameter=redis.config.json[*],(echo auth $2; echo "config get *" ; sleep 0.1)| telnet 127.0.0.1 $1 2>/dev/null|sed -e '0,/^\$[0-9]/d'|sed -e '/^\$[0-9]/d'|awk '{print $NF}'|sed -e 's/^/"&/g' -e 's/$/&"/g'|sed 'N;s/\n/:/g' |sed -e s/'$'/','/g| tr -d \\n | sed -e s/^/'{"redis_config":{'/g -e s/',$'/}}/g 
# discover redis slave port
UserParameter=redis.repl.discovery,sudo ss -4lpn|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.slaveinfo.json[*],(echo auth $2; echo info Replication; sleep 0.1)| telnet 127.0.0.1 $1 2>/dev/null | grep ':'| grep -v ^# | grep -v ^db | awk NF | sed -e s/:ok$/:yes/g -e s/^/'"'/g -e s/'$'/'",'/g -e s/':'/'":"'/g | tr -d \\n | sed -e s/^/'{"redis_slaveinfo":{'/g -e s/',$'/}}/g

为了使zabbix能正常获取数据,建议给zabbix配置免密sudo权限,如果不使用sudo,需删除userparameter_redis.conf中的sudo命令,然后自行测试。

systemctl restart zabbix-agent

最后,给主机应用redis监控模板,根据自动发现设定的时间间隔,稍后即可获取数据。

原创文章禁止转载:技术学堂 » Zabbix使用手册:监控Redis(集群)

精彩评论

8+7=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏