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