Cacti監控Tomcat伺服器實現過程

mchdba發表於2014-06-09

1 首先去官網上面下載通用的監控模板

一般使用TomcatStats-0.1.zip 模板居多,下載地址:

http://forums.cacti.net/download/file.php?id=12310

在linux伺服器上面使用wget下載,wget http://forums.cacti.net/download/file.php?id=12310,報如下錯誤:

正在連線 forums.cacti.net|173.225.179.10|:80... 已連線。

已發出 HTTP 請求,正在等待回應... 301 Moved Permanently

位置:http://forums.cacti.net/ [跟隨至新的 URL]

已超過 20 次重定向。

 

可以在windows7的google瀏覽器上輸入http://forums.cacti.net/download/file.php?id=12310點選回車下載,然後通過SecureFX客戶端工具scp到linux伺服器上即可。

然後解壓縮得到3個檔案cacti_host_template_tomcat_server.xml,INSTALL.txt,tomcatstats.pl 3個檔案。

 

2 在cacti主伺服器的網址上面匯入模板

開啟cacti伺服器的網址:

進入http://10.xx.1.xx/cacti/index.php->Console –> Templates -> Import Templates ,選擇檔案匯入(cacti_host_template_tomcat_server.xml)檔案,選擇Import按鈕載入tomcat模板。


3 cacti伺服器端載入tomcatstats.pl統計指令碼

將解壓縮TomcatStats-0.1.zip 得到的tomcatstats.pl 放到/var/www/html/cacti/scritps 目錄下,並且賦予執行許可權

Chown –R apache.apache tomcatstats.pl

chmod 755 tomcatstats.pl

修改tomcatstats.pl,大概第20行,將

1.      my $xml = `GET $url`;

修改為

1.      my $xml = `wget -qO - $url`;

不然在你匯入之後很可能出現資料出不來。

Check URL連線是否正確

Vim tomcatstats.pl 後,在第17行後面新增print $url,在控制檯打出url,如下所示:   

my $url = "http://$username:$password"."\@$host/manager/status?XML=true";

print $url;

print “   ”;

 

然後用perl來check下統計指令碼,如下:

[root@squid-2 scripts]# perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' '9ssspw '  http-9444  

http://tomcat:tomcat0401@10.xx.3.xx:9444/manager/status?XML=true   jvm_memory_free:2925944104 jvm_memory_max:3892314112 jvm_memory_total:3892314112 connector_max_time:131 connector_error_count:4464 connector_bytes_sent:19559190 connector_processing_time:11552 connector_request_count:8931 connector_bytes_received:0 connector_current_thread_count:4 connector_min_spare_threads: connector_max_threads:150 connector_max_spare_threads: connector_current_threads_busy:1


也可以在windows7的google瀏覽器裡面,輸入上面URL,也會出現很多tomcat的統計資訊,如下所示:

 

4 修改cacti中tomcat獲取資料的url地址

進入cacti---&gt console ---&gt Data Input Methods ---&gtTomcat Status

修改Input String 中欄位

修改為:perl /scripts/tomcatstats.pl :8080 tomcat 9ssspw  http-8080

注意:替換上面的username 和password 為實際的tomcat 管理員賬號和密碼。

要開啟tomcat 的manager 管理員賬號 附件內有Enable the Tomcat manager application 介紹,如下圖:

 

5 web端tomcat伺服器的配置調整

在tomcat/conf/server.xml 裡面新增如下:

       

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

       

        

               resourceName="UserDatabase"/>

        

               unpackWARs="false" autoDeploy="false"

               xmlValidation="false" xmlNamespaceAware="false">

         

               directory="logs"  prefix="admin_access_log." suffix=".txt"

               pattern="combined" resolveHosts="false"

               fileDateFormat="yyy-MM-dd"/>

         

               docBase="server/webapps/manager" debug="0"

               privileged="true" reloadable="false" />

        

       

      

然後在tomcat/conf/tomcat-users.xml裡面 新增

passwords 為連線密碼 可自行更改,然後重啟tomcat 服務

 

去cacti伺服器端執行perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' '9ssspw '  http-9444
check統計指令碼是否能取到tomcat的資料,有資料即正常,如下所示:

