JMX 导出器和 Prometheus
Posted
技术标签:
【中文标题】JMX 导出器和 Prometheus【英文标题】:JMX exporter and Prometheus 【发布时间】:2020-02-26 06:18:25 【问题描述】:嗨,所有这个问题都是question这里的延续
现在我在节点 x214 上运行单节点 kafka 代理,并在端口 7071 上使用 jmx 导出器报告指标
curl -s localhost:7071 | grep -i kafka
# reports many metrics on std out
我想将 jmx 导出器与 Prometheus 连接,并最终连接到 grafana 进行可视化;如here 所述
我尝试按照博客的说明安装 Prometheus,但遇到了问题;我发现使用 docker 容器很容易启动 Prometheus
docker run -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
我在节点 x215(与 kafka 代理不同的节点)上运行 Prometheus。我可以通过http://x215-ip:9090
联系 Prometheus gui
prometheus.yaml 文件设置如下。
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus_master'
scrape_interval: 5s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['IP-215:9090']
- job_name: ‘kafka-server’
static_configs:
- targets: [‘IP-214:7071’]
问题:-
在 Prometheus gui 上我找不到任何 kafka 指标;在上面的curl
命令的响应中可见
指标页面(IP-215:9090/metrics)的响应是here
我觉得 JMX 导出器正确报告了指标,但它没有正确连接到 Prometheus。你能帮帮我吗?
谢谢
【问题讨论】:
IP-214:7071/metrics 可以访问吗? 不抱歉,我会删除超链接 改写问题。您可以进入容器并卷曲该指标端点吗?你需要另一台机器上的 Docker 中的 Prometheus 吗?出口商是否只绑定在本地主机上?这些就是我们所说的可访问性 另外,curl -s localhost:7071
与 curl -s localhost:7071/metrics
不同
Repgrasing : 可以从 Prometheus 访问 IP-214:7071/metrics 吗?
【参考方案1】:
我们需要更多信息来帮助确定这里发生了什么。你能分享以下内容吗:
JMX 导出器的绑定接口(它是在侦听 0.0.0.0、127.0.0.1 还是其他特定接口?)这可以通过ss -plunt | grep -i jmx
之类的内容进行检查
prometheus 实例能否通过网络访问JMX Exporter 实例?鉴于它们位于不同的机器上,可能会遇到很多事情(防火墙、网络配置、SDN、IPtables ......仅举几例)。 prometheus 容器确实有 telnet,因此最简单的方法是使用它来查看是否可以连接到端口 7071。docker exec -it prometheus sh
并运行 telnet IP-214:7071
。你也可以使用 curl,但 prometheus 镜像中没有 curl。
检查这两项有助于排除配置中的一些简单问题。
【讨论】:
以上是关于JMX 导出器和 Prometheus的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JMX 导出器将 JMX 指标从 Kafka 消费者推送到普罗米修斯