用普罗米修斯和格拉法纳监视卡夫卡

时间:2017-10-11 09:48:52

标签: apache-kafka grafana prometheus

我已按照以下步骤使用Prometheus和Grafana监控kafka。

jmx端口无法打开

wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/0.10.1.0/kafka_2.11-0.10.1.0.tgz
tar -xzf kafka_*.tgz
cd kafka_*

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

./bin/zookeeper-server-start.sh config/zookeeper.properties &
KAFKA_OPTS="$KAFKA_OPTS -javaagent:$PWD/jmx_prometheus_javaagent-0.6.jar=7071:$PWD/kafka-0-8-2.yml" 
 ./bin/kafka-server-start.sh config/server.properties &

然后我在终端

中使用curl http://localhost:7071/metrics进行了检查

报告curl: (7) Failed connect to localhost:7071; Connection refused

目前我已将所有端口打开到服务器中的网络。

我正在检查netstat -tupln | grep LISTEN 端口号7071未在输出中列出

以下是kafka目录的内容:

drwxr-xr-x. 3 root root    4096 Aug 23 12:22 bin
drwxr-xr-x. 2 root root    4096 Oct 15  2016 config
-rw-r--r--. 1 root root   20356 Aug 21 10:50 hs_err_pid1496.log
-rw-r--r--. 1 root root   19432 Aug 21 10:55 hs_err_pid2447.log
-rw-r--r--. 1 root root 1225418 Feb  5  2016 jmx_prometheus_javaagent-0.6.jar
-rw-r--r--. 1 root root    2824 Aug 21 10:48 kafka-0-8-2.yml
drwxr-xr-x. 2 root root    4096 Aug 21 10:48 libs
-rw-r--r--. 1 root root   28824 Oct  5  2016 LICENSE
drwxr-xr-x. 2 root root    4096 Oct 11 15:05 logs
-rw-------. 1 root root    8453 Aug 23 12:08 nohup.out
-rw-r--r--. 1 root root     336 Oct  5  2016 NOTICE
drwxr-xr-x. 2 root root      46 Oct 15  2016 site-docs

kafka在2181端口运行,zookeeper也在运行

2 个答案:

答案 0 :(得分:0)

如果你不介意打开jmx端口,你也可以这样做:

export JMX_PORT=9999
export KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.rmi.port=9999'
./bin/kafka-server-start.sh config/server.properties &
java -jar jmx_prometheus_httpserver-0.10-jar-with-dependencies.jar 9300 kafka-0-8-2.yaml &

您使用jar-with-dependenciessource构建的mvn package

答案 1 :(得分:0)

在bash中设置KAFKA_OPTS环境变量时,我遇到了同样的问题。最糟糕的情况是将环境变量添加到〜/ .profile文件中。这种方法的问题在于,KAFKA-server-start.sh和zookeeper-server-start.sh都使用了KAFKA_OPTS,因此,当您启动Zookeeper时,Zookeeper将使用端口7071来导出指标。然后,当您运行Kafka时,您将收到“ 7071端口使用中错误”。

我通过在systemd服务文件中设置环境解决了这个问题。我上周在my article上进行了描述:

[Unit]
...
[Service]
...
Restart=no
 Environment=KAFKA_OPTS=-javaagent:/home/morteza/myworks/jmx_prometheus_javaagent-0.9.jar=7071:/home/morteza/myworks/kafka-2_0_0.yml
[Install]
...