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的配置文件
$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(輸入流) 中原
perl /scripts/tomcatstats.pl :8444 admin passwords http-8080
修改爲:
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,就會得到:
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時就可以出現圖像了