本文主要基于zabbix自动发现监控redis,redis指标主要通过 redis-cli info 命令采集,并使用zabbix-sender 将监控数据发送至zabbix-server。
- zabbix-server 4.0
- zabbix-sender 4.0
- python2.7
- redis 5.0.5
zabbix discovery自动发现redis端口及redis-cli路径,request.redis 该key执行时会触发zabbix-sender发送数据给zabbix-server。
https://github.com/SawyerLan/zabbix
├── discovery.sh
├── parse_listen_program.py
├── redis.sh
├── sudo_zabbix
├── userparameter_discovery.conf
├── userparameter_redis.conf
└── zbx_export_templates.xml
discovery.sh 自动发现脚本,参数1个服务名 parse_listen_program.py 解析自动发现结果为json格式 redis.sh redis监控主脚本,参数1 redis-cli路径, 参数2 redis 端口,参数3 redis密码(无密码不用传) sudo_zabbix 配置zabbix的sudo权限 userparameter_discovery.conf 自动发现配置文件 userparameter_redis.conf redis监控配置文件 zbx_export_templates.xml redis监控模板
- 导入zbx_export_templates.xml 模板至zabbix
- 配置zabbix的sudo权限,权限见sudo_zabbix
- 复制脚本,将discovery.sh parse_listen_program.py redis.sh 复制到zabbix-agent的对应目录,
- 配置zabbix-agent配置文件,将userparameter_discovery.conf和userparameter_redis.conf 放在你对应的目录下
- 修改配置,修改userparameter_discovery.conf userparameter_redis.conf 文件中的脚本为你第3点配置的脚本路径
- 重新启动zabbix-agent
- 模板关联需要监控的主机
- (可选)如果你的redis有密码,可以在redis模板或者主机定义REDIS_PWD 宏变量,模板已经配置该变量,可参考下图