環境: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\"