-
创建者:
虚拟的现实,上次更新时间:9月 24, 2025 需要 2 分钟阅读时间
1. 简介
因生产存在一套 zookeeper 需要进行监控,但因为版本只有3.4.11,秉承没挂我就躺平不升级原则就不能碰。又因查看了 zookeeper 文档发送从3.6.0版本才开始有原生支持开放指标接口供 Prometheus采 集。地址:https://zookeeper.apache.org/doc/r3.6.0/zookeeperMonitor.html
那么生产集群原则上是不支持上面的配置滴,那么就只能使用 zookeeper-exporter 进行采集
2. zookeeper-exporter 部署监控
开源项目:https://github.com/dabealu/zookeeper-exporter
镜像地址:https://docker.aityp.com/image/docker.io/dabealu/zookeeper-exporter:v0.1.13
2.1. Deployment
apiVersion: apps/v1 kind: Deployment metadata: name: external-zookeeper-dyck-exporter namespace: monitoring labels: app: external-zookeeper-dyck-exporter type: zookeeper-exporter system: dyck spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 2 selector: matchLabels: app: external-zookeeper-dyck-exporter strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: external-zookeeper-dyck-exporter type: zookeeper-exporter system: dyck spec: containers: - image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/dabealu/zookeeper-exporter:v0.1.13 imagePullPolicy: IfNotPresent name: zookeeper-exporter args: - -zk-hosts - 10.196.68.43:2181,10.196.68.44:2181,10.196.68.45:2181 - -location - /metrics env: - name: TZ value: Asia/Shanghai ports: - containerPort: 9141 protocol: TCP resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 64Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File
2.2. Service
apiVersion: v1 kind: Service metadata: name: external-zookeeper-dyck-exporter labels: app: zookeeper type: zookeeper-exporter system: dyck namespace: monitoring spec: type: ClusterIP ports: - name: http-metrics port: 9141 protocol: TCP targetPort: 9141 selector: app: external-zookeeper-dyck-exporter type: zookeeper-exporter system: dyck
2.3. ServiceMonitor
--- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: external-zookeeper-exporter labels: app: zookeeper-exporter release: prometheus-community namespace: monitoring spec: endpoints: - port: http-metrics interval: 30s path: /metrics relabelings: - sourceLabels: [ __meta_kubernetes_service_label_app, __meta_kubernetes_service_label_system ] targetLabel: job separator: "-" # 用连字符连接两个标签值 action: replace metricRelabelings: - sourceLabels: [ zk_host ] targetLabel: instance action: replace regex: "(.+):.+" replacement: "$1" selector: matchLabels: app: zookeeper type: zookeeper-exporter namespaceSelector: matchNames: - monitoring
这边设置 metricRelabelings 是因为一个 Pod 监控了多个 zk_host 服务,需要进行区分替换 instance,不然 grafana dashboard 界面不好看了。
3. grafana dashboard 配置
grafana id: 11442,地址:https://grafana.com/grafana/dashboards/11442-zookeeper-exporter-dabealu/
- 无标签
添加评论