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']