prometheus整合jmx_exporter 使用jmx_exporter监控Kafka

宁睿  论坛元老 | 2025-4-14 14:19:41 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1949|帖子 1949|积分 5857

 docker-compose摆设kafka集群;单节点单zk-CSDN博客  
  
  
  springboot整合kafka;docker摆设kafka-CSDN博客

 
  
  kafka使用SSL加密和认证--todo_ssl.truststore.location-CSDN博客
  
  1. version: '3.8'
  2. services:
  3.   zookeeper1:
  4.     image: zookeeper:3.9.1
  5.     container_name: zookeeper1-cluster
  6.     hostname: zookeeper-cluster
  7.     ports:
  8.       - "2185:2181"
  9.     environment:
  10.       ZOOKEEPER_CLIENT_PORT: 2181
  11.       ZOOKEEPER_TICK_TIME: 2000
  12.       ZOOKEEPER_INIT_LIMIT: 10
  13.       ZOOKEEPER_SYNC_LIMIT: 5
  14.     volumes:
  15.       - ./zookeeper-data:/data
  16.       - ./zookeeper-datalog:/datalog
  17.     networks:
  18.       - kafka-cluster-network
  19.   kafka1:
  20.     image: bitnami/kafka:3.8
  21.     container_name: kafka1-cluster
  22.     depends_on:
  23.       - zookeeper1
  24.     ports:
  25.       - "9099:9092" # Kafka 客户端连接端口
  26.       - "9101:9101" # Prometheus 抓取指标的端口
  27.     environment:
  28.       KAFKA_BROKER_ID: 1
  29.       KAFKA_ZOOKEEPER_CONNECT: zookeeper-cluster:2181
  30.       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.118.20:9099
  31.       KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
  32.       KAFKA_CFG_MESSAGE_MAX_BYTES: 2097152
  33.       KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 3145728
  34.       KAFKA_CFG_FETCH_MAX_BYTES: 5242880
  35.       KAFKA_OPTS: "-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar=9101:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml"
  36.     volumes:
  37.       - ./kafka1-data:/bitnami/kafka
  38.       - ./jmx_prometheus_javaagent-0.20.0.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar
  39.       - ./kafka-jmx-exporter-config.yaml:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml
  40.     networks:
  41.       - kafka-cluster-network
  42.   kafka2:
  43.     image: bitnami/kafka:3.8
  44.     container_name: kafka2-cluster
  45.     depends_on:
  46.       - zookeeper1
  47.     ports:
  48.       - "9096:9092" # Kafka 客户端连接端口
  49.       - "9102:9102" # Prometheus 抓取指标的端口
  50.     environment:
  51.       KAFKA_BROKER_ID: 2
  52.       KAFKA_ZOOKEEPER_CONNECT: zookeeper-cluster:2181
  53.       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.118.20:9096
  54.       KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
  55.       KAFKA_CFG_MESSAGE_MAX_BYTES: 2097152
  56.       KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 3145728
  57.       KAFKA_CFG_FETCH_MAX_BYTES: 5242880
  58.       KAFKA_OPTS: "-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar=9102:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml"
  59.     volumes:
  60.       - ./kafka2-data:/bitnami/kafka
  61.       - ./jmx_prometheus_javaagent-0.20.0.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar
  62.       - ./kafka-jmx-exporter-config.yaml:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml
  63.     networks:
  64.       - kafka-cluster-network
  65.   kafka3:
  66.     image: bitnami/kafka:3.8
  67.     container_name: kafka3-cluster
  68.     depends_on:
  69.       - zookeeper1
  70.     ports:
  71.       - "9097:9092" # Kafka 客户端连接端口
  72.       - "9103:9103" # Prometheus 抓取指标的端口
  73.     environment:
  74.       KAFKA_BROKER_ID: 3
  75.       KAFKA_ZOOKEEPER_CONNECT: zookeeper-cluster:2181
  76.       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.118.20:9097
  77.       KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
  78.       KAFKA_CFG_MESSAGE_MAX_BYTES: 2097152
  79.       KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 3145728
  80.       KAFKA_CFG_FETCH_MAX_BYTES: 5242880
  81.       KAFKA_OPTS: "-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar=9103:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml"
  82.     volumes:
  83.       - ./kafka3-data:/bitnami/kafka
  84.       - ./jmx_prometheus_javaagent-0.20.0.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar
  85.       - ./kafka-jmx-exporter-config.yaml:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml
  86.     networks:
  87.       - kafka-cluster-network
  88.   kafka-ui:
  89.     image: provectuslabs/kafka-ui:v0.7.2
  90.     container_name: kafka-ui-cluster
  91.     hostname: kafka-ui-cluster
  92.     ports:
  93.       - "9098:8080"
  94.     depends_on:
  95.       - kafka1
  96.       - kafka2
  97.       - kafka3
  98.     environment:
  99.       KAFKA_CLUSTERS_0_NAME: kafka-cluster
  100.       KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: 192.168.118.20:9096,192.168.118.20:9097,192.168.118.20:9099
  101.       KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper-cluster:2181
  102.     networks:
  103.       - kafka-cluster-network
  104. networks:
  105.   kafka-cluster-network:
  106.     driver: bridge
