cacti監控tomcat

環境:

tomcat:apache-tomcat-7.0.35

cactiEZ:10.1

系統:centos5.6_x64


一、配置tomcat服務器

1、添加賬號

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"/>

重啓tomcat

2、安裝snmp協議

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

3、測試snmp

測試本機:snmpwalk -c public -v 2c localhost

測試遠程主機:snmpwalk  -V 2c -C public -H 192.168.1.133 -L

二、配置cactiEZ

安裝 XML::Simple模塊

安裝方法: (perl -MCPAN -e "install XML::Simple")

三、下載模板,導入模板

1、載監控tomcat的模板

TomcatStats-0.1.zip

2、修改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;不然在你導入之後很可能出現數據出不來。

4、導入模板(cacti_host_template_tomcat_server.xml)

進入cacti --< Console(控制檯) ---< Import Templates(導入模板)

5、上傳監控腳本

將tomcatstats.pl上傳放到cactiEZ服務器的/var/www/html/scripts目錄下。

四、測試腳本

#/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]#

1、如果提示:-bash: ./tomcatstats.pl: /usr/bin/perl^M: bad interpreter: No such file

編輯tomcatstats.pl,將首行改爲:#!/usr/bin/perl -w (加上-w)

2、如果提示:File does not exist:  at ./tomcatstats.pl line 21(21行是:my $status = XMLin($xml);)

說明無法得到遠程tomcat服務器數據,檢查tomcat配置的用戶是否生效。

3、如果輸出只有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沒有數據。

五、配置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\"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章