Prometheus监控Redis

分析:

1、因为Redis工作的方式是单进程多路复用,只在一台物理服务器上部署一个节点并不能发挥多核CPU的性能,所以一般我们会在单机上启动多个Redis实例来提高利用率。而且我们一般会部署集群版或者哨兵来提高稳定性和负载能力。

2、但这种方式会导致给每个实例部署一个exporter监控相对来说比较麻烦,所以我们选择使用一个exporter去监控多个Redis实例的办法。

3、单exporter监控redis有两种方式一种是静态方式把实例信息写在配置文件上(这种我们这里暂时不介绍),第二种是prometheus通过挂载配置文件的方式随时修改不用重启prometheus服务我们这里介绍这种。

 

下面我们开始正式的部署:

部署redis、prometheus这里我们就不介绍了。

1、部署redis_exporter

git clone https://github.com/oliver006/redis_exporter.git
cd redis_exporter
go build .
./redis_exporter --version

2、编写实例的yml文件和带密码的json文件

# cat redis_password_file.json
{
  "redis://172.16.149.217:6379": "123456",
  "redis://172.16.149.216:6379": "654321"
}
# cat redis_targets.yml 
- targets: [172.16.149.217:6379]
  labels:
    instance_id: test217
    role: master
    alias: "test217"
    load_balancer_addr: "172.16.149.217:6379"


- targets: [172.16.149.216:6379]
  labels:
    instance_id: test216
    role: master
    alias: "test216"
    load_balancer_addr: "172.16.149.216:6379"

3、添加prometheus监控项添加一个job

      - job_name: 'redis_exporter'
        file_sd_configs:
          - files:
            - /prometheus/redis_targets.yml
        metrics_path: /scrape
        relabel_configs:
          - source_labels: [__address__]
            target_label: __param_target
          - source_labels: [__param_target]
            target_label: instance
          - target_label: __address__
            replacement: 172.16.149.216:9103
          - source_labels: [instance_id]
            target_label: env
            regex: '([a-zA-Z]+)_\d+'

添加完重启prometheus

打开页面查看

 

 

在grafara中添加模板763

 

posted @ 2022-05-07 16:36  Throb_JL  阅读(1484)  评论(0编辑  收藏  举报