标签归档:Redis性能监控

Zabbix 监控 Redis 数据库性能

说明:以下所有操作均在 Zabbix Agent 客户端操作。

部署环境:

OS:CentOS Linux release 7.4.1708 (Core) x64
Zabbix Servers:3.4
Redis Servers:4.0

先决条件:

Linux Centos7 Redis 源码编译安装配置

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更多性能指标。