环境:html
tomcat:apache-tomcat-7.0.35 apache
cactiEZ:10.1vim
系统:centos5.6_x64centos
1、配置tomcat服务器tomcat
一、添加帐号bash
vim tomcat-users.xml服务器
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="123" roles="manager-script,manager-jmx,manager-status"/>
重启tomcatjvm
二、安装snmp协议ide
yum -y install net-snmp测试
vim /etc/snmp/snmpd.conf
com2sec notConfigUser default public
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
view all included .1 80
access notConfigGroup "" any noauth exact all none none
/etc/rc.d/init.d/snmpd restart
三、测试snmp
测试本机:snmpwalk -c public -v 2c localhost
测试远程主机:snmpwalk -V 2c -C public -H 192.168.1.133 -L
2、配置cactiEZ
安装 XML::Simple模块
安装方法: (perl -MCPAN -e "install XML::Simple")
3、下载模板,导入模板
一、载监控tomcat的模板
TomcatStats-0.1.zip
二、修改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;否则在你导入以后极可能出现数据出不来。
四、导入模板(cacti_host_template_tomcat_server.xml)
进入cacti --< Console(控制台) ---< Import Templates(导入模板)
五、上传监控脚本
将tomcatstats.pl上传放到cactiEZ服务器的/var/www/html/scripts目录下。
4、测试脚本
#/usr/bin/perl tomcatstats.pl 192.168.1.201:8080 admin 123 \"http-bio-8080\"
jvm_memory_free:9029383656 jvm_memory_max:9963962368 jvm_memory_total:9963962368 connector_max_time:75 connector_error_count:4 connector_bytes_sent:14896 connector_processing_time:104 connector_request_count:7 connector_bytes_received:0 connector_current_thread_count:11 connector_max_threads:1000 connector_current_threads_busy:1 [root@CactiEZ scripts]#
一、若是提示:-bash: ./tomcatstats.pl: /usr/bin/perl^M: bad interpreter: No such file
编辑tomcatstats.pl,将首行改成:#!/usr/bin/perl -w (加上-w)
二、若是提示:File does not exist: at ./tomcatstats.pl line 21(21行是:my $status = XMLin($xml);)
说明没法获得远程tomcat服务器数据,检查tomcat配置的用户是否生效。
三、若是输出只有jvm数据,如:
jvm_memory_free:9441488 jvm_memory_max:85196800 jvm_memory_total:23777280 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: [root@CactiEZ scripts]
则要注意测试命令和tomcat版本。
网上朋友解释为:
Tomcat7的默认的http的connector名称为http-bio-8090,tomcat6的是http-8080,并且tomcat的http-bio-8090的双引号在perl中要转义才能被解析,不然出现只有jvm相关数据,其余connector没有数据。
5、配置cactiEZ
进入cacti---< console (控制台)--< Data Input Methods(数据输入方法) ---< Tomcat Status
修改Input String(输入字符串)
perl <path_cacti>/scripts/tomcatstats.pl <hostname>:8444 admin passwords http-8080
修改成:
perl <path_cacti>/scripts/tomcatstats.pl <hostname>:8080 admin 123 \"http-bio-8080\"