0

我想启用 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 代理登录没有任何错误消息。

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

# TYPE net_conntrack_dialer_conn_attempted_total counter
net_conntrack_dialer_conn_attempted_total{dialer_name="kafka"} 79
# TYPE net_conntrack_dialer_conn_closed_total counter
net_conntrack_dialer_conn_closed_total{dialer_name="kafka"} 0
net_conntrack_dialer_conn_established_total{dialer_name="kafka"} 0
# TYPE net_conntrack_dialer_conn_failed_total counter
net_conntrack_dialer_conn_failed_total{dialer_name="kafka",reason="refused"} 79
net_conntrack_dialer_conn_failed_total{dialer_name="kafka",reason="resolution"} 0
net_conntrack_dialer_conn_failed_total{dialer_name="kafka",reason="timeout"} 0
net_conntrack_dialer_conn_failed_total{dialer_name="kafka",reason="unknown"} 79

# TYPE prometheus_sd_discovered_targets gauge
prometheus_sd_discovered_targets{config="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_seconds{scrape_job="kafka",quantile="0.01"} NaN
prometheus_target_sync_length_seconds{scrape_job="kafka",quantile="0.05"} NaN
prometheus_target_sync_length_seconds{scrape_job="kafka",quantile="0.5"} NaN
prometheus_target_sync_length_seconds{scrape_job="kafka",quantile="0.9"} NaN
prometheus_target_sync_length_seconds{scrape_job="kafka",quantile="0.99"} NaN
prometheus_target_sync_length_seconds_sum{scrape_job="kafka"} 0.000198245
prometheus_target_sync_length_seconds_count{scrape_job="kafka"} 1

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

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

4

1 回答 1

0

我让 Prometheus 在容器中运行

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

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

net_conntrack_dialer_conn_failed_total{dialer_name="kafka",reason="refused"} 79

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

kafka:7071如果您想被 Prometheus 发现,或者在容器中运行 Kafka

于 2019-10-29T07:10:45.353 回答