我们使用 Prometheus 一段时间并且非常享受它。
关于什么是jmx-exporter 的几句话
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 config 下的 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
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 "
一切都好
所以有什么建议——如何从这一点开始解决这个问题?
函数式编程
拉风的咖菲猫
慕的地10843
慕尼黑的夜晚无繁华
相关分类