我们正在使用普罗米修斯一段时间,真的很享受它。
关于什么是jmx导出器的几句话
jmx-exporter是一个程序,它从基于JVM的应用程序(例如Java和Scala)读取JMX数据,并通过HTTP以Prometheus理解并可以抓取的简单文本格式公开它。
所以让我们开始讨论我的问题…
我们使用jmx导出器配置了kafka,如下所示
export KAFKA_OPTS="-javaagent:/home/jmx_prometheus_javaagent-0.11.0.jar=7071:/home/kafka-2_0_0.yml"
该配置在kakfa配置下的ambari中设置
设置配置后,我们重新启动所有 3 个 Kafka 代理
我们检查jmx-exporter HTTP服务器是否正在监听:
netstat -tlnp | grep 7071
tcp6 0 0 :::7071 :::* LISTEN 63872/java
并刮擦指标!
curl -s localhost:7071 | grep -i kafka | head
# HELP kafka_log_logcleanermanager_max_dirty_percent Attribute exposed for management (kafka.log<type=LogCleanerManager, name=max-dirty-percent><>Value)
# TYPE kafka_log_logcleanermanager_max_dirty_percent gauge
kafka_log_logcleanermanager_max_dirty_percent 0.0
直到现在,一切都很酷
但是当我们开始使用kafka命令时,例如打印我们得到的主题列表:
/usr/hdp/current/kafka-broker/bin/kafka-topics.sh –zookeeper $zookeeper_server:2181 –list
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.net.httpserver.ServerImpl.bind(ServerImpl.java:133)
at sun.net.httpserver.HttpServerImpl.bind(HttpServerImpl.java:54)
at io.prometheus.jmx.shaded.io.prometheus.client.exporter.HTTPServer.<init>(HTTPServer.java:145)
at io.prometheus.jmx.shaded.io.prometheus.jmx.JavaAgent.premain(JavaAgent.java:49)
... 6 more
FATAL ERROR in native method: processing of -javaagent failed
注意–在添加以下行之前:
export KAFKA_OPTS="-javaagent:/home/jmx_prometheus_javaagent-0.11.0.jar=7071:/home/kafka-2_0_0.yml "
一切都还好
所以任何建议 - 如何从这一点开始解决这个问题?
更多参考-
https://alex.dzyoba.com/blog/jmx-exporter
https://medium . com/@ mousavi 310/monitor-Apache-Kafka-using-grafana-and-Prometheus-873 c7a 0005 e 2
您的Kafka实例正在端口7071上侦听prom抓取,这似乎很好。当您发出Kafka命令时,您添加到KAFKA_OPTS的javaAgent似乎也在尝试侦听端口7071。不确定为什么您需要javaAgent,但请尝试在那里使用不同的端口。
裁判:https://github.com/wurstmeister/kafka-docker/wiki#why-启用jmx时kafka工具会失败吗
启用 JMX 时,kafka-topics.sh 和 kafka-console-producer.sh 等工具会失败。这是由于JMX_PORT环境变量引起的。Kafka 帮助程序脚本 /opt/kafka/bin/kafka-run-class.sh 将尝试在将 JMX 绑定到指定端口的新 JVM 中调用所需的命令。由于已在容器中运行的代理 JVM 绑定了此端口,因此进程将失败并退出并出现错误。
解决方案是在命令前面加上 JMX_PORT= 或取消设置环境变量,即取消设置JMX_PORT
在我找到的所有解决方案中,它帮助我将KAFKA_OPTS变量更改为EXTRA_ARGS。但是我仍然不明白冲突的原因。Kafka在一个端口上运行,javaAgent在另一个端口上运行。但是,当创建主题时,出现了一个错误。JavaAgent我用来传递Prometheus度量
常见命令 解析 Zookeeper相当于是管理员。Kafka相当于一个会议。Topic相当于会议上谈的话题。 Zookeeper的端口号为2181,broker的端口号为9092。
本文向大家介绍linux中install命令和cp命令的使用与区别,包括了linux中install命令和cp命令的使用与区别的使用技巧和注意事项,需要的朋友参考一下 前言 install和cp类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile(在RPM的spec里面也经常用到),使用它来将程序拷贝到目标(安装)目录
1.TopicCommand 1.1.Topic创建 相关可选参数: 1.2.删除Topic 支持正则表达式匹配Topic来进行删除,只需要将topic 用双引号包裹起来 例如: 删除以create_topic_byhand_zk为开头的topic; .表示任意匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。·*·:匹配前面的子表达式零次或多次。要匹配
Kubernetes 中的 kubectl 及其他管理命令使用。
在实现第三方API(mollie)时,他们似乎将支持分页的参数之一命名为from,这与内置的python相冲突。 有没有办法让我正确使用这个?我没有正确传递参数吗?注意:它们被写成。 它唯一支持的参数是:和。 给予:
本文向大家介绍Mysql Explain命令的使用与分析,包括了Mysql Explain命令的使用与分析的使用技巧和注意事项,需要的朋友参考一下 mysql explain命令用于显示mysql如何使用索引来处理select语句以及连接表。通过该命令可以分析出查询语句或是表结构的性能瓶颈,从而写出性能更好的SQL语句,通过 expalin 命令我们可以得到: 1. 表的读取顺序 2. 表的读取操