prometheus监控redis,redis-cluster

Prometheus监控redis使用的是redis_exporter, 作者GitHub: https://github.com/oliver006/redis_exporter

需要说明的是: redis_exporter 对于redis集群的监控表现不是太好, 作者建议为每个redis 实例启动一个 redis_exporter, 如果一个服务器节点启动了多个redis进程, 就需要启动多个 redis_exporter

如果采用一个redis_exporter 采集多个 redis node 会导致其中一个 redis node 连不上.

1. redis_exporter安装配置

# 下载redis_exporter
wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.4/redis_exporter-v1.3.4.linux-amd64.tar.gz
# 解压
tar xzf redis_exporter-v1.3.4.linux-amd64.tar.gz 
# 删除下载的文件
rm -f redis_exporter-v1.3.4.linux-amd64.tar.gz 
# 安装redis_exporter
mv redis_exporter-v1.3.4.linux-amd64 /usr/local/
ln -sv /usr/local/redis_exporter-v1.3.4.linux-amd64 /usr/local/redis_exporter

2. redis_exporter启动

# 直接启动。
## 无密码
./redis_exporter redis//192.168.11.110:6379 &
## 有密码
redis_exporter  -redis.addr 192.168.11.111:6379  -redis.password 123456

启动参数说明:

  • -redis.addr:指明 Redis 节点的地址,默认为 redis://localhost:6379(如果有多个redis实例, redis_exporter作者建议启动多个redis_exporter进程来进行监控数据获取)
  • -redis.password:验证 Redis 时使用的密码;
  • -redis.file:包含一个或多个redis 节点的文件路径,每行一个节点,此选项与 -redis.addr 互斥。
  • -web.listen-address:监听的地址和端口,默认为 0.0.0.0:9121

3. 配置redis_exporter为系统服务方式启动

# 添加redis_exporter启动用户
groupadd prometheus
useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus
# 创建redis_exporter系统服务配置文件及权限调整
touch /usr/lib/systemd/system/redis_exporter.service
chown prometheus:prometheus /usr/lib/systemd/system/redis_exporter.service
chown -R prometheus:prometheus /usr/local/redis_exporter*
vim /usr/lib/systemd/system/redis_exporter.service 

# 将如下内容写入到redis_exporter.service文件中
[Unit]
Description=redis_exporter
Documentation=https://github.com/oliver006/redis_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.11.110:6379 -redis.password 0NZcyqRqLUteci7D
Restart=on-failure
[Install]
WantedBy=multi-user.target

然后执行如下命令:

# 重载配置
systemctl daemon-reload
# 设置开机启动
systemctl enable redis_exporter
启动redis_exporter
systemctl start redis_exporter
# 查看redis_exporter启动状态
systemctl status redis_exporter
ss -tnl|grep 9121
netstat -tlnp |grep redis_exporte
tcp6       0      0 :::9121                 :::*                    LISTEN      22566/redis_exporte 

至此, redis服务器端的redis_exporter已安装配置完成, 接下来配置Prometheus server, 将redis_exporter采集到的数据获取过来, 然后配置到Grafana中展示

4. 配置Prometheus server

4.1 加入redis_exporter配置

vim /usr/local/prometheus/prometheus.yml

将如下内容加入到Prometheus配置文件中

  - job_name: 'PRO_REDIS_CULSTER'                                                                                        
    static_configs:                                                                                                      
      - targets:                                                                                                         
        - redis://192.168.11.110:6379                                                                                      
    metrics_path: /scrape                                                                                                
    relabel_configs:                                                                                                     
      - source_labels: [__address__]                                                                                     
        target_label: __param_target                                                                                     
      - source_labels: [__param_target]                                                                                  
        target_label: instance                                                                                           
      - target_label: __address__                                                                                        
        replacement: 192.168.11.110:9121                                                                                   
  ## config for scraping the exporter itself                                                                             
  - job_name: 'redis_exporter'                                                                                           
    static_configs:                                                                                                      
      - targets:                                                                                                         
        - 192.168.11.110:9121

或者添加如下配置到Prometheus配置文件中

  - job_name: 'redis'
    scrape_interval: 10s
    static_configs:
      - targets:
        - ['192.168.11.110:9121']

4.2 重新加载Prometheus server配置

curl -X POST http://10.86.78.175:9090/-/reload

5. 配置Grafana展示

redis_exporter 在 Grafana 上为我们提供好了 Dashboard 模板:https://grafana.com/dashboards/763

 根据文章https://www.cnblogs.com/miaocbin/p/12009974.html中描述的方法, 导入redis看板.

原文地址:https://www.cnblogs.com/miaocbin/p/12028105.html