写在前面

之前通过Dokcer部署过使用Prometheus监控MongoDB分片集群的功能,最近项目的Redis有些问题,所以想增加使用Prometheus监控Redis集群的功能,实现集群负载状态的监控。

部署redis_exporter

首先拉取redis_exporter的镜像

docker pull oliver006/redis_exporter

然后启动redis_exporter的容器

docker run -d -e REDIS_ADDR=172.18.66.153:7000 -e REDIS_PASSWORD=password --name redis_exporter  -p 9121:9121 oliver006/redis_exporter

#REDIS_ADDR后面写的是你Redis集群的地址,其中一个就可以
#REDIS_PASSWORD后面写的是Redis的连接密码
#redis_exporter默认端口号9121,可以根据实际情况更改

容器启动后可以查看启动日志是否有异常

docker logs -f redis_exporter --tail 30

如果日志没有异常信息,容器就已经启动了,接下来我们修改Prometheus配置文件,增加Redis监控扩展

修改Prometheus配置

因为我之前部署的Prometheus已经将yaml文件挂载出来了,所以直接修改配置文件即可,可以参考我之前最开始部署Prometheus的文章

点我跳转

#在配置文件增加以下内容
  - job_name: 'redis_exporter'
    static_configs:
      - targets: ['172.18.66.178:9121']

  - job_name: 'redis_exporter_targets'
    static_configs:
      - targets:
        - redis://172.18.66.153:7000
        - redis://172.18.66.167:7001
        - redis://172.18.66.168:7002
        - redis://172.18.66.153:7003
        - redis://172.18.66.167:7004
        - redis://172.18.66.168:7005
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 172.18.66.178:9121
#redis_exporter_targets才是真正监控redis集群的,里面填写各个节点的地址

配置完成后重启Prometheus容器

docker restart prometheus

启动后查看prometheus的web界面,看看扩展是否已经启用

都启动以后我们就可以去Grafana增加模版,查看数据了

增加Grafana数据模版

进入Grafana后新增数据模版

添加模版代码:11835 ,load以后添加Prometheus为数据源

回到数据界面就可以看到数据了

如果界面没数据,可以多等一会,等待数据刷新,或者通过Grafana自带工具监控

#进入容器
docker exec -it grafana /bin/bash
#增加插件
grafana-cli plugins install redis-datasource

接着重启Grafana容器

docker restart grafana

然后登陆Grafana添加数据源

拉到最下面

添加完成后增加界面

添加完成后就可以看到数据了