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	線程數過多,影響性能
相關文章
相關標籤/搜索