说明:以下所有操作均在 Zabbix Agent 客户端操作。
部署环境:
OS:CentOS Linux release 7.4.1708 (Core) x64 Zabbix Servers:3.4 Redis Servers:4.0
先决条件:
1.修改主机 Host
文件末端添加以下内容:
$ vim /etc/hosts 10.28.204.65 s102820465
2.安装 Python 依赖包
$ yum -y install python-pip $ pip install argparse $ pip install redis
3.下载 Zabbix 官方提供的 Template Redis 模板
将下载到本地的压缩包传入到tmp目录后解压:
//github.com/adubkov/zbx_redis_template
$ cd /tmp $ tar zxvf zbx_redis_template-master.zip $ cd zbx_redis_template-master将以下2个配置文件拷贝到相关目录:
$ cp zbx_redis_stats.py /usr/local/zabbix/bin $ cp zbx_redis.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/注意:除上面两个文件外,其他的可以忽略。因为官方Zabbix template 模板提供了两种监控redis的方案,分别是 node.js 、python。本文教程采用后者。
4.配置zbx_redis_stats.py
将以下文件中的参数修改为 Zabbix Server 主机IP及端口:
$ cd /usr/local/zabbix/bin $ vim zbx_redis_stats.py ... zabbix_host = '10.28.204.62' # Zabbix Server IP zabbix_port = 10051 # Zabbix Server Port ...给该文件可执行权限:
$ chmod +x zbx_redis_stats.py
5.配置zbx_redis.conf
$ cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/将文件修改为以下内容:
$ vim zbx_redis.conf UserParameter=redis[*],/usr/local/zabbix/bin/zbx_redis_stats.py -p 6379 -a RenwoleQxl5qpKHrh $1 $2 $3
6.测试zbx_redis_status.py是否可以连接 Redis 数据库
$ cd /usr/local/zabbix/bin $ ./zbx_redis_stats.py -h 127.0.0.1 -p 6379 -a RenwoleQxl5qpKHrh usage: zbx_redis_stats.py [-h] [-p REDIS_PORT] [-a REDIS_PASS] [redis_hostname] [metric] [db] Zabbix Redis status script positional arguments: redis_hostname metric db optional arguments: -h, --help show this help message and exit -p REDIS_PORT, --port REDIS_PORT Redis server port -a REDIS_PASS, --auth REDIS_PASS Redis server pass出现以上内容说明连接正常。
参数说明:
-h Redis bind 地址
-p Redis端口
-a Redis密码
7.测试是否获取到数据
$ ./zbx_redis_stats.py -p 6379 -a RenwoleQxl5qpKHrh S102820465 used_cpu_user_children none 0.71返回 0.71,此值不固定,只要有数据返回,说明脚本运行正常。
参数说明:
zbx_redis.conf文件中的$1 $2 $3这时就派上用场了。
$1 对应 S102820465 主机Host
$2 对应 used_cpu_user_children
$3 对应 none
最后将 zbx_redis_templates.xml 模板导入到 Zabbix Servers UI 中,然后链接到需要监控的主机即可。
如果在Zabbix UI中无法获取的到数据,可以在 Zabbix Agent 客户端直接运行 zbx_redis_stats.py 脚本,如果有配置不正确的地方,会反馈出来,再根据报错处理即可。
结语:
其实监控redis状态的模板太多了,基本都是大同小异,选择一个适合自己的,比如监控项目非常多的,这样就可以了解redis更多性能指标。
我安装教程,在Zabbix UI中无法获取的到数据,在zabbix-agent中运行zbx_redis_stats.py 脚本也没有报错,不知道什么原因。
看看是不是双方服务器不通信,有没有看看日志怎么描述的?