[root@squid-2 scripts]# /usr/bin/perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' 'xxx’  http-9444

http://tomcat:tomcat0401@10.254.3.29:9444/manager/status?XML=true   jvm_memory_free:3409129096 jvm_memory_max:3892314112 jvm_memory_total:3892314112 connector_max_time:131 connector_error_count:2 connector_bytes_sent:20241 connector_processing_time:168 connector_request_count:5 connector_bytes_received:0 connector_current_thread_count:4 connector_min_spare_threads: connector_max_threads:150 connector_max_spare_threads: connector_current_threads_busy:1

[root@squid-2 scripts]#

 

記錄debug期間的報錯資訊如下:

[root@squid-2 scripts]# perl tomcatstats.pl 10.xx.3.xx:9300 admin 9ssspw  http-9300

Can't locate XML/Simple.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at tomcatstats.pl line 7.

BEGIN failed--compilation aborted at tomcatstats.pl line 7.

 

需要安裝XML::Simple

[root@squid-2 ~]# find / -name cpan

/usr/bin/cpan

[root@squid-2 ~]# /usr/bin/cpan XML::Simple

……

Prepending /root/.cpan/build/XML-Simple-2.20-7zpaOY/blib/arch /root/.cpan/build/XML-Simple-2.20-7zpaOY/blib/lib to PERL5LIB for 'install'

Installing /usr/local/share/perl5/XML/Simple.pm

Installing /usr/local/share/perl5/XML/Simple/FAQ.pod

Installing /usr/local/share/man/man3/XML::Simple.3pm

Installing /usr/local/share/man/man3/XML::Simple::FAQ.3pm

Appending installation info to /usr/lib64/perl5/perllocal.pod

  GRANTM/XML-Simple-2.20.tar.gz

  /usr/bin/make install  -- OK

Warning (usually harmless): 'YAML' not installed, will not store persistent state

 

繼續報錯File does not exist:  at tomcatstats.pl line 20

[root@squid-2 scripts]# /usr/bin/perl tomcatstats.pl 10.254.3.29:9300 tomcat xxx   http-9300

File does not exist:  at tomcatstats.pl line 20

需要安裝如下元件:

[root@squid-2 scripts]#yum install perl-HTML-Parser.i386 perl-HTML-Tagset.noarch perl-libwww-perl.noarch perl-URI.noarch

 

之後啟動tomcat報錯如下:

[tomcat@web-9 logs]$ cat catalina.out

2014-6-6 15:11:15 org.apache.catalina.core.AprLifecycleListener init

資訊: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_45/jre/lib/amd64/server:/usr/java/jdk1.6.0_45/jre/lib/amd64:/usr/java/jdk1.6.0_45/jre/../lib/amd64:/usr/local/lib::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

2014-6-6 15:11:16 org.apache.tomcat.util.digester.SetPropertiesRule begin

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.

 

跟蹤後發現是連線池的配置問題:

 

把debug="0"去除即可。

分析:tomcat的6.0.37這個版本中可能用別的屬性替代了debug功能。

 

6  Cacti監控tomcat的選項

Graph templates,總共就4個選項,如下:

 

 

點選監控項連線進去,看到RRDTool Says: ERROR: invalid y-grid format報錯資訊,

解決辦法是:

進右上角的連線*Edit Graph Template --&gt Tomcat - Connection Rate --&gt Unit Grid Value (--unit/--y-grid),預設的值為1,去掉改成為0即可。

同理解決Tomcat - Heap Statistics 不出圖的問題 將1048576 值改空即可。

之後如果10分鐘內還是出不了圖,那麼可以繼續等待,tomcat監控模板出圖時間比較漫長,我這裡等待了3個小時候後,圖出來了,如下所示:

1) Tomcat - Connection Rate     :連線效率

2) Tomcat - Heap Statistics      : JVM堆得使用情況

 


3) Tomcat - Thread Statistics    :執行緒狀態

 

4) Tomcat – Throughput        :Tomcat吞吐量

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26230597/viewspace-1178493/,如需轉載,請註明出處,否則將追究法律責任。

相關文章