如何監控 Tomcat?Zabbix 與 Cloud Insight 對比

JVM 監控工具備不少,像命令 jstat,jmap,jstack,jinfo 能夠根據不一樣需求查看不一樣的系統信息,還有圖像化界面 jconsole,都是很方便的工具。這些能夠參考 JAVA自帶監控工具的介紹php

可是現代監控工具都是集成的,上可監控服務器性能,下可監控個組件運行狀況,不用每次查詢都在命令行敲啊敲的,圖像化實時展現數據,本文就我的實際操做經驗來談談現代集成監控工具 ZabbixCloud Insight 實現監控 Tomcat 的體驗。html

Zabbix 監控 Tomcat

最開始使用 Zabbix 只是監控服務器,並無想到之後要監控 Tomcat,因此直接簡單 yum 安裝,安裝完成後配置 host,templates,而後就能夠直接從圖表上看到服務器的性能數據。前端

如今想要監控 Tomcat,本人使用的2.4.7版本的 Zabbix 已然提供了原生對 JMX 應用的監控,即 Zabbix Java gateway。它是採用 Java 編寫的一個守護進程,當 Zabbix server 想知道主機 JMX 計數器的值時,將利用 JMX 管理 API 去請求遠程的有關應用。應用不須要額外安裝軟件,只須要在啓動時在命令行指定 -Dcom.sun.management.jmxremote 選項。java

Java gateway 接受來自 Zabbix server 或者代理的鏈接,所以在每個 Zabbix server 或代理中只能配置一個 Java gateway。若是一個主機有 JMX agent 及其餘類型的監控項,則只有 JMX agent 類型的監控項能夠經過 Java gateway 進行監控。當在 Java gateway 上的一個監控項值更新了,Zabbix server 或代理將鏈接 Java gateway 請求該值,由於 Java gateway 不會緩存任何值.linux

Zabbix server 或代理能夠經過 StartJavaPollers 控制鏈接 Java gateway 的進程。Java gateway 在內部經過 START_POLLERS 控制選項使用多線程啓動。StartJavaPollers 要小於或等於 START_POLLERS,不然可能致使當鏈接 Java gateway 時沒有多餘的線程進行處理;在服務端,若是一個鏈接請求超過了 Timeout 設定的秒數,鏈接將會終止,但 Java gateway 也許此時依然從 JMX 計數器中檢索該值。git

Zabbix, Cloud Insight  監控 Tomcat 對比

原理講完,上手操做github

  • 編譯添加 --enable-java 參數,參考官網 Java gateway,進行編譯安裝,其中還須要下載 catalina-jmx-remote.jar 包,配置 zabbix_java,zabbix_server,zabbix_agent 等配置文件
  • 把 php 等前端文件放到 apache 網站目錄上,經過訪問 http://ip/zabbix 在安裝界面進行配置,若是報403錯誤的話要考慮關閉防火牆
  • 在界面上配置 Zabbix,然而在進行 php 環境檢查的時候報錯缺乏9個模塊( ̄ェ ̄),又是坑又要編譯 PHP,參考圖文講解zabbix安裝全過程(5),把 php 編譯了一遍(早發現這篇文章多好 -_-#),接着進行 zabbix 配置,終於成功啦!

等服務器配置完成後,就是配置客戶端了web

  • 建立 host,引用模版就能夠實現監控系統 cpu 等數據,而想要監控 Tomcat 數據,也須要相應的模塊,但 zabbix 自帶的 tomcat 模板很差用(其實都沒有找到),因此須要本身添加模版
  • 在 github 上有相應的文件,能夠下載下來直接使用,就這樣導入模版
  • 而後參考官網 JMX monitoring 進行配置,想要看哪一個圖表,須要本身建立相應的 item graph。

Cloud Insight 監控 Tomcat

相對於複雜的安裝編譯配置的 zabbix 來講,Cloud Insight 就真的簡單多了,一鍵複製即完成安裝(執行的 shell 腳本里面會把須要的環境模塊一同下載下來進行安裝,造成一個黑盒環境,不須要再安裝其餘軟件),以後在 web 上見能夠看到系統 CPU 的相關數據了。shell

再來就是監控 Tomcat,Cloud Insight 一樣也是經過 JMX 遠程監控服務來監控 Tomcat。爲了收集這些指標,Cloud Insight 會調用一個輕量級的 Java 插件 JMXFetch 鏈接到 MBean 服務器,並經過 OneStatsd 服務器,將這些指標發送到 Cloud Insight Agent,具體參考文檔 JMX 遠程監控apache

Zabbix, Cloud Insight  監控 Tomcat 對比

Cloud Insight 要實現監控 Tomcat 很簡單

  • 在 Tomcat 配置文件裏面添加 JMX 的環境變量 -Dcom.sun.management.jmxremote
  • 配置 Ci 裏面 Tomcat 的配置文件 tomcat.yaml
  • 重啓探針

總結

Zabbix 和 Cloud Insight 安裝步驟對比:

Zabbix

  • Zabbix 須要同時安裝服務端和客戶端,用戶須要本身配置 PHP 作前端
  • 此外 Zabbix 會檢查 php 對前端的支持狀況,所須要的模塊是否都已安裝,須要按教程把 php 參數設置好
  • 監控 java 等應用時還須要進行額外編譯
  • 監控組件時 zabbix 自己的模版支持不夠,須要本身導入模塊(本身寫也行)

Cloud Insight

  • Cloud Insight 只須要一鍵安裝探針,配置服務,探針所需的環境模塊都在一個包裏
  • 數據從 OneAPM 官網上看,有默認抓取的指標,通常無需配置,若是有特殊需求可在配置文件裏面進行配置

Zabbix 和 Cloud Insight 監控 Tomcat 指標對比:

  • Zabbix 監控的指標和使用的模版有關,能夠監控 JVM JMX Tomcat 等指標
  • Cloud Insight 默認收集 JVM JMX Tomcat 等20+指標,若是想添加監控項能夠本身配置,參考 JMX 監控,默認上限350個指標

Zabbix 和 Cloud Insight 分別適合的人羣:

  • Zabbix 歷史悠久,有相關社區,不少人已經使用習慣
  • 若是喜歡挑戰新事物,想要解放運維人力,仍是用 Cloud Insight 吧 (^∇^)

Cloud Insight 集監控、管理、計算、協做、可視化於一身,幫助全部 IT 公司,減小在系統監控上的人力和時間成本投入,讓運維工做更加高效、簡單。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客 本文轉自 OneAPM 官方博客

相關文章
相關標籤/搜索