使用 JMX-exporter-centos 7 配置 kafka

Posted

技术标签:

【中文标题】使用 JMX-exporter-centos 7 配置 kafka【英文标题】:configuring kafka with JMX-exporter- centos 7 【发布时间】:2020-01-21 20:01:45 【问题描述】:

我想启用 kafka 监控,我从单节点部署开始作为测试。我正在按照https://alex.dzyoba.com/blog/jmx-exporter/的步骤进行操作

我尝试了以下步骤;检查 jmx-exporter HTTP 服务器的最后一个命令报告空白。我相信这就是为什么我没有看到来自 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   
export KAFKA_OPTS='-javaagent:/opt/jmx-exporter/jmx_prometheus_javaagent-0.6.jar=7071:/etc/jmx-exporter/kafka-0-8-2.yml' 
/opt/kafka_2.11-0.10.1.0/bin/kafka-server-start.sh /opt/kafka_2.11-0.10.1.0/conf/server.properties
netstat -plntu | grep 7071

kafka broker 登录控制台没有任何错误信息。

我在容器中运行 Prometheus,http://IP:9090/metrics 显示了一堆指标。 当我搜索“kafka”时,它返回如下

# TYPE net_conntrack_dialer_conn_attempted_total counter
net_conntrack_dialer_conn_attempted_totaldialer_name="kafka" 79
# TYPE net_conntrack_dialer_conn_closed_total counter
net_conntrack_dialer_conn_closed_totaldialer_name="kafka" 0
net_conntrack_dialer_conn_established_totaldialer_name="kafka" 0
# TYPE net_conntrack_dialer_conn_failed_total counter
net_conntrack_dialer_conn_failed_totaldialer_name="kafka",reason="refused" 79
net_conntrack_dialer_conn_failed_totaldialer_name="kafka",reason="resolution" 0
net_conntrack_dialer_conn_failed_totaldialer_name="kafka",reason="timeout" 0
net_conntrack_dialer_conn_failed_totaldialer_name="kafka",reason="unknown" 79

# TYPE prometheus_sd_discovered_targets gauge
prometheus_sd_discovered_targetsconfig="kafka",name="scrape" 1
# HELP prometheus_target_sync_length_seconds Actual interval to sync the scrape pool.
# TYPE prometheus_target_sync_length_seconds summary
prometheus_target_sync_length_secondsscrape_job="kafka",quantile="0.01" NaN
prometheus_target_sync_length_secondsscrape_job="kafka",quantile="0.05" NaN
prometheus_target_sync_length_secondsscrape_job="kafka",quantile="0.5" NaN
prometheus_target_sync_length_secondsscrape_job="kafka",quantile="0.9" NaN
prometheus_target_sync_length_secondsscrape_job="kafka",quantile="0.99" NaN
prometheus_target_sync_length_seconds_sumscrape_job="kafka" 0.000198245
prometheus_target_sync_length_seconds_countscrape_job="kafka" 1

我的猜测是 prometheous 在端口 7071 上没有得到任何指标;这与之前发现 JMX 服务器在端口 7071 上没有响应的结果一致。

您能帮我使用 JMX-exporter 和 Prometheus 启用 kafka 监控吗?

【问题讨论】:

您下载了kafka-0-8-2.yml,但您的命令使用的是/etc/jmx-exporter/kafka.yml。您是否移动/重命名了该文件? 它们是相同的文件;我复制它们后重命名;我最初收到指示丢失文件的错误,但重命名后,这应该不是问题。我会更新问题以避免混淆谢谢 【参考方案1】:

我让 Prometheus 在容器中运行

您需要配置 Prometheus 以抓取您的外部 LAN IP,因为您在容器外运行 Kafka。

您可以在此行看到当前设置拒绝连接

net_conntrack_dialer_conn_failed_totaldialer_name="kafka",reason="refused" 79

您应该在主机上运行 Prometheus 并抓取 localhost:7071

如果您希望 Prometheus 可以发现 kafka:7071,或者在容器中运行 Kafka

【讨论】:

以上是关于使用 JMX-exporter-centos 7 配置 kafka的主要内容,如果未能解决你的问题,请参考以下文章

二. Elasticsearch 7.7.0使用xpack认证

二. Elasticsearch 7.7.0使用xpack认证

如何在不卸载 PHP 7.4 的情况下降级或使用 PHP 7.2?是不是可以默认使用 PHP 7.2 而不是最新版本?

使用 7.3 后的 Xcode 7.2 - 没有列出模拟器

联系表格 7:使用使用 wpcf7_before_send_mail 创建的挂钩仅用于 id 的一个联系表格

使用 python 3.7.7 安装 tensorflow 1.15 的问题