高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘

當前位置: 首頁 >綜合 > 正文

收藏備用小知識:使用 JMX 監控 Kafka 和 Zookeeper

2023-06-29 08:10:21 來源:SRETalk

JVM 默認會通過 JMX 的方式暴露基礎指標,很多中間件也會通過 JMX 的方式暴露業務指標,比如 Kafka、Zookeeper、ActiveMQ、Cassandra、Spark、Tomcat、Flink 等等。掌握了 JMX 監控方式,就掌握了一批程序的監控方式。本節介紹 JMX-Exporter 的使用,利用 JMX-Exporter 把 JMX 監控數據暴露為 Prometheus 可識別的格式。

JMX

JMX(Java Management Extensions)是 Java 管理擴展的簡稱,是一種為 Java 應用程序植入管理功能的框架。Java 類程序經常使用 JMX 暴露監控指標數據,也可以通過 JMX 來控制 Java 類程序,典型的比如通過 JMX 觸發程序 GC。

Java 程序里,某個類如果實現了 MBean 接口,那么這個類就可以通過 JMX 來讀取和修改這個類的屬性,也可以調用這個類的方法。JMX 通過 MBeanServer 來管理 MBean,MBeanServer 是一個管理器,它可以管理多個 MBean,每個 MBean 都有一個 ObjectName,用來唯一標識這個 MBean。


(資料圖片僅供參考)

更新信息可以參考JMX Specification。非本文重點。

JMX-Exporter簡介

JMX-Exporter 是 Prometheus 社區提供的一個工具,用來把 JMX 暴露的監控指標數據轉換為 Prometheus 可識別的格式。JMX-Exporter 通過 HTTP 服務的方式暴露監控指標數據,Prometheus 通過 HTTP 協議來拉取監控指標數據。

JMX-Exporter 就是個 jar 包,以 javaagent(何為 javaagent,需要讀者自行 Google) 的方式運行,和業務 Java(或 Scala) 程序運行在一個 JVM 虛擬機里。有了 JMX-Exporter,業務程序無需暴露 JMX 端口了,JMX-Exporter 會把 JMX 暴露的監控指標數據轉換為 Prometheus 可識別的格式,然后通過 HTTP 只讀方式暴露出去,也更為安全。

JMX-Exporter 安裝

因為 JMX-Exporter 是個 jar 包,所以安裝非常簡單,只需要把 jar 包下載到服務器上就可以了。JMX-Exporter 的下載地址是https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/,下載最新版本的 jar 包即可。

比如我們把下載的 jar 包放在/opt/jmx-exporter目錄,另外,建立/etc/jmx-exporter目錄放置 JMX-Exporter 所需配置文件。像 Kafka,暴露的 JMX 指標非常非常多,我們不需要全部采集,只需要采集我們關心的指標即可。所以,我們需要配置文件來告訴 JMX-Exporter,我們需要采集哪些指標。

JMX-Exporter 提供了很多樣例配置,地址在這里:https://github.com/prometheus/jmx_exporter/tree/main/example_configs。

使用 JMX 監控 Zookeeper

實際上,新版 Zookeeper 已經直接暴露了 Prometheus 協議的監控數據,無需通過 JMX 方式采集了。另外,Zookeeper 還提供了四字命令的監控數據采集方式,比如 Categraf 的input.zookeeper插件就是采用的這種方式。

不過,本文主要是演示 JMX 的方式,所以還是使用 JMX 的方式來采集 Zookeeper 的監控數據。

首先,從https://github.com/prometheus/jmx_exporter/tree/main/example_configs這里找到 Zookeeper 的配置樣例文件,下載到/etc/jmx-exporter/zookeeper.yml。然后把 jmx-exporter 的 jar 包作為 javaagent 啟動參數加入 Zookeeper 的啟動命令即可。

# zookeeper-env.shSERVER_JVMFLAGS="-javaagent:/opt/jmx-exporter/jmx-exporter.jar=7070:/etc/jmx-exporter/zookeeper.yml"

