Cacti虽然有很多版本,但是对于英文比较弱的同用起来困难还是挺大的!终于等到CactiEZ V10.1中文版出来了,里面集成了好多的监控模板。直接下载一键安装安装就可以,方便、快捷。非常适合初学cacti的同学们,(我就是这个水平啦~~~)非常感谢这个版本系统的研发者郑峰给我们提供的这个系统。
比较遗憾的就是没有我现在所需的监控tomcat的模板,需要自己来添加。只好自己在网上找教程安装,可以说是经历了重重地困难才安装完成,非常感谢Robin提供的无私帮助。(以下配置过程根据Robin文章整理)
环境:
CactiEZ V10.1 中文版
里面有详细的安装和使用介绍
1. 下载监控tomcat模板
2. 配置监控服务器 Tomcat 的 conf 目录下的 conf/tomcat-users.xml 文件,添加如下内容:
<user username=”admin” password=”passwords” roles=”admin,manager”/>
重启 Tomcat 服务
3. 在浏览器中浏览如下地址:
http://admin:passwords@IP:端口/manager/status?XML=true
浏览器会显示相应的 Tomcat 状态信息,如下所示:
Tomcat Status
JVM: free:11466816 total:16318464 max:259522560
Connector — http-8080
threadInfo maxThreads:200 minSpareThreads: maxSpareThreads: currentThreadCount:4 currentThreadsBusy:1
requestInfo maxTime:797 processingTime:5711 requestCount:570 errorCount:51 bytesReceived:0 bytesSent:1228726
复制 tomcatstats.pl 脚本文件到 cacti/scripts/ 路径下,并修改相应的文件权限。
chown apache:apache tomcatstats.pl
-rwxr-xr-x 1 apache apache 1931 Aug 29 15:41 tomcatstats.pl
4. 保安装了需要的 XML::Simple:(为什么要安装这个?因为cacti是通过接受tomcat生成的一个包含服务器jvm等信息的xml流来解析数据并生成图,所以需要XML相关的perl模块)模块,如果你的 cacti 服务的主机可以访问外网,那么请在 Shell 下输入以下命令安装:
perl -MCPAN -e”install XML::Simple”
在CactiEZ中安装可能比较麻烦,因为该系统默认安装的perl并不完整,因此可能无法自动获取到一些安装信息。
按照#cacti监控tomcat示例# 该文的说明,安装XML::Simple的命令是:perl -MCPAN -e"install XML::Simple"
(必须确保能进入CPAN shell才能安装XML::Simple),但是我在CactiEZ中使用该命令安装的时候却提示错误信息:
Can't locate CPAN.pm in @INC
郁闷呐,找到该文:http://xgvod.net/post/12.html ,根据文中的说法,无法在线安装CPAN,必须下载安装包安装,官网在这里:
http://search.cpan.org/~andk/CPAN/lib/CPAN.pm
5. 写本文时的最新稳定版下载地址是:
wget http://search.cpan.org/CPAN/authors/id/A/AN/ANDK/CPAN-1.9600.tar.gz
tar zxvf CPAN-1.9600.tar.gz
cd CPAN-1.9600
解压后执行:perl Makefile.PL && make && make install
希望你进行这一步时没有出错,然而我却出错了-_-
错误信息:
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains
6. OK,我们继续来到这里:
http://search.cpan.org/~mschwern/ExtUtils-MakeMaker-6.54/lib/ExtUtils/MakeMaker.pm
目前的最新版是:(本文附件中的版本)
wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.54.tar.gz
tar zxvf ExtUtils-MakeMaker-6.54.tar.gz
cd ExtUtils-MakeMaker-6.54
同样的安装方法,继续报错。。。
make: command not found
额,make没安装,那就安装吧
yum install -y make
make装好了却编译时报错:
make: *** No rule to make target `/usr/lib/perl5/CORE/config.h'
那就看看这里吧:(make失败的原因是perl安装不完整,CactiEZ中安装的perl只包含了核心模块)
7. 根据他的说法,我们先来安装Perl-devel吧:yum install -y perl-devel
回到cd CPAN-1.9600
perl Makefile.PL && make && make install
安装ExUtils省略。因为上步已经安装过了
执行:perl -MCPAN -e"install XML::Simple"
====================================================================
参考此段
其实我在执行perl -MCPAN -e"install XML::Simple"时仍然遇到一点问题,首先他会提示你是否安装默认的方式配置CPAN,[yes]按enter就行,然后他会告诉你是否要选择一个mirror去安装,[yes]你仍然enter过去,结果就查询本地的旧mirror,安装失败,无法连接指定的mirrer。。。。大概就是这样的问题吧,正确的做法应该是在叫你选择mirror的时候输入no,然后他会继续提示你是否下载一份最新的mirror list,[yes]——>然后在最新的列表中去下载CPAN并安装,本地保存的那份列表其实是已经过期的数据,根本无法连接上。
第一次选yes,第二次选yes,第三次选no。然后出现一些站点,选163的镜像站点
=================================================================
8. XML::Simple到此安装完成
9. 复制tomcat脚本文件
我是直接从其他机器复制的,大家可以把下载的模板里面的“tomcatstats.pl”这个脚本复制到“/var/www/html/scripts/”目录下
scp root@10.8.210.111:/var/www/html/scripts/tomcats tats.pl /var/www/html/scripts/
10. 数据输入方法-- Tomcat Status--输入字符串
perl <path_cacti>/scripts/tomcatstats.pl 10.8.60.201:80 admin 密码 http-80
11. 测试:进入到cd /var/www/html/scripts/ 执行,还是报错
再执行一次
perl -MCPAN -e"install XML::Simple"
再执行
[root@CactiEZ scripts]# ./tomcatstats.pl 10.8.60.201:80 admin 密码 http-80
could not find ParserDetails.ini in /usr/local/share/perl5/XML/SAX
jvm_memory_free:1391441400 jvm_memory_max:4278190080 jvm_memory_total:4278190080 connector_max_time:16120594 connector_error_count:411143 connector_bytes_sent:43730464016 connector_processing_time:377354624 connector_request_count:2225844 connector_bytes_received:3661752777 connector_current_thread_count:512 connector_min_spare_threads:25 connector_max_threads:1024 connector_max_spare_threads:75 connector_current_threads_busy:438
OK,信息获取到了。说明XML::Simple安装成功了
12. 新添加tomcat主机监控模板
13. 安装完成并配置好tomcat模板之后,图正确的生成出来了,其他的数据也有。但是tomcat却没有一点数据,NULL?
Goog原因说cacti及spine存在bug需要打补丁了。
打先Cacti补丁:进入cacti源目录才能打补丁
在CactiEZ中没有patch命令,需要先安装:yum install patch
cd /var/www/html/
wget http://www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/html_output.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/ping.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch
patch -p1 -N < data_source_deactivate.patch
patch -p1 -N < graph_list_view.patch
patch -p1 -N < html_output.patch
patch -p1 -N < ldap_group_authenication.patch
patch -p1 -N < script_server_command_line_parse.patch
patch -p1 -N < ping.patch
patch -p1 -N < poller_interval.patch
14. 给spine打补丁
15. 下载:wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
下载:wget http://www.cacti.net/downloads/spine/patches/0.8.7g/unified_issues.patch
tar zxvf cacti-spine-0.8.7g.tar.gz
mv unified_issues.patch.1 cacti-spine-0.8.7g
[root@CactiEZ so]# cd cacti-spine-0.8.7g
[root@CactiEZ cacti-spine-0.8.7g]# patch -p1 -N < unified_issues.patch
安装gcc
[root@CactiEZ cacti-spine-0.8.7g]# yum install gcc
编译spine
[root@CactiEZ cacti-spine-0.8.7g]#./configure --prefix=/usr/local/spine
在编译过程中提示没有找到mysql头文件:
报错1:configure: error: Cannot find MySQL header files under /usr/include/mysql/
安装mysql-devel
yum install mysql-devel
报错2:configure: error: Cannot find SNMP header files under /usr/local/net-snmp
安装net-snmp-devel
yum install net-snmp-devel
没报错编译成功,开始安装
make&&make install
没报错终于安装成功拉O(∩_∩)O哈哈~
16. 试着运行spine看行不行?、
cd /usr/local/spine/bin/
./spine
开头显示
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.7g starting
17. 重启httpd后再查看tomcat是否有数据
service httpd restart
rrdtool info /var/www/html/rra/2/354.rrd
找tomcat监控对应的rrd文件(控制台—系统工具--查看采集器缓存),之前是空的都是NaN。
安装spine补丁并重新编译后就是这样啦
18.进入web再看tomcat就有数据了,终于大功告成。。。。。。
=============================================
监控tomcat7:
1.下载模板http://forums.cacti.net/about19744.html 上的TomcatStats-0.1.zip
wget http://forums.cacti.net/download/file.php?id=12310
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`;
3.将tomcatstats.pl上传放到cacti/scritps目录下;在cacti的控制台导入cacti_host_template_tomcat_server.xml模板
4.然后修改被监控tomcat7的配置文件,增加以下内容后重启tomcat7:
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="yourpassword" roles="manager-script,manager-gui"/>
5.进入cacti---> console (控制台)--> Data Input Methods(数据输入方法) ---> Tomcat Status-->Input String右侧输入框
perl <path_cacti>/scripts/tomcatstats.pl <hostname>:8080 tomcat yourpassword \"http-bio-8090\"
(如果8090测试不通,可以使用8080.)
注意:tomcat7默认的http的connector名称为http-bio-8090,tomcat6的是http-8080,
而且tomcat的http-bio-8090的双引号在perl中要转义才能被解析,否则出现只有jvm相关数据,其他connector没有数据
6.安装 XML::Simple,安装方法(perl -MCPAN -e"install XML::Simple")
这里还要安装perl的解析xml的模块SAX或者PARXER,这里我使用的是SAX的,wget http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-0.99.tar.gz
7.测试,在cacti的主机上执行
perl /usr/local/apache/htdocs/cacti/scripts/tomcatstats.pl RemoteIP:port tomcat yourpassword \"http-bio-8090\"
如果出现以下说明ok
jvm_memory_free:5186864 jvm_memory_max:255459328 jvm_memory_total:29429760 connector_max_time:30014 connector_error_count:16 connector_bytes_sent:83364 connector_processing_time:40360 connector_request_count:396 connector_bytes_received:37021 connector_current_thread_count:10 connector_min_spare_threads: connector_max_threads:200 connector_max_spare_threads: connector_current_threads_busy:1
8.如果图前面设置都正确,图没有出来,可以尝试把 Templates(模板) -->Graph Templates(图形模板)--(没有出来图的模板)-- Unit Grid Value (--unit/--y-grid) 中清空。
测试的过程中Tomcat - Connection Rate和Tomcat - Heap Statistics这两项出不来,清空或者是设为0时就可以出现图像了