關於zabbix通過jmx監控tomcat的問題

    關於zabbix如何通過jmx監控tomcat等java程序我在前面的博客中已經寫過了,有興趣的可以戳一下這個鏈接:我是鏈接,快戳我

    最近在新公司部署zabbix監控的時候在壓測環境部署監控沒有問題,然後使用相同的方法部署在線上環境中之後發現模版中有一部分參數無法被獲取,於是開始各種找問題。最後在tomcat的配置文件中發現線上環境的tomcat配置參數比測試環境的配置參數多了八個參數,線上環境部分配置參數如下:

export JAVA_OPTS="-Xms2048m -Xmx4096M -Xmn512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12353 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=x.x.x.x"

其中部分參數和壓測環境不一樣,不一樣的參數如下:

-XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC

於是,一個一個排查參數,最後,發現是-XX:+UseConcMarkSweepGC這個參數影響zabbix通過jmx獲取關於內存回收機制的某些值,導致模版中的某些值無法獲取。刪除這個參數之後就可以正常獲取tomcat的各項監控參數了。

於是在諮詢了同事後發現該參數是對java的內存回收機制的優化的參數,在線上環境暫時不要刪除,於是某些監控項目無法實現,但是經過將近一天的排查,終於發現tomcat配置中的這個坑了,希望各位同道們以後在碰到類似的情況的時候可以參考借鑑我的這次經歷檢查是否是該參數搞的鬼,哈哈,找到問題了,在這分享給各位同道們參考哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章