Zookeeper 有個 zookeeper-env.sh 控制 Zookeeper 的啟動參數,我們在這里加入 javaagent 啟動參數,然后重啟 Zookeeper 即可。上例是把 JMX-Exporter 的 HTTP 服務端口設置為 7070,可以根據實際情況修改,配置文件指定為/etc/jmx-exporter/zookeeper.yml。

OK,現在可以測試了,先看 7070 端口是否在監聽,如果在監聽,就可以請求這個端口的/metrics接口采集 Prometheus 協議的監控數據了。

$ netstat -tlnp | grep 7070tcp 0 0 0.0.0.0:7070 0.0.0.0:* LISTEN 892/java$ curl -s localhost:7070/metrics | head# HELP jvm_threads_current Current thread count of a JVM# TYPE jvm_threads_current gaugejvm_threads_current 16.0# HELP jvm_threads_daemon Daemon thread count of a JVM# TYPE jvm_threads_daemon gaugejvm_threads_daemon 12.0# HELP jvm_threads_peak Peak thread count of a JVM# TYPE jvm_threads_peak gaugejvm_threads_peak 16.0# HELP jvm_threads_started_total Started thread count of a JVM

可以看到,Zookeeper 的監控數據已經暴露出來了,接下來就可以采集這些數據了,抓取 Prometheus 協議的監控數據有很多方式,可以直接使用 Prometheus 自身來抓取,也可以通過 Categraf 的 input.prometheus 插件來抓取,也可以通過 vmagent 來抓取,大家自行決策即可。

使用 JMX 監控 Kafka

從 JMX-Exporter 提供的樣例配置目錄,下載 kafka.yml,然后導出 KAFKA_OPTS 環境變量即可。

$ export KAFKA_OPTS="-javaagent:/opt/jmx-exporter/jmx-exporter.jar=7071:/etc/jmx-exporter/kafka.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

上例中,我們把端口換成了7071,配置文件指定為/etc/jmx-exporter/kafka.yml。測試一下端口是否成功監聽:

$ netstap -tlnp | grep 7071tcp6 0 0 :::7071 :::* LISTEN 19288/java$ curl -s localhost:7071 | grep -i kafka | head# HELP kafka_server_replicafetchermanager_minfetchrate Attribute exposed for management (kafka.server<>Value)# TYPE kafka_server_replicafetchermanager_minfetchrate untypedkafka_server_replicafetchermanager_minfetchrate{clientId="Replica",} 0.0# HELP kafka_network_requestmetrics_totaltimems Attribute exposed for management (kafka.network<>Count)# TYPE kafka_network_requestmetrics_totaltimems untypedkafka_network_requestmetrics_totaltimems{request="OffsetFetch",} 0.0kafka_network_requestmetrics_totaltimems{request="JoinGroup",} 0.0kafka_network_requestmetrics_totaltimems{request="DescribeGroups",} 0.0kafka_network_requestmetrics_totaltimems{request="LeaveGroup",} 0.0kafka_network_requestmetrics_totaltimems{request="GroupCoordinator",} 0.0

一切正常哈,如果你的 Kafka 是通過 systemd 運行的,可以類似下面的方式來配置 kafka.service 文件:

...[Service]Restart=on-failureEnvironment=KAFKA_OPTS=-javaagent:/opt/jmx-exporter/jmx-exporter.jar=7071:/etc/jmx-exporter/kafka.ymlExecStart=/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.propertiesExecStop=/opt/kafka/bin/kafka-server-stop.shTimeoutStopSec=600User=kafka...加餐

使用 jmx-exporter jar 包的時候,會引用一個配置文件,不同的 Java 應用可能會通過 jmx 的方式暴露特別多的監控指標,顯然,我們不需要采集所有,具體要采集哪些指標,就是靠 jmx-exporter jar 包引用的那個配置文件決定的。我們來看一下/etc/jmx-exporter/zookeeper.yml的內容:

