Cacti监控Tomcat服务器实现过程

标签: cacti 监控 tomcat | 发表时间:2014-06-09 00:21 | 作者:mchdba
出处:http://blog.csdn.net

1 首先去官网上面下载通用的监控模板

一般使用TomcatStats-0.1.zip 模板居多,下载地址:

http://forums.cacti.net/download/file.php?id=12310

在linux服务器上面使用wget下载,wget  http://forums.cacti.net/download/file.php?id=12310,报如下错误:

正在连接 forums.cacti.net|173.225.179.10|:80... 已连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:http://forums.cacti.net/ [跟随至新的 URL]

已超过 20 次重定向。

 

可以在windows7的google浏览器上输入 http://forums.cacti.net/download/file.php?id=12310点击回车下载,然后通过SecureFX客户端工具scp到linux服务器上即可。

然后解压缩得到3个文件cacti_host_template_tomcat_server.xml,INSTALL.txt,tomcatstats.pl 3个文件。

 

2 在cacti主服务器的网址上面导入模板

打开cacti服务器的网址:

进入 http://10.xx.1.xx/cacti/index.php->Console –> Templates -> Import Templates ,选择文件导入(cacti_host_template_tomcat_server.xml)文件,选择Import按钮加载tomcat模板。

3 cacti服务器端加载tomcatstats.pl统计脚本

将解压缩TomcatStats-0.1.zip 得到的tomcatstats.pl 放到/var/www/html/cacti/scritps 目录下,并且赋予执行权限

Chown –R apache.apache tomcatstats.pl

chmod 755 tomcatstats.pl

修改tomcatstats.pl,大概第20行,将

1.      my $xml = `GET $url`;

修改为

1.      my $xml = `wget -qO - $url`;

不然在你导入之后很可能出现数据出不来。

Check URL连接是否正确

Vim tomcatstats.pl 后,在第17行后面添加print $url,在控制台打出url,如下所示:   

my $url = "http://$username:$password"."\@$host/manager/status?XML=true";

print $url;

print “   ”;

 

然后用perl来check下统计脚本,如下:

[root@squid-2 scripts]# perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' '9ssspw '  http-9444  

http://tomcat:tomcat0401@10.xx.3.xx:9444/manager/status?XML=true   jvm_memory_free:2925944104 jvm_memory_max:3892314112 jvm_memory_total:3892314112 connector_max_time:131 connector_error_count:4464 connector_bytes_sent:19559190 connector_processing_time:11552 connector_request_count:8931 connector_bytes_received:0 connector_current_thread_count:4 connector_min_spare_threads: connector_max_threads:150 connector_max_spare_threads: connector_current_threads_busy:1


也可以在windows7的google浏览器里面,输入上面URL,也会出现很多tomcat的统计信息,如下所示:


 

4 修改cacti中tomcat获取数据的url地址

进入cacti---> console ---> Data Input Methods --->Tomcat Status

修改Input String 中字段

修改为:perl <path_cacti>/scripts/tomcatstats.pl <hostname>:8080 tomcat 9ssspw  http-8080

注意:替换上面的username 和password 为实际的tomcat 管理员账号和密码。

要开启tomcat 的manager 管理员账号 附件内有Enable the Tomcat manager application 介绍,如下图:


 

5 web端tomcat服务器的配置调整

在tomcat/conf/server.xml 里面添加如下:

<Service name="Admin">

        <Connector port="9444" 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="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/conf/tomcat-users.xml里面 添加

<role rolename="manager-gui"/>

<user username="tomcat" password="9ssspw " roles="manager-gui"/>

passwords 为连接密码 可自行更改,然后重启tomcat 服务

 

去cacti服务器端执行perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' '9ssspw '  http-9444 check统计脚本是否能取到tomcat的数据,有数据即正常,如下所示:

[root@squid-2 scripts]# /usr/bin/perl tomcatstats.pl 10.xx.3.xx:9444 'tomcat' 'xxx’  http-9444

