您的位置:首页 > 运维架构

cacti监控jvm

2013-08-10 21:24 218 查看
Cacti是一套基于PHP,MySQL,Net-SNMP及RRDTool开发的网络流量监测图形分析工具。它通snmpget来获取数据,使用RRDtool绘画图形,提供了非常强大的数据和用户管理功能,同时也能增加模板,实现自定义系统状态检测。

Cacti所依赖的各个组件及其作用:

Apache2:web服务器

Net-snmp:用来获取远程主机的数据(数据采集)

rrdtool:存储采集的数据,绘图

Mysql:存储用户信息、模版及配置信息等

spine(可选):spine是一个cacti的轮询器(定时数据采集器),相比默认的cmd.php有更高的效率

Cacti安装(示例系统环境:Ubuntu12.04.2 LTS)

一、安装LAMP服务

$ sudo apt-get install apache2
$ sudo apt-get install mysql-server
$ sudo apt-get install php5

二、修改apache2默认根目录权限

$ sudo chmod 777 /var/www


三、安装NET-SNMP

通过Ubuntu软件源安装的net-snmp($ sudo apt-get install snmp snmpd)版本比网上的教程高,配置文件不一样,应此这里是到官网上下载较低版本http://downloads.sourceforge.net/project/net-snmp/net-snmp/EndOfLine/5.1.4.2/net-snmp-5.1.4.2.tar.gz,手动安装

$ tar -zxf net-snmp-5.1.4.2.tar.gz
$ cd net-snmp-5.1.4.2/
$ sudo apt-get install libperl-dev       							#net-snmp依赖包
$ ./configure


出现输入提示时除Defaultversion of SNMP to use选2其他可以直接回车采用默认

$ make
$ sudo make install
$ cp EXAMPLE.conf snmpd.conf
$ vim snmpd.conf


找到

#       sec.name  source          community
com2sec local     localhost       COMMUNITY
com2sec mynetwork NETWORK/24      COMMUNITY


改成

com2sec local     localhost       public
com2sec mynetwork 10.209.0.0/16   public


参数简介

sec.name:安全体名字

source:定义请求的来源,在net-snmp中对来源ip进行访问控制,可填具体ip地址或网段

community:共同体的名称

并在snmpd.conf文件末尾添加

proxy -v 2c -c public localhost:1161 .1.3.6.1.4.1.42


表示可以通过net-snmp代理访问jvm snmp

$ cd $JAVA_HOME/jre/lib/management
$ vim management.properties


找到

# com.sun.management.snmp.port=<port-number>


改成

com.sun.management.snmp.port=1161


找到

#com.sun.management.snmp.interface=0.0.0.0


去掉#

$ cp snmp.acl.template snmp.acl
$ vim snmp.acl								#配置JVM其允许通过snmp访问权限


找到

# acl = {
#  {
#    communities = public, private
#    access = read-only
#    managers = localhost
#  }
# }
#
#
# trap = {
#   {
#     trap-community = public
#     hosts = localhost
#   }
# }


去掉所有的#

$ chmod 600 management.properties snmp.acl


进入tomcat目录,修改其jvm启动参数

$ vim startup.sh


在文件前面添加(如果已配置JRE_HOME环境变量可不要第一行)

export JRE_HOME=$JAVA_HOME/jre
CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=1161 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export CATALINA_OPTS


添加tomcat用户,在conf/tomcat-users.xml添加

<user username="admin" password="123" roles="admin,manager"/>


$ ./startup.sh													#启动tomcat


在net-snmp-5.1.4.2目录启动snmpd服务,若先前已执行sudoapt-get install
snmp snmpd,则需要sudo /etc/init.d/snmpd stop

$ sudo snmpd -f -Lo udp:161 -C -c snmpd.conf  &				#后台运行snmpd服务


验证net-snmp是否正常工作

$ netstat -anutl
$ snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.42

能出现161和1161的端口,这表明net-snmp和jvm能监听snmp客户端请求

能出现jdk相关的信息,这表明可以通过net-snmp采集jvm相关数据

三、安装RRDTool

$ sudo apt-get install rrdtool


四、安装php模块

$ sudo apt-get install php5-mysql php5-cgi php5-cli php5-snmp php-pear


五、安装Cacti

下载cacti
http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz

$ mv cacti-0.8.8a.tar.gz /var/www				#将Cacti解压到apache2默认根目录
$ cd /var/www
$ tar xzf  cacti-0.8.8a.tar.gz
$ mv cacti-0.8.8a cacti
$ rm cacti-0.8.8a.tar.gz


创建cacti数据库

$ cd /var/www/cacti
$ mysqladmin -u root -p create cacti
$ mysql -u root -p cacti < cacti.sql

配置cacti数据库连接

$ vim /var/www/cacti/include/config.php

修改数据库连接变量值

六、运行Cacti

实现cacti定时采集数据

$ crontab -e

选择某一编辑器后在末尾添加
*/5 * * * * /usr/bin/php /var/www/cacti/poller.php &> /dev/null
表示每隔5分钟执行一次脚本进行数据采集
重启apache2服务

$ sudo /etc/init.d/apache2 restart


访问http://localhost/cacti/

出现设置页面,保持默认设置,默认用户名是admin,密码是admin

七、使用Cacti监控Tomcat

下载Tomcat模板 http://vdisk.weibo.com/s/yczLV
解压至某一目录

修改tomcatstats.pl,将my $xml = `GET $url`修改为my
$xml = `wget -qO - $url`

输入http://127.0.0.1/cacti/templates_import.php(或点击左侧Import Templates导航)

导入cacti_host_template_tomcat_server.xml

成功导入模板会在页面显示导入项

将tomcatstats.pl移到/var/www/cacti/scritps

输入http://127.0.0.1/cacti/data_input.php(或点击左侧Data
Input Methods导航)

点击列表项Tomcat Status

找到

perl<path_cacti>/scripts/tomcatstats.pl <hostname>:8444 admin passwordshttp-8080

改为

perl<path_cacti>/scripts/tomcatstats.pl <hostname>:8080 admin 123http-8080

(<path_cacti>,<hostname>相当于系统参数,会由系统替换成相应的值)

安装 XML::Simple使得perl能解析xml

$ perl -MCPAN -e"install XML::Simple"


输入http://127.0.0.1/cacti/host.php(或点击左侧Devices导航)

点击Add添加主机模板,Description填写tomcat,Hostname填写127.0.0.1,Host
Template选择Tomcat Server,其他配置默认,点击create按钮

点击Create Graphs for this Host,在Graph Template Name栏选中所有模板复选框,点击create按钮

点击Edit this Host回到配置该Device页面

点击Data Source List配置数据源,点击Add,在Selected DataTemplate中选中Tomcat
Status,点击Create,在点击Save

输入http://127.0.0.1/cacti/host.php,显示Devices列表

在列表中选中tomcat后面的复选框,Choosean action选择Place
on a Tree(Default Tree)

点击上方的graphs按钮,在Tree中可以查看Tomcat的Connection
Rate,HeapStatistics,Thread Statistics,Throughput统计图

若Tomcat - Connection Rate和Tomcat - Heap Statistics不能绘制图,可以输入http://127.0.0.1/cacti/graph_templates.php,分别选中Tomcat
- Connection Rate和Tomcat - Heap Statistics,将Unit Grid Value设置为0,点击Save按钮

八、使用Cacti监控JVM

下载模板http://forums.cacti.net/download/file.php?id=8314

导入cacti_host_template_jvm_host.xml

添加Device,Description填写jvm,Hostname填写127.0.0.1,Host Template选择JVMHost主机模板,DownedDevice Detection选择Ping or SNMP Uptime,SNMP Version选择Version 2,其他默认,创建

点击CreateGraphs for this Host,选中所有图形模板,创建

点击Edit this Host回到该Device的配置页面

点击Data Source List选中所有的数据源,选择Enable动作,执行

在Devices列表中选中jvm后面的复选框,选择Place
on a Tree(Default Tree)动作,执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: