Cacti監控tomcat的方法

                                      Cacti0.8.8a監控tomcat7.0.35的方法

1、首先下載監控tomcat的模板

TomcatStats-0.1.zip

下載地址:

http://forums.cacti.net/viewtopic.php?f=12&t=19744&hilit=tomcat


下載之後,修改tomcatstats.pl,將

   my $url = "http://$username:$password"."\@$host/manager/status?XML=true";
   my $xml = `GET $url`;
   替換以下兩行爲:
   my $url = "http://$host/manager/status?XML=true";
   my $xml = `wget  -qO - --http-user=$username --http-password=$password $url`;

說明:此處的-qO中的O爲大寫字母歐O

不然在你導入之後很可能出現數據出不來。

2、導入模板

(cacti_host_template_tomcat_server.xml)

進入cacti --> Console(控制檯) ---> Import Templates(導入模板)

3、將tomcatstats.pl上傳放到cacti/scritps目錄下。

4、然後修改被監控tomcat的配置文件

  1. $tomcat/conf/tomcat-users.xml,

在<tomcat-users> </tomcat-users>之間添加下面2行(我的tomcat版本是7.0.35)

 <role rolename="manager-gui"/>

 <role rolename="manager-script"/>

 <user username="admin" password="123" roles="manager-gui,manager-script"/>



5、進入cacti---> console (控制檯)--> Data Input Methods(數據輸入方法) ---> Tomcat Status

修改Input String(輸入流) 中原

  1. perl /scripts/tomcatstats.pl :8444 admin passwords http-8080  

修改爲:

  1. perl /scripts/tomcatstats.pl :8080 admin 123 http-8080  

6、 Cacti中增加相關監控選項。

7、 安裝 XML::Simple

安裝方法: (perl -MCPAN -e"install XML::Simple")

8、Tomcat manager的設置

設置完成後可以用INSTALL中提到的方法來測試

Example: ./tomcatstats.pl app1:8080 admin passwords http-8080,就會得到:

  1. jvm_memory_free:64522688 jvm_memory_max:1023934464 jvm_memory_total:81854464 connector_max_time:66 connector_error_count:19 connector_bytes_sent:2957318 connector_processing_time:804 connector_request_count:677 connector_bytes_received:0 connector_current_thread_count:25 connector_min_spare_threads:25 connector_max_threads:150 connector_max_spare_threads:75 connector_current_threads_busy:2 [root]  


將檢查得到的結果列出。

我的實驗操作及結果爲:

[root@nagios scripts]# /usr/bin/perl tomcatstats.pl 192.168.0.37:8080 admin 123 http-8080

jvm_memory_free:5122448 jvm_memory_max:123666432 jvm_memory_total:23146496 connector_max_time: connector_error_count: connector_bytes_sent: connector_processing_time: connector_request_count: connector_bytes_received: connector_current_thread_count: connector_min_spare_threads: connector_max_threads: connector_max_spare_threads: connector_current_threads_busy:


從結果看只獲得了jvm的數據,其他connector沒有數據,查看cacti圖也同樣問題,只有heap statistics正常,其他tomcat監控的圖沒有數據,經過google得知,Tomcat7的默認的http的connector名稱爲http-bio-8090,tomcat6的是http-8080,而且tomcat的http-bio-8090的雙引號在perl中要轉義才能被解析,否則出現只有jvm相關數據,其他connector沒有數據


再次測試

[root@nagios scripts]# /usr/bin/perl tomcatstats.pl 192.168.0.37:8080 admin 123 \"http-bio-8080\"

jvm_memory_free:5920672 jvm_memory_max:123666432 jvm_memory_total:22425600 connector_max_time:103 connector_error_count:41 connector_bytes_sent:166436 connector_processing_time:299 connector_request_count:81 connector_bytes_received:0 connector_current_thread_count:10 connector_min_spare_threads: connector_max_threads:200 connector_max_spare_threads: connector_current_threads_busy:1



9、如果圖前面設置都正確,圖沒有出來,可以嘗試把 Templates(模板) -->Graph Templates(圖形模板)--(沒有出來圖的模板)-- Unit Grid Value (--unit/--y-grid) 中清空。

測試的過程中Tomcat - Connection Rate和Tomcat - Heap Statistics這兩項出不來,清空或者是設爲0時就可以出現圖像了


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