亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Kafka+使用prometheus與kafka cli命令有沖突

Kafka+使用prometheus與kafka cli命令有沖突

天涯盡頭無女友 2023-06-21 16:20:42
我們使用 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 7071tcp6       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 gaugekafka_log_logcleanermanager_max_dirty_percent 0.0到現在為止一切都很酷但是當我們開始使用 kafka 命令時,例如打印我們得到的主題列表:/usr/hdp/current/kafka-broker/bin/kafka-topics.sh –zookeeper $zookeeper_server:2181 –listException 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 useFATAL 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 "一切都好所以有什么建議——如何從這一點開始解決這個問題?
查看完整描述

4 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

在我找到的所有解決方案中,它幫助我將 KAFKA_OPTS 變量更改為 EXTRA_ARGS。但我還是不明白沖突的原因。Kafka 在一個端口上運行,javaagent 在另一個端口上運行。但盡管如此,在創建主題時卻出現錯誤。我用來傳遞 Prometheus 指標的 Javaagent



查看完整回答
反對 回復 2023-06-21
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

Kafka CLI 腳本使用與代理使用的相同的環境變量(特別是KAFKA_OPTS和JMX_PORT)。這就是他們沖突的原因。我正在使用匯合容器(confluentinc/cp-server:5.5.1):


JMX_PORT: 9991

KAFKA_OPTS: "-javaagent:/usr/local/bin/jmx_prometheus_javaagent-0.13.0.jar=7071:/etc/jmx-exporter/kafka-2_0_0.yml"

volumes:

  - ./jmx_exporter/kafka-2_0_0.yml:/etc/jmx-exporter/kafka-2_0_0.yml

  - ./jmx_exporter/jmx_prometheus_javaagent-0.13.0.jar:/usr/local/bin/jmx_prometheus_javaagent-0.13.0.jar

很多線程都指向JMX_PORTonly 但這對我沒有幫助。在能夠運行 CLI 命令之前,我必須從容器內部取消設置兩個環境變量。它的工作原理如下:


unset JMX_PORT

unset KAFKA_OPTS

kafka-run-class kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic your_topic

它不會破壞您的代理,因為這些變量是按會話設置的。


查看完整回答
反對 回復 2023-06-21
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

啟用 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


查看完整回答
反對 回復 2023-06-21
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

您的 Kafka 實例正在端口 7071 上偵聽舞會刮擦信息,這看起來不錯。當您發出 Kafka 命令時,看起來您添加到 KAFKA_OPTS 的 javaagent 也在嘗試偵聽端口 7071。不確定為什么在那里需要 javaagent,但在那里嘗試不同的端口。



查看完整回答
反對 回復 2023-06-21
  • 4 回答
  • 0 關注
  • 236 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號