CactiEZ安装tomcat监控模板
本文旨在记录这次实践的过程。
?
CactiEZ基于CentOS6.0,中文版官方在CactiEZ 中文版,安装过程参见官网。
?
下载tomcatstats,在该板块下载:http://forums.cacti.net/about19744.html,跟本文附件是同一个。
?
如果是从本文提供的地址下载的tomcatstats,请额外进行如下操作:
解压后得到3个文件,其中tomcatstats.pl的文件编码必须修改为UTF-8,因为在后面可能会遇到问题,可以在windows下用editplus修改后重新保存。
?
登入cacti,在控制台—>导入/导出—>导入模板,浏览文件选中cacti_host_template_tomcat_server.xml并上传。
?
保存之后即可在模板—>主机模板查看到新添加的模板:Tomcat Server。
?
继续,将刚才的tomcatstats.pl上传至/var/www/html/scripts/目录下面。如果cacti修改了默认位置,请上传至相应scripts目录。注意上次后修改该文件的可执行权限和所属用户、所属组,命令如下。
chmod +x /var/www/html/scripts/tomcatstats.plchown apache /var/www/html/scripts/tomcatstats.plchgrp apache /var/www/html/scripts/tomcatstats.pl??
tomcatstats解压后有一个INSTALL.txt文件,该文件详细记录了安装过程,以下步骤部分引用该文件中的内容,如果对cacti不熟悉或是首次配置tomcat模板,请严格按照安装说明进行操作,不要轻易修改或跳过某一步。
?
首先,在目标tomcat服务器的server.xml文件中(一般在CATALINA_HOME/conf/目录下,#CATALINA_HOME#表示你的tomcat安装目录)添加如下代码在默认的<Service name="Catalina">标签结束以后,即有两个service段。
<Service name="Admin"> <Connector port="8444" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> <Engine name="Admin" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="localhost" appBase="server/webapps" unpackWARs="false" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false"> <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="logs" prefix="admin_access_log." suffix=".txt" pattern="combined" resolveHosts="false" fileDateFormat="yyy-MM-dd"/> <Context path="/manager" cookies="false" docBase="server/webapps/manager" debug="0" privileged="true" reloadable="false" /> </Host> </Engine> </Service>?
然后,添加tomcat manager管理用户,增加如下xml片段至CATALINA_HOME/conf目录下的tomcat-users.xml文件中的<tomcat-users>标签内。
<user username="admin" password="passwords" roles="admin,manager" />
?
重启tomcat服务器(通常linux下的启动tomcat的程序在CATALINA_HOME/bin/catalina.sh)。
在浏览器中打开
http://IP:port/manager/status
进入tomcat manager管理后台,输入刚才设定的用户名/密码:admin/passwords。
另外打开
http://IP:port/manager/status?XML=true
以确保tomcat能够输出xml格式的服务器信息。
?
以下的安装过程参见:http://qubaoquan.blog.51cto.com/1246748/292589
?
安装 XML::Simple:(为什么要安装这个?因为cacti是通过接受tomcat生成的一个包含服务器jvm等信息的xml流来解析数据并生成图,所以需要XML相关的perl模块,此外还需要XML::Parser、XML::SAX)
?
在CactiEZ中安装可能比较麻烦,因为该系统默认安装的perl并不完整,因此可能无法自动获取到一些安装信息。
?
1.按照#cacti监控tomcat示例#该文的说明,安装XML::Simple的命令是:perl -MCPAN -e"install XML::Simple"
(必须确保能进入CPAN shell才能安装XML::Simple),但是我在CactiEZ中使用该命令安装的时候却提示错误信息:
Can't locate CPAN.pm in @INC
?
2.找到该文:http://xgvod.net/post/12.html,根据文中的说法,必须先安装CPAN,而且无法在线安装,只能下载安装包安装。官网在这里:
http://search.cpan.org/~andk/CPAN/lib/CPAN.pm
写本文时的最新稳定版下载地址是:http://search.cpan.org/CPAN/authors/id/A/AN/ANDK/CPAN-1.9800.tar.gz
解压后执行:perl Makefile.PL && make && make install
希望你进行这一步时没有出错,然而我却出错了-_-
错误信息:
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains
?
3.OK,我们继续来到这里:
http://search.cpan.org/~mschwern/ExtUtils-MakeMaker-6.54/lib/ExtUtils/MakeMaker.pm
目前的最新版是:(本文附件中的版本)
http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.54.tar.gz
同样的安装方法,继续报错。。。
make: command not found
额,make没安装,那就安装吧,yum install -y make
make装好了却编译时报错:
make: *** No rule to make target `/usr/lib/perl5/CORE/config.h'
?
4.那就看看这里吧:(make失败的原因是perl安装不完整,CactiEZ中安装的perl只包含了核心模块)
http://perl.apache.org/docs/1.0/guide/troubleshooting.html#C_No_rule_to_make_target_____CORE_config_h_
根据他的说法,我们先来安装Perl-devel吧:yum install -y perl-devel
安装完后重新make果然正确执行了(至少我谢天谢地了。。)
?
5.好的ExUtils安装完成了,你可以回到前面去安装CPAN了。
现在安装CPAN如果还有错误,参考一下这里吧:
http://haply.info/index.php/2011/05/23/cant-locate-lwpuseragent-pm/
?
6.安装完ExUtils之后再安装CPAN就没什么问题了,但是有一点小警告:
Warning: prerequisite HTTP::Tiny 0.005 not fount.
Warning: prerequisite Test::More 0 not fount.
可以不用管它。
?
然后再安装XML::Simple:
-1.首先他会提示你是否安装默认的方式配置CPAN,[yes]按enter就行。
-2.然后他会告诉你是否要自动帮你选择合适的mirror下载安装镜像源:
Would you like me to automatically choose some CPAN mirror sites for you?
-3.这时候应该注意了,别指望他会自动为你找到最好的,选择一个mirror去安装,果断选no。
-4.然后他会问你是否从默认的mirror列表中选择,好吧,yes,enter就行了。
-5.接下来他会问你是否从本地缓存的列表中查询,这里就要点否了,因为本地的数据大多是过期而且无效的。
Shall I use the cached mirror list?
-6.然后他会下载一份最新的mirror列表。(可以选择地区,如Asia;还可以进一步选择国家,如China;最后还可以选择mirror,看到熟悉的sohu、163随便你选了)
?
7.有可能还是会安装失败(尝试再次执行perl -MCPAN -e"install XML::Simple")。如果看到这样的错误信息:
Tests succeeded but one dependency not OK (XML::SAX::Expat) GRANTM/XML-Simple-2.18.tar.gz [dependencies] -- NARunning make install make test had returned bad status, won't install without force
大意是没有XML::Parser~难道还要去安装解析器?
参考:http://www.techiecorner.com/1839/cpan-error-make-test-had-returned-bad-status-wont-install-without-force/
然后进入perl -MCPAN -e shell,即所谓的CPAN shell,然后执行force install XML::Simple
安装完成CPAN之后再回到第一步去安装XML::Simple吧!
?
8.测试:进入到CACTI_HOME/scripts/,执行perl?tomcatstats.pl 127.0.0.1:8080 admin passwords http-8080
是否会出现类似这样的信息呢(详见tomcatstats的INSTALL.txt中)?
./tomcatstats.pl app1:8444 admin passwords http-8080 jvm_memory_free:205377864 jvm_memory_max:954466304 jvm_memory_total:301203456 connector_max_time:1015226 connector_error_count:2243 connector_bytes_sent:1599068002 connector_processing_time:9931650 connector_request_count:89363 connector_bytes_received:7268740 connector_current_thread_count:4 connector_min_spare_threads:0 connector_max_threads:150 connector_max_spare_threads:0 connector_current_threads_busy:1?
如果看到类似这样的错误信息的话:/usr/bin/perl^M: bad interpreter: No such file or directory
很遗憾,你得回到本文的开头部分去修改tomcatstats.pl这个文件的编码格式了。
参考:
-1>http://www.genepeng.cn/index.php/106
-2>http://forums.devshed.com/perl-programming-6/usr-bin-perl-m-bad-interpreter-no-such-file-or-826132.html
?
9.如果看到这个:
sh: GET: command not found
File does not exist: ?at tomcatstats.pl line 20
先去看看这里http://www.51cacti.cn/thread-328-1-1.html
然后试试这个:yum install perl-libwww-perl
?
10.然后继续执行刚才的tomcatstats.pl,如果出现了JVM信息,那就OK了,否则的话,可能是没有XML解析器XML:Parser,就是刚才忽略掉的那个错误。
可以去官网下载来编译安装:http://search.cpan.org/~msergeant/XML-Parser-2.36/Parser.pm
也可以在线安装:perl -MCPAN -e"install XML::Parser"或先进入CPAN shell:perl -MCPAN -e shell,
然后安装install XML:Parser
安装过程继续报错,已经习惯了,错误最后比较明显的告诉你是没有编译器:
Couldn't find your C compiler
?
11.安装gcc吧(参考http://forums.whirlpool.net.au/archive/1084255):yum install -y gcc,装完之后重新安装XML::Parser,这回仍旧是很多错误啊,大量的以”Expat.xs:“开头的错误(有一部分还是乱码),末行是:
Can't test without successful make Running make install make had returned bad status, install seems impossible
没必要安装了?不是吧。。很伤心啊~参考下面的东东:
-1>http://cpanforum.com/threads/502
-2>http://www.howtoforge.com/forums/showthread.php?t=3256
-3>http://www.perlmonks.org/?node_id=901170
其中第3个链接告诉了你接下来怎么做:安装expat-devel:yum intall expat-devel
装完之后你就可以正确的安装Perl-XML-Parser了,虽然还会有大量的警告~
?
P.S.不管怎样,当你看到tomcatstats.pl输出了正确的信息,你的工作就基本完成了。
如果看到这个警告:could not find ParserDetails.ini in /usr/local/share/perl5/XML/SAX
看到这里:http://hi.baidu.com/rosachian/blog/item/b4aaca2c6758ce39359bf712.html
并执行这个:perl -MXML::SAX -e "XML::SAX->add_parser('XML::SAX::PurePerl')->save_parsers()"
?
EOF.最后新建主机很简单的、参考#cacti监控tomcat示例#吧。