prometheus监控redis-cluster集群

信息

prometheus v2.1.0
redis_exporter v1.6.1
redis cluster 5.0 3 mater 3 slave

prometheus.yml

在prometheus.yml添加两个job,redis_exporter和redis_exporter_targets,redis_exporter_targets才是真正监控redis集群的。

  ## config for scraping the exporter itself
  - job_name: 'redis_exporter'
    static_configs:
      - targets:
        - prod-xxx-xxxx-redis01:9121

  ## config for the multiple Redis targets that the exporter will scrape
  - job_name: 'redis_exporter_targets'
    static_configs:
      - targets:
        - redis://172.16.0.122:7000
        - redis://172.16.0.122:7001
        - redis://172.16.0.120:7002
        - redis://172.16.0.120:7003
        - redis://172.16.0.129:7004
        - redis://172.16.0.129:7005
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: prod-xxxx-xxxx-redis01:9121

docker部署redis_exporter

REDIS_ADDR为你redis集群的其中一个节点即可,默认redis_exporter 使用9121端口!!

docker run -d -e REDIS_ADDR=172.16.0.120:7002 -e REDIS_PASSWORD=123456 --name redis_exporter --restart=always -p 9121:9121 oliver006/redis_exporter

然后重启prometheus。

grafana模板

id 763


image.png

没有数据的话到prometheus 9090端口的target看看我们新建的job target 是否 为 up 的状态。


image.png
 
 
实例配置:
cat prometheus-additional.yaml
 
 
 
  - job_name: 'redis_exporter'
    static_configs:
      - targets:
        - 10.96.48.195:9121
 
 
  - job_name: 'redis_exporter_targets'
    static_configs:
      - targets:
        - redis://cloud-redis-0.test:6379
        - redis://cloud-redis-1.test:6379
        - redis://cloud-redis-2.test:6379
        - redis://cloud-redis-3.test:6379
        - redis://cloud-redis-4.test:6379
        - redis://cloud-redis-5.test:6379
    metrics_path: /metrics
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 10.96.48.195:9121

  

cat redis-exporter-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: redis-exporter
    k8s.kuboard.cn/name: redis-exporter
  name: redis-exporter
  namespace: monitoring
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: wzhxkx
    nodePort: 31107
    port: 9121
    protocol: TCP
    targetPort: 9121
  selector:
    app: redis-exporter
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

  

cat redis-exporter-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: redis-exporter
    k8s.kuboard.cn/name: redis-exporter
  name: redis-exporter
  namespace: monitoring
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: redis-exporter
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: redis-exporter
    spec:
      containers:
      - args:
        - -redis.addr
        - redis://redis-cluster.test:6379
        image: oliver006/redis_exporter:latest
        imagePullPolicy: Always
        name: redis-exporter
        ports:
        - containerPort: 9121
          name: http
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

  

kubectl get svc -n test |grep redis
cloud-redis                          NodePort    10.96.64.81     <none>        6379:31379/TCP                                                    265d
cloud-redis-0                        NodePort    10.96.255.163   <none>        6379:31380/TCP                                                    64d
cloud-redis-1                        NodePort    10.96.181.147   <none>        6379:31381/TCP                                                    64d
cloud-redis-2                        NodePort    10.96.203.189   <none>        6379:31382/TCP                                                    64d
cloud-redis-3                        NodePort    10.96.155.12    <none>        6379:31383/TCP                                                    64d
cloud-redis-4                        NodePort    10.96.249.50    <none>        6379:31384/TCP                                                    64d
cloud-redis-5                        NodePort    10.96.179.124   <none>        6379:31385/TCP                                                    64d

  prometheus 显示的targets 

 

参考文档: 

https://www.jianshu.com/p/2ead2f0dd325

posted @   Oops!#  阅读(1338)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-08-23 MySQL rpm安装 升级
2019-08-23 ingress Whitelisting白名单机制
2017-08-23 python的变量
2017-08-23 分布式代码管理系统Git实践
2017-08-23 Redis 实践3-操作
2017-08-23 Redis 持久化和配置文件
2017-08-23 Redis 实践2-数据结构
点击右上角即可分享
微信分享提示