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



我按照以下步骤监视卡夫卡与普罗米修斯和格拉法纳。

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

最新更新