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时就可以出现图像了