在集群外部运行redis-exporter

  1. tar -xf redis_exporter-v0.34.1.linux-amd64.tar.gz
  2. mv redis_exporter /usr/bin
  3. nohup redis_exporter -redis-only-metrics -redis.addr 10.111.12.73:10700,10.111.12.73:10800,10.111.12.73:10900,10.111.12.74:10700,10.111.12.74:10800,10.111.12.74:10900 &

集群内部无法添加 -redis.addr参数,原因已找到
arg 参数需要使用“=”连接应用参数,不能使用空格

创建集群外部redis的endpoints和svc

  1. vim prometheus-redis-exporter-svc.yaml
  2. ---
  3. apiVersion: v1
  4. kind: Service
  5. metadata:
  6. name: redis-exporter
  7. namespace: kube-system
  8. labels:
  9. k8s-app: redis
  10. spec:
  11. type: ClusterIP
  12. clusterIP: None
  13. ports:
  14. - protocol: TCP
  15. port: 9121
  16. name: metrics
  17. ---
  18. apiVersion: v1
  19. kind: Endpoints
  20. metadata:
  21. name: redis-exporter
  22. namespace: kube-system
  23. labels:
  24. k8s-app: redis
  25. subsets:
  26. - addresses:
  27. - ip: 10.111.12.73
  28. nodeName: redis-exporter
  29. ports:
  30. - name: metrics
  31. port: 9121
  32. protocol: TCP

创建serviceMonitor

  1. vim prometheus-redis-exporter-serviceMonitor.yaml
  2. apiVersion: monitoring.coreos.com/v1
  3. kind: ServiceMonitor
  4. metadata:
  5. name: redis-exporter
  6. namespace: monitoring
  7. labels:
  8. k8s-app: redis
  9. spec:
  10. jobLabel: k8s-app
  11. endpoints:
  12. - port: metrics
  13. interval: 30s
  14. scheme: http
  15. selector:
  16. matchLabels:
  17. k8s-app: redis
  18. namespaceSelector:
  19. matchNames:
  20. - kube-system

在集群内部运行redis-exporter

deployment文件

  1. vim prometheus-redis-exporter-deployment.yaml
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. namespace: monitoring
  6. name: redis-exporter
  7. labels:
  8. k8s-app: redis
  9. spec:
  10. replicas: 1
  11. selector:
  12. matchLabels:
  13. k8s-app: redis
  14. template:
  15. metadata:
  16. labels:
  17. k8s-app: redis
  18. spec:
  19. terminationGracePeriodSeconds: 10
  20. containers:
  21. - name: redis-exporter
  22. image: 10.111.9.72/prometheus/redis_exporter:v0.34.1
  23. args:
  24. - -redis-only-metrics
  25. - -redis.addr=10.111.12.73:10700,10.111.12.73:10800,10.111.12.73:10900,10.111.12.74:10700,10.111.12.74:10800,10.111.12.74:10900
  26. ports:
  27. - containerPort: 9121
  28. name: redis-exporter
  29. volumeMounts:
  30. - mountPath: /etc/localtime
  31. name: localtime
  32. volumes:
  33. - hostPath:
  34. path: /etc/localtime
  35. type: File
  36. name: localtime
  37. nodeSelector:
  38. decided: system
  39. tolerations:
  40. - key: decided
  41. operator: Equal
  42. value: system
  43. effect: NoSchedule

redis-svc文件

  1. vim prometheus-redis-exporter-svc.yaml
  2. ---
  3. apiVersion: v1
  4. kind: Service
  5. metadata:
  6. name: redis-exporter
  7. namespace: monitoring
  8. labels:
  9. k8s-app: redis
  10. spec:
  11. selector:
  12. k8s-app: redis
  13. type: ClusterIP
  14. clusterIP: None
  15. ports:
  16. - protocol: TCP
  17. port: 9121
  18. name: metrics

redis serviceMonitor文件

  1. vim prometheus-redis-exporter-serviceMonitor.yaml
  2. apiVersion: monitoring.coreos.com/v1
  3. kind: ServiceMonitor
  4. metadata:
  5. name: redis-exporter
  6. namespace: monitoring
  7. labels:
  8. k8s-app: redis
  9. spec:
  10. jobLabel: k8s-app
  11. endpoints:
  12. - port: metrics
  13. interval: 30s
  14. scheme: http
  15. selector:
  16. matchLabels:
  17. k8s-app: redis
  18. namespaceSelector:
  19. matchNames:
  20. - monitoring

grafana json文件见附件

文档更新时间: 2020-07-28 15:46   作者:张尚