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看板.