跳转至

2.4.2.2.1 以 javaagent 的方式启动

修改 kafka 的 kafka-server-start.sh 文件,增加 jmx 端口:

#...

# jmx 端口
export JMX_PORT="9999"

#...

修改 kafka 的 kafka-run-class.sh 文件,增加 javaagent 配置:

# ...

if [[ $JMX_PORT && -f /usr/local/jmx_prometheus_javaagent-0.17.1.jar && -f /etc/default/jmx_prometheus_javaagent.yaml ]]; then
  JMX_EXPORTER=-javaagent:/usr/local/jmx_prometheus_javaagent-0.17.1.jar=5556:/etc/default/jmx_prometheus_javaagent.yaml
else
  JMX_EXPORTER=""
fi

# ...

# Launch mode
if [ "x$DAEMON_MODE" = "xtrue" ]; then
  nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS $JMX_EXPORTER -cp $CLASSPATH $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null &
else
  exec  $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS $JMX_EXPORTER -cp $CLASSPATH $KAFKA_OPTS "$@"
fi

增加 javaagent 配置后可以从 5556 端口获取 jmx metrics:

$ curl http://localhost:5556/metrics

修改 prometheus.yml,增加 job:

scrape_configs:
  - job_name: 'kafka1'
    static_configs:
    - targets: ['10.9.164.4:5556']
  - job_name: 'kafka2'
    static_configs:
    - targets: ['10.9.140.204:5556']
  - job_name: 'kafka3'
    static_configs:
    - targets: ['10.9.145.115:5556']