http://tomcat:tomcat0401@10.254.3.29:9444/manager/status?XML=true   jvm_memory_free:3409129096 jvm_memory_max:3892314112 jvm_memory_total:3892314112 connector_max_time:131 connector_error_count:2 connector_bytes_sent:20241 connector_processing_time:168 connector_request_count:5 connector_bytes_received:0 connector_current_thread_count:4 connector_min_spare_threads: connector_max_threads:150 connector_max_spare_threads: connector_current_threads_busy:1

[root@squid-2 scripts]#

 

记录debug期间的报错信息如下:

[root@squid-2 scripts]# perl tomcatstats.pl 10.xx.3.xx:9300 admin 9ssspw  http-9300

Can't locate XML/Simple.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at tomcatstats.pl line 7.

BEGIN failed--compilation aborted at tomcatstats.pl line 7.

 

需要安装XML::Simple

[root@squid-2 ~]# find / -name cpan

/usr/bin/cpan

[root@squid-2 ~]# /usr/bin/cpan XML::Simple

……

Prepending /root/.cpan/build/XML-Simple-2.20-7zpaOY/blib/arch /root/.cpan/build/XML-Simple-2.20-7zpaOY/blib/lib to PERL5LIB for 'install'

Installing /usr/local/share/perl5/XML/Simple.pm

Installing /usr/local/share/perl5/XML/Simple/FAQ.pod

Installing /usr/local/share/man/man3/XML::Simple.3pm

Installing /usr/local/share/man/man3/XML::Simple::FAQ.3pm

Appending installation info to /usr/lib64/perl5/perllocal.pod

  GRANTM/XML-Simple-2.20.tar.gz

  /usr/bin/make install  -- OK

Warning (usually harmless): 'YAML' not installed, will not store persistent state

 

继续报错File does not exist:  at tomcatstats.pl line 20

[root@squid-2 scripts]# /usr/bin/perl tomcatstats.pl 10.254.3.29:9300 tomcat xxx   http-9300

File does not exist:  at tomcatstats.pl line 20

需要安装如下组件:

[root@squid-2 scripts]#yum install perl-HTML-Parser.i386 perl-HTML-Tagset.noarch perl-libwww-perl.noarch perl-URI.noarch

 

之后启动tomcat报错如下:

[tomcat@web-9 logs]$ cat catalina.out

2014-6-6 15:11:15 org.apache.catalina.core.AprLifecycleListener init

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_45/jre/lib/amd64/server:/usr/java/jdk1.6.0_45/jre/lib/amd64:/usr/java/jdk1.6.0_45/jre/../lib/amd64:/usr/local/lib::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

2014-6-6 15:11:16 org.apache.tomcat.util.digester.SetPropertiesRule begin

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.

 

跟踪后发现是连接池的配置问题:

<Context path="/n" docBase="server/webapps/manager " debug="0" reloadable="true" crossContext="false"> 

把debug="0"去除即可。

分析:tomcat的6.0.37这个版本中可能用别的属性替代了debug功能。

 

6  Cacti监控tomcat的选项

Graph templates,总共就4个选项,如下:


 

 

点击监控项连接进去,看到RRDTool Says: ERROR: invalid y-grid format报错信息,

解决办法是:

进右上角的连接*Edit Graph Template --> Tomcat - Connection Rate --> Unit Grid Value (--unit/--y-grid),默认的值为1,去掉改成为0即可。

同理解决Tomcat - Heap Statistics 不出图的问题 将1048576 值改空即可。

之后如果10分钟内还是出不了图,那么可以继续等待,tomcat监控模板出图时间比较漫长,我这里等待了3个小时候后,图出来了,如下所示:

1) Tomcat - Connection Rate     :连接效率



2) Tomcat - Heap Statistics      : JVM堆得使用情况

 


3) Tomcat - Thread Statistics    :线程状态


 

4) Tomcat – Throughput        :Tomcat吞吐量


作者:mchdba 发表于2014-6-8 16:21:16 原文链接
阅读:104 评论:0 查看评论