rules: # replicated Zookeeper - pattern: "org.apache.ZooKeeperService<>(\\w+)" name: "zookeeper_$2" type: GAUGE - pattern: "org.apache.ZooKeeperService<>(\\w+)" name: "zookeeper_$3" type: GAUGE labels: replicaId: "$2" - pattern: "org.apache.ZooKeeperService<>(Packets\\w+)" name: "zookeeper_$4" type: COUNTER labels: replicaId: "$2" memberType: "$3" - pattern: "org.apache.ZooKeeperService<>(\\w+)" name: "zookeeper_$4" type: GAUGE labels: replicaId: "$2" memberType: "$3" - pattern: "org.apache.ZooKeeperService<>(\\w+)" name: "zookeeper_$4_$5" type: GAUGE labels: replicaId: "$2" memberType: "$3" # standalone Zookeeper - pattern: "org.apache.ZooKeeperService<>(\\w+)" type: GAUGE name: "zookeeper_$2" - pattern: "org.apache.ZooKeeperService<>(\\w+)" type: GAUGE name: "zookeeper_$2"

這個配置文件里定義了一堆 rules,每個 rule 由四部分組成:pattern、name、type、labels,其中 pattern 是一個正則表達式,用來匹配 MBean 的 object name(什么是 MBean,什么是 object name 可以自行 Google,這里暫不展開),如果匹配到了就采集對應的 MBean 的數據,否則就不采集。type 是指定了數據類型,labels 是指定了標簽,標簽值是來自 pattern 中提取到的正則數據。

所以,jmx 監控數據采集的關鍵點,其實是這個 rules 的最佳實踐,也就是說,對于某個 Java 應用,你具體要采集哪些指標,這是真經驗,真正有價值的東西。

文章主要翻譯了https://alex.dzyoba.com/blog/jmx-exporter/并加入了一些個人理解。enjoy…make a better world :)

標簽:

