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 線程數過多,影響性能