3.修改xxx.sh
加入
export JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.203.12.64"
找到nohup java xxx 然后改為
nohup java ${JAVA_OPTS}
4.重啟服務
sh xxx stop
ps -ef | grep java
kill -9 (jps | grep -i "IdeProvider" | awk 'NR==1{print $1}')
sh xxx start
5.安裝並啟動open-falcon agent(從安裝的server拷貝agent過來,然后啟動服務,xxx 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地址xxxxxx就可以了,端口不需要改。
#啟動服務
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
#cp conf.example.properties conf.properties
#修改配置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://xxxx: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 線程數過多,影響性能