相关 [cacti 监控 tomcat] 推荐:

Cacti监控Tomcat服务器实现过程

- - CSDN博客系统运维推荐文章
1 首先去官网上面下载通用的监控模板. 一般使用TomcatStats-0.1.zip 模板居多,下载地址:. 在linux服务器上面使用wget下载,wget  http://forums.cacti.net/download/file.php?id=12310,报如下错误:. 正在连接 forums.cacti.net|173.225.179.10|:80... 已连接.

[Cacti] memcache安装运行、cacti监控memcache实战

- - CSDN博客系统运维推荐文章
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力. Memcache官方网站:http://memcached.org/. 下载地址:  http://www.memcached.org/downloads,我们线上使用的比较稳定的版本是1.4.15,如果官网找不到以前的版本了,可以去我的csdn资源里面下载此版本,下载地址:.

使用Cacti监控MongoDB和Redis

- Wang Dong - NoSQLFan
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 被广泛的用于对服务器的运维监控中,Cacti提供了一种插件式的管理,只要按要求写好特定的模板,那么你就可以对任何服务进行流量监控. 本文就是要为大家介绍两个模板,分别是MongoDB和Redis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控.

Cacti监控的安装与配置

- - 寒江孤影
Cacti是一个非常好的网络监控工具,利用php语言实现其功能,Cacti通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数. 它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.

[Cacti] mongodb性能监控实战

- - CSDN博客数据库推荐文章
          为了更好的使用mongodb,需要监控出mongodb的一些基础使用情况,比如Flush数、连接数、内存使用率、Index操作,Slave延迟等等,这些可以通过配置cacti监控mongodb的模板来完成. 1,在cacti界面导入模板 在计算机本地,下载此tgz包:http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz.

Cacti监控Redis实现过程

- - BlogJava-qileilove
 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 被广泛的用于对服务器的运维监控中,Cacti提供了一种插件式的管理,只要按要求写好特定的模板,那么你就可以对任何服务进行流量监控. 本文就是要为大家介绍两个模板,分别是MongoDB和Redis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控.

用LambdaProbe监控Tomcat

- - Java - 编程语言 - ITeye博客
Lambda Probe(以前称为Tomcat Probe)是一款实时监控和管理的Apache Tomcat实例的基本工具. Lambda Probe 是基于 Web + AJAX 的强大的免费开源工具,可以用来实时管理一个单独的host. LambdaProbe拥有几乎所有Tomcat Manager的功能,可以说是一个增强版本的 Tomcat Manager.

配置 CACTI 监控 MySQL 数据库状态

- - CSDN博客数据库推荐文章
   MySQL 自身在性能监测方面很不给力、这是令许多 MySQL DBA 夜夜辗转难眠、.    幸运的是、通过 Cacti 监测(注意是监测而非监控)MySQL 数据库状态.    借助 cacti+rrdtool 强大的绘图功能、加上专用的 mysql 模板、能够灵活快速的创建对多个 MySQL 实例的监测.

Cacti监控MySQL实现过程中碰到的问题解汇总

- - CSDN博客系统运维推荐文章
前言:cacti监控mysql服务器的大概50张graphs都弄出来了,也出图了,其中遇到一些问题,印象比较深刻的记录如下:. 点击Create Graphs for this Host 进去创建IO的图,结果报错. 进入 *Turn On Graph Debug Mode模式,报错如下:. ERROR: invalid rpn expression in: a,8,*,如下图所示.

监控Tomcat方案调研(监控应用服务器系列文章一)

- - 博客园_首页
前言: 最近在做一个监控应用服务器(Tocmat、WebSphere、WebLogic)的项目,目前已小有规模,回头看看,一路走来,也算是磕磕绊绊,遇到过种种问题,走过不少弯路,不过程序员最不怕的就是遇到问题——有什么问题就解决什么问题. 为了给后来人留下点经验之谈,助之少走弯路,特意把这些经验整理出来,与大家分享.