复制代码
  下载    
jmx_prometheus_javaagent-0.20.0.jar
Central Repository: io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/


 
  或者https://github.com/prometheus/jmx_exporter/releases/tag/0.20.0
  

    下载 https://github.com/prometheus/jmx_exporter/tree/main/exampleskafka-jmx-exporter-config.yaml
  
https://github.com/prometheus/jmx_exporter/tree/main/examples
    1、在启动kafka时配置代理
  2、同时文件也挂载进去
 
  1. KAFKA_OPTS: "-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar=9102:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml"
复制代码
  1.     volumes:
  2.       - ./kafka2-data:/bitnami/kafka
  3.       - ./jmx_prometheus_javaagent-0.20.0.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.20.0.jar
  4.       - ./kafka-jmx-exporter-config.yaml:/opt/jmx_exporter/kafka-jmx-exporter-config.yaml
复制代码
  1. - "9103:9103" # Prometheus 抓取指标的端口
复制代码
启动服务后  查抄一下  是否配置成功 
http://192.168.118.20:9101/metrics

  
 摆设prometheus 和 grafana
  
  1. version: '3.8'
  2. services:
  3.   prometheus:
  4.     image: bitnami/prometheus:3.0.0
  5.     container_name: prometheus
  6.     hostname: prometheus
  7.     ports:
  8.       - "9090:9090" # Prometheus Web UI 端口
  9.     volumes:
  10.       - ./prometheus.yml:/etc/prometheus/prometheus.yml
  11.       - ./prometheus-data:/prometheus
  12.     command:
  13.       - '--config.file=/etc/prometheus/prometheus.yml'
  14.       - '--web.enable-lifecycle'
  15.       - '--storage.tsdb.retention.time=90d'
  16.       - "--storage.tsdb.path=/prometheus"
  17.       - "--web.enable-admin-api"
  18.     restart: always
  19.   grafana:
  20.     image: grafana/grafana:11.3.3
  21.     container_name: grafana
  22.     hostname: grafana
  23.     ports:
  24.       - "3000:3000" # Grafana Web UI 端口
  25.     environment:
  26.       GF_SECURITY_ADMIN_PASSWORD: admin # 设置 Grafana 的管理员密码
  27.     volumes:
  28.       - ./grafana-storage:/var/lib/grafana
  29.     restart: always
复制代码
  1. prometheus.yml  如下配置
  2. global:
  3.   scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  4.   evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  5.   # scrape_timeout is set to the global default (10s).
  6. # Alertmanager configuration
  7. alerting:
  8.   alertmanagers:
  9.     - static_configs:
  10.         - targets:
  11.           # - alertmanager:9093
  12. # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  13. rule_files:
  14.   # - "first_rules.yml"
  15.   # - "second_rules.yml"
  16. # A scrape configuration containing exactly one endpoint to scrape:
  17. # Here it's Prometheus itself.
  18. scrape_configs:
  19.   - job_name: 'kafka'
  20.     static_configs:
  21.       - targets:
  22.           - '192.168.118.20:9101' # 对应 kafka1 的 JMX Exporter 端口
  23.           - '192.168.118.20:9102' # 对应 kafka2 的 JMX Exporter 端口
  24.           - '192.168.118.20:9103' # 对应 kafka3 的 JMX Exporter 端口
  25.   - job_name: "node"
  26.     static_configs:
  27.       - targets: ["localhost:9100"]
复制代码
grafana:    用户名和密码  都是  admin admin
  http://192.168.xxx.xxx:3000/
  

  


    https://grafana.com/grafana/dashboards/11962-kafka-metrics/
  https://grafana.com/grafana/dashboards/11962-kafka-metrics/
  

  
  
   https://grafana.com/grafana/dashboards/10973-kafka-dashboard333/
  

  
   Kafka Dashboard | Grafana Labs 
该模版需要更新yaml

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表