返回頂部
高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘
  • <cite id="ecweg"><pre id="ecweg"></pre></cite>
    <rt id="ecweg"><acronym id="ecweg"></acronym></rt>
  • <rt id="ecweg"></rt>
    手机在线国产视频| 欧美伦理片在线观看| 男的插女的下面视频| 欧美成人xxxxx| 天天色综合天天色| 手机福利在线视频| 美女扒开大腿让男人桶| 欧美一级特黄a| 欧美专区第二页| 久久9精品区-无套内射无码| 特黄视频免费观看| 欧美 日韩 激情| 91亚洲免费视频| 每日在线观看av| av在线免费看片| 日本黄大片在线观看| 99视频在线免费| 成 年 人 黄 色 大 片大 全| 一道本在线免费视频| 日本中文字幕亚洲| 一级一片免费播放| 日日噜噜夜夜狠狠| 男女h黄动漫啪啪无遮挡软件| 91嫩草国产丨精品入口麻豆| 91热这里只有精品| 男人靠女人免费视频网站| 亚洲图片 自拍偷拍| 国产又黄又猛视频| 精品这里只有精品| 免费看黄在线看| 自拍偷拍视频在线| 中文字幕第一页在线视频| 超碰在线播放91| 日韩手机在线观看视频| 每日在线更新av| 国产96在线 | 亚洲| 日本一本中文字幕| 成人一区二区av| www.欧美激情.com| 亚洲精品永久视频| 中文字幕第17页| а 天堂 在线| 一级网站在线观看| 可以在线看黄的网站| 一本—道久久a久久精品蜜桃| avav在线看| 国产福利一区视频| 欧美激情成人网| 无码人妻丰满熟妇区毛片| 成熟了的熟妇毛茸茸| 成年人观看网站| 欧美xxxxx在线视频| 国产情侣av自拍| 丰满少妇在线观看| 制服丝袜中文字幕第一页| 日本免费色视频| 久久av秘一区二区三区| 日本天堂免费a| 国产精品无码免费专区午夜| 欧美日韩性生活片| 天天摸天天碰天天添| 欧美少妇性生活视频| 天天操狠狠操夜夜操| 成年在线观看视频| 霍思燕三级露全乳照| 美女av免费在线观看| 久热精品在线播放| 99热这里只有精品7| 无码专区aaaaaa免费视频| 亚洲欧美另类动漫| 欧美日韩一级在线| 国产美女视频免费| 男人日女人bb视频| 午夜视频在线观| 黄网站欧美内射| 亚洲天堂伊人网| 男人操女人免费软件| 欧美日韩激情视频在线观看| 天天干天天色天天干| 国产精品无码人妻一区二区在线 | 日本午夜激情视频| 九九精品久久久| 欧美成人一区二区在线观看| 在线不卡一区二区三区| 日本韩国欧美在线观看| www.五月天色| 国产成人久久婷婷精品流白浆| 日本高清免费观看| 久久精品一区二| 欧美又黄又嫩大片a级| 亚洲熟妇av一区二区三区漫画| www.51色.com| 超碰在线公开97| 我的公把我弄高潮了视频| 欧美一级特黄a| 成人观看免费完整观看| 男人添女人荫蒂免费视频| 91在线第一页| 亚洲综合av在线播放| 91精品91久久久中77777老牛| 97超碰人人看| 天堂av手机在线| 我看黄色一级片| 久久久久久久久久久免费视频| 岛国大片在线播放| 日产精品久久久久久久蜜臀| www.日日操| 久久精品国产精品亚洲色婷婷| 国产免费一区二区视频| dy888午夜| 黄色一级视频播放| 一二三级黄色片| 91插插插影院| 成人免费黄色av| 国产又粗又猛大又黄又爽| 污污视频网站在线| 51自拍视频在线观看| av视屏在线播放| 亚洲色图38p| 亚洲综合日韩欧美| 国产视频1区2区3区| 男人的天堂视频在线| 大胆欧美熟妇xx| 99视频精品免费| 国产高清精品软男同| 人妻少妇被粗大爽9797pw| 亚洲精品永久视频| 欧美一级在线看| 四虎4hu永久免费入口| 国模吧无码一区二区三区| 亚洲第一色av| 日韩a在线播放| 三上悠亚免费在线观看| 精品久久久久久久免费人妻| 久久久久亚洲av无码专区喷水| 色诱视频在线观看| 欧美一级爱爱视频| 在线视频观看一区二区| 日韩欧美精品在线观看视频| 国产手机视频在线观看| 91精品无人成人www| 日本人体一区二区| 国产欧美综合一区| 激情五月俺来也| 国产性xxxx18免费观看视频| 国产经典久久久| 亚洲精品mv在线观看| 我看黄色一级片| 欧美一级片中文字幕| 97国产在线播放| 久久男人资源站| 亚洲免费视频播放| www.桃色.com| 蜜臀av免费观看| 激情五月亚洲色图| 18岁视频在线观看| 久久久一本二本三本| 成人在线视频一区二区三区| 一道本在线观看视频| 91精品视频国产| 国内国产精品天干天干| 天堂一区在线观看| 亚洲这里只有精品| 香蕉视频禁止18| 99re精彩视频| 亚洲第一区第二区第三区| 久久这里只精品| www.亚洲自拍| 欧洲精品视频在线| 国产爆乳无码一区二区麻豆| 免费观看亚洲视频| 精品视频在线观看一区二区| 岛国大片在线播放 | 男人c女人视频| 国产人妻人伦精品| 国产精品国产亚洲精品看不卡| 久激情内射婷内射蜜桃| 日韩免费毛片视频| 日本中文字幕影院| 国产精品免费看久久久无码| 日本福利视频一区| 久热免费在线观看| 伊人国产精品视频| 成年人午夜免费视频| www.xxx亚洲| 手机成人av在线| 国产午夜福利100集发布| 日本xxxxxxx免费视频| 国内自拍第二页| 免费一级淫片aaa片毛片a级| av片中文字幕| 亚洲欧美日韩不卡| 日韩精品―中文字幕| av中文字幕网址| 欧美精品久久久久久久自慰 | www.四虎成人| 久久最新免费视频| 久久精品一区二| 潘金莲一级淫片aaaaa免费看| 国产精品裸体瑜伽视频|