java - 配置 JMX 导出器时 Kafka 无法启动
问题描述
我正在尝试为在计算实例(CentOS 7)上运行的 Kafka 设置 JMX 导出器。
我从以下位置下载了 JMX Exporter jar 和 Kafka yaml。
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-0-8-2.yml
我在“/etc/systemd/system/kafka.service”文件中设置了以下环境变量,如下所示:
Environment="KAFKA_OPTS=$KAFKA_OPTS -javaagent:/home/kafka_user/jmx_kafka_exporter/jmx_prometheus_javaagent-0.12.0.jar=7070:/home/kafka_user/jmx_kafka_exporter/kafka-0-8-2.yml"
执行重新加载并重新启动后;卡夫卡无法启动。
非常感谢为托管在计算实例上的 Kafka 运行 JMX 导出器的任何建议。
先感谢您,
sudo systemctl daemon-reload
sudo systemctl restart kafka
sudo systemctl status kafka
● kafka.service - Kafka Daemon
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Thu 2020-03-26 06:05:52 UTC; 935ms ago
Process: 9842 ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties (code=exited, status=1/FAILURE)
Main PID: 9842 (code=exited, status=1/FAILURE)
Mar 26 06:05:51 kafka1.com systemd[1]: Unit kafka.service entered failed state.
Mar 26 06:05:51 kafka1.com systemd[1]: kafka.service failed.
Mar 26 06:05:52 kafka1.com systemd[1]: kafka.service holdoff time over, scheduling restart.
Mar 26 06:05:52 kafka1.com systemd[1]: Stopped Kafka Daemon.
Mar 26 06:05:52 kafka1.com systemd[1]: start request repeated too quickly for kafka.service
Mar 26 06:05:52 kafka1.com systemd[1]: Failed to start Kafka Daemon.
Mar 26 06:05:52 kafka1.com systemd[1]: Unit kafka.service entered failed state.
Mar 26 06:05:52 kafka1.com systemd[1]: kafka.service failed.
猫 /etc/systemd/system/kafka.service
[Unit]
Description=Kafka Daemon
Requires=network.target
After=network.target
[Service]
LimitNOFILE=65536
Environment="JMX_PORT=5555"
Environment="KAFKA_OPTS=-javaagent:/home/kafka_user/jmx_kafka_exporter/jmx_prometheus_javaagent-0.12.0.jar=7070:/home/kafka_user/jmx_kafka_exporter/kafka-2_0_0.yml"
Type=simple
User=kafka
Group=kafka
UMask=0027
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure
[Install]
WantedBy=multi-user.target
解决方案
在我将“jmx_kafka_exporter”的路径从“/home/kafka_user/jmx_kafka_exporter/”更新为“/etc/systemd/system/kafka.service”文件中的“/opt/jmx_kafka_exporter/”之后。
重新加载和重新启动 Kafka 工作顺利,我在 7070 端口看到 jmx_kafka_exporter 拍摄日志
netstat -ntlp | grep 70
tcp 0 kafka1:7070 0.0.0.0:* LISTEN 3536/java
tcp6 0 0 :::111 :::* LISTEN 1708/rpcbind
curl http://kafka1:7070/metrics
# HELP jvm_info JVM version info
# TYPE jvm_info gauge
jvm_info{version="1.8.0xx",vendor="XYZ",runtime="Java(TM) SE Runtime Environment",} 1.0
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 5.55
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
......
jvm_buffer_pool_used_buffers{pool="direct",} 4.0
jvm_buffer_pool_used_buffers{pool="mapped",} 0.0
# HELP jmx_config_reload_success_total Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_total counter
jmx_config_reload_success_total 0.0
推荐阅读
- php - 在 Woocommerce 中,如何找到某个产品交叉销售的所有产品?
- vue.js - 我应该将我所有的 Vue 方法和数据存储在一个文件中吗?
- swift - self.tabBarController?.selectedIndex 并在另一个视图控制器中执行功能
- css - 减少移动设备上按钮和图像之间的间距
- node.js - 使用依赖输出顺序执行 2 个异步函数
- java - 如何更改 ListView 项的文本背景
- android - Android中删除设置时间选项中的TimePicker
- reactjs - 如何动态设置图像或使用默认值
- reactjs - 反应道具消失
- java - 如何检查任何应用程序是否在 Android 设备上播放任何类型的媒体?