首页 > 数据库 >prometheus监控redis-cluster集群

prometheus监控redis-cluster集群

时间:2022-08-23 18:34:48浏览次数:98  
标签:__ exporter name 6379 redis cluster prometheus cloud

信息

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

标签:__,exporter,name,6379,redis,cluster,prometheus,cloud
From: https://www.cnblogs.com/weifeng1463/p/16617374.html

相关文章

  • redis网页访问
         目前有许多应用都是布署在云端服务器上,阿里云,华为云,电信云等,mysql,redis等数据库服务器通常是没有外网的,这是基于安全考虑,也是为了节约成本,因为服务器的流量......
  • redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to "x
    Java连接Redis所遇问题1.检查Linux是否关闭防火墙,或对外开放redis默认端口6379关闭防火墙。systemctlstopfirewalld对外开放端口。firewall-cmd--zone=publi......
  • redis笔记
    redis笔记一、Redis的安装1.下载安装包1.1进入官网下载安装包Redis官方网站Redis中文官方网站http://redis.iohttp://redis.cn/1.2.打开WinSCP将安装文......
  • Mysql和Redis数据如何保持一致
    先阐明一下Mysql和Redis的关系:Mysql是数据库,用来持久化数据,一定程度上保证数据的可靠性;Redis是用来当缓存,用来提升数据访问的性能。关于如何保证Mysql和Redis中的数据一致......
  • 延时任务-基于redis zset的完整实现
    所谓的延时任务给大家举个例子:你买了一张火车票,必须在30分钟之内付款,否则该订单被自动取消。订单30分钟不付款自动取消,这个任务就是一个延时任务。我之前已经写过2篇关......
  • Docker之Redis保姆级别安装
    Docker之Redis保姆级别安装:如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样)学英语网站项目:自己先保证Redis、Nginx、RabbitMQ、E......
  • redis持久化
    redis如何实现数据不丢失:为了保证Redis数据不丢失,要把数据从内存存储到磁盘上,这就是Redis的数据持久化。Redis数据持久化有三种方式:1)AOF日志(AppendOnlyFile,文件追加方......
  • 关于Redis在windows上运行及fork函数问题
    Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间......
  • 数据库 - db和redis数据一致性问题
    数据库-db和redis数据一致性问题直接说解决办法:查询数据操作:查询缓存,如果命中,直接返回;如果没有命中,查询数据库,再写入缓存更新数据操作:直接更新db数据库然后......
  • Redis基础练习题-错题集(一)
    (1)下面关于Redis中set数据类型与list数据类型的比较,正确的说法是()选项A. set中的数据具有唯一性,list中的数据不具有唯一性B. set中的数据有序,list中的数据无序......