10

Prometheus学习笔记–Prometheus监控之kafka集群 |坐而言不如起而行! 二丫讲梵

 3 years ago
source link: http://www.eryajf.net/4736.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
本文预计阅读时间 6 分钟

prometheus监控kafka常见的有两种开源方案,一种是传统的部署exporter的方式,一种是通过jmx配置监控,本文将采用第二种方式进行配置。

  • 项目地址:
    • kafka_exporter:https://github.com/danielqsj/kafka_exporter
    • jmx_exporter:https://github.com/prometheus/jmx_exporter

1、安装部署

现有kafka三节点的集群,环境大概如下:

主机 组件 10.3.0.41–node1 zookeeper,kafka 10.3.0.42–node2 zookeeper,kafka 10.3.20.4–node3 zookeeper,kafka

接着分别在如上三台主机上进行如下配置:

  1. wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-2_0_0.yml
  2. wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar

分别创建统一的配置放置目录:

  1. mkdir -p /usr/local/kafka/jmx/
  2. mv kafka-2_0_0.yml /usr/local/kafka/jmx/kafka-2_0_0.yml
  3. mv jmx_prometheus_javaagent-0.12.0.jar /usr/local/kafka/jmx/jmx_prometheus_javaagent-0.12.0.jar

然后在启动的配置文件中添加如下两行:

  1. $ cat bin/kafka-server-start.sh
  2. if [ $# -lt 1 ];
  3. then
  4. echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
  5. exit 1
  6. fi
  7. base_dir=$(dirname $0)
  8. if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
  9. export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
  10. fi
  11. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
  12. export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
  13. fi
  14. EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}
  15. #如下两行内容
  16. export JMX_PORT="9999"
  17. export KAFKA_OPTS="-javaagent:/usr/local/kafka/jmx/jmx_prometheus_javaagent-0.12.0.jar=9991:/usr/local/kafka/jmx/kafka-2_0_0.yml"
  18. COMMAND=$1
  19. case $COMMAND in
  20. -daemon)
  21. EXTRA_ARGS="-daemon "$EXTRA_ARGS
  22. shift
  23. ;;
  24. *)
  25. ;;
  26. esac
  27. exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"

然后重启kafka。

2,配置 prometheus.yml 添加监控目标

  1. $ vim /usr/local/prometheus/prometheus.yml
  2. - job_name: 'kafka-cluster'
  3. scrape_interval: 5s
  4. static_configs:
  5. - targets: ['10.3.0.41:9991']
  6. - targets: ['10.3.0.42:9991']
  7. - targets: ['10.3.20.4:9991']

重启服务。

  1. $ systemctl restart prometheus

或者通过命令热加载:

  1. curl -XPOST localhost:9090/-/reload

5,配置 Grafana 的模板

展示模板通过ID进行导入,可用ID有:758910466,11963等等

image-20191113163958873


weinxin


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK