Cacti监控Tomcatserver实现过程
1 首先去官网上面下载通用的监控模板
一般使用TomcatStats-0.1.zip 模板居多,下载地址:
http://forums.cacti.net/download/file.php?id=12310,
在linuxserver上面使用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到linuxserver上就可以。
然后解压缩得到3个文件cacti_host_template_tomcat_server.xml,INSTALL.txt,tomcatstats.pl 3个文件。
2 在cacti主server的网址上面导入模板
打开cactiserver的网址:
进入http://10.xx.1.xx/cacti/index.php->Console –> Templates -> Import Templates ,选择文件导入(cacti_host_template_tomcat_server.xml)文件,选择Importbutton载入tomcat模板。

3 cactiserver端载入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端tomcatserver的配置调整
在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 服务
去cactiserver端运行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吞吐量

Cacti监控Tomcatserver实现过程的更多相关文章
- Cacti监控MySQL实现过程中碰到的问题解汇总
前言:cacti监控mysql服务器的大概50张graphs都弄出来了,也出图了,当中遇到一些问题,印象比較深刻的记录例如以下: (一):加入io监控 点击Create Graphs for this ...
- Cacti监控Redis实现过程
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监測图形分析工具.被广泛的用于对server的运维监控中,Cacti提供了一种插件式的管理.仅仅要按要求写好特定的模板,那 ...
- Cacti监控mysql数据库服务器实现过程
Cacti监控mysql数据库服务器实现过程 2014-05-29 0个评论 来源:Cacti监控mysql数据库服务器实现过程 收藏 我要投稿 1 先在cacti服务器端安 ...
- cacti监控windows服务器
参考文献: 通过Cacti监控windows资源 前提条件 一.已安装好Cacti:ubuntu下cacti安装配置 二.准备好以下安装文件: Cacti_SNMP_ ...
- Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)
Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建) 具体案例:局域网内有两台主机,一台Linux.一台Windows,现在需要配置一台Cacti监控服务器对这两台 ...
- cacti监控
cacti监控 cacti简介 Cacti是一套基于php,mysql,snmp及rrdtool开发的网络流量监测图形分析工具.它通过snmpget获取数据,使用rrdtool绘画图形 Cacti轮询 ...
- cacti监控juniper路由器
之前也没有写过博客,但是最近一直在做监控.从网上查找很多资料都还是感觉差一点.所以自己添加一份我在cacti监控路由器的步骤. 环境,ubuntu14.04,apt-get install cacti ...
- cacti监控mysql
cacti监控mysql 2013-09-25 16:21:43 分类: LINUX 原文地址:cacti监控mysql 作者:baochenggood cacti监控mysql 1 下载cacti监 ...
- Cacti监控Windows主机,Windows主机的正确配置
使用cacti监控Windows主机的时候经常遇到无法获取Windows主机的snmp信息和Windows主机的硬件信息,主要原因是Windows主机没有正确配置snmp,以下是正确的配置步骤:1.安 ...
随机推荐
- poj1189 简单dp
http://poj.org/problem?id=1189 Description 有一个三角形木板,竖直立放.上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周 ...
- 4. Qt的容器类
Qt提供来一组通用的基于模板的容器类. 一. QList类,QLinkedList类 和 QVector类 QList类.QLinkedList类和QVector类常常使用到的Q ...
- 数据和C
整数就是没有小数部分的数,在C中小数点永远不会出现在整数中.例如2,-24,2456都是整数,整数以二进制存储,例如7的二进制表示为111,在8位的字节中存储它的前5位为0,将后3位置1. 浮点数即加 ...
- 在VC下显示JPEG、GIF格式图像的一种简便方法
在VC下显示JPEG.GIF格式图像的一种简便方法 一. 引言 JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛 ...
- VS2005 MFC 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal err ...
- TFS2010安装与管理
整了几天TFS,把相关的一些配置与安装的要点简单记下,希望对大家有用.本篇主要是安装与配置上的内容,下一篇会介绍如何使用以及使用方面的相关心得体会. 本篇内容简要: 1. 安装部署 1.1. 流 ...
- uva 357 Let Me Count The Ways(01背包)
题目连接:357 - Let Me Count The Ways 题目大意:有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 解题思路:和uva674是一 ...
- 用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)--生成SSL证书请求
在上个章节中,我们提到了怎样安装XCA(X Certificate and key management)程序.这个章节我们開始正式介绍怎样用XCA生成证书请求.假设大家用过java的话.肯定知道jd ...
- Swift - 类扩展(extension)
Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如下事情: 1,给已有的类添加计算属性和计算静态属性 2,定义新的实例方法和类方法 3,提供新的构造器 4,定义下标脚本 5,是一个已有的 ...
- C语言实现通用数据结构的高效设计
近期在阅读一个开源的C++代码.里面用到了大量的STL里面的东西.或许是自己一直用C而非常少用C++来实现算法的原因.STL里面大量的模板令人心烦.一直对STL的效率表示怀疑,但在网上搜到这样一个帖子 ...