我按照以下步骤监视卡夫卡与普罗米修斯和格拉法纳。
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 也在运行
如果你不介意打开 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 &
使用mvn package
从源代码构建jar-with-dependencies
。
在 bash 中设置环境变量时KAFKA_OPTS我遇到了同样的问题。最糟糕的情况是将环境变量添加到 ~/.profile 文件时。这种方法的问题在于KAFKA_OPTS用于 kafka-server-start.sh 和 zookeeper-server-start.sh 因此当您启动 Zookeeper 时,Zookeeper 将使用端口 7071 导出指标。然后,当您运行 Kafka 时,您将收到"7071 端口正在使用错误"。
我通过在 systemd 服务文件中设置环境来解决问题。我在上周的文章中描述了它:
[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]
...