JMX exporter采集kafka监控指标


配置kafka

       JMX PORT,修改bin/kafka-server-start.sh,添加一行export JMX_PORT="9999",指定9999端口暴露出来供采集。像配置kafka-manager采集,也是要做这个事情的。

下载jmx_exporter

      链接 https://github.com/prometheus/jmx_exporter, 将文件放在kafka目录下  比如 /kafka_2.11-1.0.0/jmx_prometheus_javaagent-0.3.1.jar


创建文件kafka-agent.yaml

      放在目录 /kafka_2.11-1.0.0, 里面的内容就是你配置的kafka metrics

hostPort: 127.0.0.1:9999
lowercaseOutputName: true
whitelistObjectNames: 
  - "kafka.controller:type=KafkaController,name=OfflinePartitionsCount"
  - "kafka.controller:type=KafkaController,name=ActiveControllerCount"
  - "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec"
  - "kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec"
  - "kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions"
  - "kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica"

修改bin/kafka-server-start.sh


       添加 export KAFKA_OPTS="-javaagent:/绝对路径/kafka_2.11-1.0.0/jmx_prometheus_javaagent-0.3.1.jar=9990:/绝对路径 
/kafka_2.11-1.0.0/kafka-agent.yaml"

       jmx_prometheus_javaagent-0.3.1.jar=9990:, 9990为jmx_exporter提供数据的端口,之后我们访问http://xxx.xxx.xxx:9990/metrics就能获得需要的metrics数据:

         如果使用prometheus来抓取数据,只要增加prometheus抓取目标源如下

- job_name: kafka-jmx-monitor
        static_configs:
          - targets:
            - localhost-XX:9990

       最后,我是在grafana上配置了prometheus面板进行可视化显示和告警设置。

你可能感兴趣的:(Kafka)