Linux記錄-JMX監控Tomcat上傳到falcon


1.登錄測試服務器xxxxxx
xxxxxx
su root輸入xxxx

2.先修改Tomcat的啟動腳本,(linux下為catalina.sh),添加以下內容:
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=xxxx
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
備注:
-Dcom.sun.management.jmxremote.port=8999,是jmxremote使用的端口號,可修改。
-Dcom.sun.management.jmxremote.authenticate=false,表示不需要鑒權,主機+端口號即可監控。

3.重啟tomcat
kill -9 $(ps -ef | grep -i "tomcat" | awk 'NR==1{print $2}')
sh /app/tomcat-xxx/bin/startup.sh    (注意路徑以服務器實際路徑為准)

4.windows下運行JAVA_HOME/bin程序
jconsole或jvisualvm
輸入xxx:8999

5.安裝並啟動open-falcon agent(從安裝的server拷貝agent過來,然后啟動服務,114 server也要裝agent)
#新建目錄:mkdir  -p  /app/open-falcon
#上傳到服務器並解壓
tar xvf agent.tar.gz
#修改/app/open-falcon/agent/conf/cfg.json
heartbeat模塊和transfer模塊下的ip地址,將127.0.0.1:6030和127.0.0.1:8433兩個地址中的127.0.0.1
改成open-falcon的server的IP地址xxx就可以了,端口不需要改。
#啟動服務
nohup /app/open-falcon/agent/bin/falcon-agent -c /app/open-falcon/agent/config/cfg.json &
開啟服務后,機器會開啟1988端口,有防火牆的可以添加防火牆規則,增加1988端口。
#檢查下進程和端口
netstat -antp | grep 1988
ps -ef | grep -i "falcon"

6.jmxmon部署
#cd /app/open-falcon上傳jmxmon包
#解壓:tar xvf jmxmon-v0.0.2.tar
#修改配置jmxmon-v0.0.2/conf.properties
# 需要監聽的本地jmx端口,支持監聽多個端口,多端口用逗號分隔
jmx.ports=8999
# 本地agent的上報url,如果使用open-falcon的默認配置,則這里不需要改變
agent.posturl=http://localhost:1988/v1/push

#啟動服務
sh control start
sh control tail查看日志,或者cat var/app.log以確認程序是否正常啟動

7.falcon-server驗證
http://xxx:9090/     xxx/xxx  搜索主機名


####################################################################################################
參考:http://book.open-falcon.com/zh_0_2/usage/jmx.html
https://github.com/toomanyopenfiles/jmxmon/blob/master/README.md

jmxmon 簡介
jmxmon是一個基於open-falcon的jmx監控插件,通過這個插件,結合open-falcon agent,
可以采集任何開啟了JMX服務端口的java進程的服務狀態,並將采集信息自動上報給open-falcon服務端
主要功能
通過jmx采集java進程的jvm信息,包括gc耗時、gc次數、gc吞吐、老年代使用率、新生代晉升大小、活躍線程數等信息。
對應用程序代碼無侵入,幾乎不占用系統資源。

采集指標
Counters	Type	Notes
parnew.gc.avg.time	GAUGE	一分鍾內,每次YoungGC(parnew)的平均耗時
concurrentmarksweep.gc.avg.time	GAUGE	一分鍾內,每次CMSGC的平均耗時
parnew.gc.count	GAUGE	一分鍾內,YoungGC(parnew)的總次數
concurrentmarksweep.gc.count	GAUGE	一分鍾內,CMSGC的總次數
gc.throughput	GAUGE	GC的總吞吐率(應用運行時間/進程總運行時間)
new.gen.promotion	GAUGE	一分鍾內,新生代的內存晉升總大小
new.gen.avg.promotion	GAUGE	一分鍾內,平均每次YoungGC的新生代內存晉升大小
old.gen.mem.used	GAUGE	老年代的內存使用量
old.gen.mem.ratio	GAUGE	老年代的內存使用率
thread.active.count	GAUGE	當前活躍線程數
thread.peak.count	GAUGE	峰值線程數
建議設置監控告警項
不同應用根據其特點,可以靈活調整觸發條件及觸發閾值
告警項	觸發條件	備注
gc.throughput	all(#3)<98	gc吞吐率低於98%,影響性能
old.gen.mem.ratio	all(#3)>90	老年代內存使用率高於90%,需要調優
thread.active.count	all(#3)>500	線程數過多,影響性能

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM