監控平臺實踐(四)使用jmxtrans 監控Java應用
前情提要:
點我
01 寫個簡單的java應用
在監控之前,我們需要準備一個簡單的java web應用
這里用springboot實作:
- ip:
10.154.0.24 - 埠:
8081 - http請求:
get - 路徑:
/hello - 回傳內容:
hello world
生成jar包:testing.jar,上傳至linux
02 啟動引數
通過jmx的方式獲取java行程資訊,需要在引數中添加(引數按環境填寫):
java -jar \
-Dcom.sun.management.jmxremote.port=8999 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=10.154.0.24 \
testing.jar
跑起來就先告一段落啦,接下來資料采集:jmxtrans
03 jmxtrans安裝
官方鏈接:
下載鏈接:jmxtrans.rpm 安裝說明:installation
下載安裝:
上傳并安裝:
yum localinstall -y jmxtrans-271.rpm
04 組態檔
Ⅰ 引數
"port": "8999",
"host": "10.154.0.24",
這兩個引數對應java啟動引數中的ip和port
Ⅱ 資料庫
這里使用influxdb資料庫,所以這里outputWriters中的相關配置與influxdb有關
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://10.154.0.24:8086/",
"username" : "root",
"password" : "root",
"database" : "test",
"tags" : {"application" : "Memory"}
}],
"obj": "java.lang:name=CMS Old Gen,type=MemoryPool",
"resultAlias": "cmsoldgen",
"attr": ["Usage"]
創建檔案
目錄:cd /var/lib/jmxtrans
創建組態檔:test.json
{
"servers": [{
"port": "8999",
"host": "10.154.0.24",
"queries": [{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://10.154.0.24:8086/",
"username" : "root",
"password" : "root",
"database" : "test",
"tags" : {"application" : "Memory"}
}],
"obj": "java.lang:type=Memory",
"resultAlias": "heap",
"attr": ["HeapMemoryUsage", "NonHeapMemoryUsage"]
}, {
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://10.154.0.24:8086/",
"username" : "root",
"password" : "root",
"database" : "test",
"tags" : {"application" : "MemoryPool"}
}],
"obj": "java.lang:name=CMS Old Gen,type=MemoryPool",
"resultAlias": "cmsoldgen",
"attr": ["Usage"]
}, {
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://10.154.0.24:8086/",
"username" : "root",
"password" : "root",
"database" : "test",
"tags" : {"application" : "GarbageCollector"}
}],
"obj": "java.lang:type=GarbageCollector,name=*",
"resultAlias": "gc",
"attr": ["CollectionCount", "CollectionTime"]
}],
"numQueryThreads": 2
}]
}
05 啟動
啟動命令:systemctl start jmxtrans
日志位置:/var/log/jmxtrans/jmxtrans.log
如有報錯,可以日志中查看,一般來說是json配置的問題,
查看資料庫:
influx
use test(這里不清楚是否需要手動創建database:test)
show measurements
gcMemory
06 番外2 - 使用 jconcole監控行程資料
jsoncole是jdk自帶的jmx資訊抓取程式
jmxtrans也是用這種方式來抓取資料的,展示頁面如下(windows):

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266313.html
標籤:其他
上一篇:day02 環境搭建_虛擬機準備
下一篇:30分鐘快速搭建一套私有云平臺
