Prometheus + Grafana(七)系统监控之Redis

 

前言

利用prometheus监控redis.

github地址:https://github.com/oliver006/redis_exporter

 

技术架构

prometheus通过redis_exporter抓取redis的指标,一个prometheus可以配置很多redis_exporter,一个redis_exporter也可以抓取多个redis。

 

安装redis_exporter

注:在redis集群下的所有节点上部署。

  • 上传解压

从 redis_exporter下载 并上传redis_exporter-v1.3.5.linux-amd64.tar安装包并解压到/usr/local目录

wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz
tar -xvf redis_exporter-v1.3.5.linux-amd64.tar cd redis_exporter-v1.3.5.linux-amd64/
  • 配置

使用默认配置

redis_exporter 常用的选项:

-redis.addr:指明一个或多个 Redis 节点的地址,多个节点使用逗号分隔,默认为 redis://localhost:6379
-redis.password:验证 Redis 时使用的密码;
-redis.file:包含一个或多个redis 节点的文件路径,每行一个节点,此选项与 -redis.addr 互斥。
-web.listen-address:监听的地址和端口,默认为 0.0.0.0:9121
  • 启动

进入根目录下,输入以下命令:

cd redis_exporter-v1.3.5.linux-amd64
nohup ./redis_exporter -redis.addr 10.x.xxx.213:7000 10.x.xxx:7001 10.x.xxx.213:7002 10.x.xxx.213:7003 &
tail -1000f nohup.out

注:-redis.addr 请修改相应环境redis服务地址,如同一台服务器部署了多个实例,全部都要填写

启动成功后,可以访问 http://10.x.xx.100:9121/metrics/  (IP和端口要改成相应环境的)

看抓取的信息如下:

 

Prometheus配置

  • 配置

修改prometheus组件的prometheus.yml加入redis监控:

vi /usr/local/prometheus-2.15.1/prometheus.yml

 

  • 启动验证

先kill掉Prometheus进程,用以下命令重启它,然后查看targets:

cd /usr/local/prometheus-2.15.1
nohup ./prometheus --config.file=prometheus.yml &

 

Grafana配置

  • 导入仪表盘模板

导入标准 redis仪表盘模板,以下是在标准基础上修改的模板文件(Redis-dashboard.json)

注意:Memory Usage这个图表,一直是N/A。是因为redis_memory_max_bytes 获取的值为0,导致 redis_memory_used_bytes / redis_memory_max_bytes 结果不正常。

解决办法:将redis_memory_max_bytes 改为服务器的真实内存大小。更改计算公式:

redis_memory_used_bytes{instance=~"$instance"}  / 8193428
  • 预警指标  

序号

预警名称

预警规则

描述

1

节点数预警

当集群中的节点数达到阈值【!=12】时进行预警

 

2

客户端连接数预警

当客户端连接数达到阈值【>900】时进行预警

 

3

内存预警

当内存使用达到阈值【>80%】时进行预警

 

4

拒绝连接预警

因最大客户端数量限制而被拒绝的连接请求数量达到阈值【>1】时进行预警

 

5

未命中预警

当根据key找不到数据的次数达到阈值【>10000000】时进行预警

 

 

其它

  • 注册为系统服务开机自动启动

## 准备配置文件
cat <<\EOF >/etc/systemd/system/redis_exporter.service
[Unit]
Description=Prometheus exporter for Redis metrics.
Documentation=Supports Redis 2.x, 3.x, 4.x, and 5.x

[Service]
ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr=redis://localhost:6379

[Install]
WantedBy=multi-user.target
EOF


## 启动并设置为开机自动启动
systemctl daemon-reload
systemctl enable redis_exporter.service
systemctl stop redis_exporter.service
systemctl start redis_exporter.service
systemctl status redis_exporter.service

 

posted on 2020-04-20 17:08  曹伟雄  阅读(5797)  评论(2编辑  收藏  举报

导航