首页 > 代码库 > Cacti深入学习
Cacti深入学习
1、安装LAMP与Cacti环境
# yum install -y httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server gd gd-devel # tar xf cacti-0.8.8b.tar.gz -C /var/www/html/ # cd /var/www/html/ # mv cacti-0.8.8b/ cacti # useradd cactiuser # mysql mysql> create database cactidb; mysql> grant all on cactidb.* to cactiuser@‘localhost‘ identified by ‘asdasd‘; mysql> flush privileges; mysql> use cactidb; mysql> source /var/www/html/cacti/cacti.sql # cd /var/www/html/cacti/ # vim include/config.php $database_type = "mysql"; $database_default = "cactidb"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "asdasd"; $database_port = "3306"; $database_ssl = false; # chown -R root.root . # chown -R cactiuser.cactiuser log rra # vim /etc/php.ini date.timezone = Asia/Shanghai # date 0624163814 //确保时间正确,如果你可以连接ntp服务器可以使用ntpdate time.windows.com Tue Jun 24 16:38:00 CST 2014 # service httpd restart
接下来我们可以在浏览器上使用Cacti了
如查是用yum安装net-snmp/net-snmp-utils/php/rrdtool的默认情况下是不需要修改的,如果你是有源码安装则需要改变相应位置;
# su - cactiuser # crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null //如果我们有很多主机需要监控,我们可以在cacti官网上下载spine,它有多线程功能; $ tail -f /var/www/html/cacti/log/cacti.log //每执行一次,它都会产生一条日志信息; 06/24/2014 05:03:07 PM - SYSTEM STATS: Time:0.8103 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5 此时,我们的Cacti己部署完成,接下来继续深入了解它的使用。
2、本机配置:
Devices->localhost
如果SNMP报错,查看communicaty与snmpd服务是否正常;
刚开始部署完成数据产生是很慢的,当然了我们根据rrdtool相关知识进行跟踪与查看
首先查看本机当前时间
# date +%s # rrdtool fetch /var/www/html/cacti/rra/localhost_mem_swap_4.rrd AVERAGE 查看最下面的一个时间戳,是否与本机当前时间戳接近了....
过一段时间我们就可以看到图像了,高兴吧!!!
实例1:自定TCP Established连接数
1、创建脚本
# snmpnetstat -v 2c -c public -Can -Cp tcp localhost Active Internet (tcp) Connections (including servers) Proto Local Address Remote Address (state) tcp *.22 *.* LISTEN tcp *.111 *.* LISTEN tcp *.3306 *.* LISTEN tcp *.51507 *.* LISTEN tcp 127.0.0.1.25 *.* LISTEN tcp 127.0.0.1.199 *.* LISTEN tcp 127.0.0.1.631 *.* LISTEN tcp 192.168.100.14.22 192.168.100.1.49676 ESTABLISHED # vim tcp.sh #!/bin/bash ES=`snmpnetstat -v 2c -c public -Can -Cp tcp $1 |grep -i ‘established‘ |wc -l` echo -n "established:$ES" # chmod +x tcp.sh # ./tcp.sh localhost established:1[root@station14 ~]# # cp tcp.sh /var/www/html/cacti/scripts/tcp_conn.sh
2、创建数据输入方法
Console -> Data Input Methods ->"Add"
Name: SNMP - Connections
Input Type: 这里是自定义脚本,所以选择Script/Command
Input String: /bin/bash <path_cacti>/scripts/tcp_conn.sh <hostname> //这里定义脚本如何执行
点击“Save”
然后添加
Input Fields: 表示上面Input String中输入的参数
Add ->
Field [Input]: 脚本的输入参数,这里我们只有一个参数hostname,如果你的脚本需要多个参数,则需要多次Add Input Field;
Friendly Name: 输入一个为数据输入方法见明知意的名字,这里我们用“HostName or IP”;
Regular Expression Match: 匹配表达式,这里我们可以不填写;
Allow Empty Input: 允许空参数;
Special Type Code: 如果没有填写Regular Expression Match,它会自动继承Host Templates中的选项,选择你需要参数;
点击“Create”完成脚本参数设定;
Output Fields
Add ->
Field [Output]: 指定脚本输出的标签名,established;
Friendly Name: 指定一个友好的名字;
点击“Create”
点击“Save” --> 返回“Save Successful.”
查看“Data Input Methods”是否有我们刚才添加的"SNMP - Connections"
3、创建数据模板
接下来,我们继续创建“Data Templates”
上图需要注意Name,我填入的是"|host_discription| - TCP Connections" 两竖中间带表的是一个变量:
Associated RRA‘s 需要注意你的解析度,我们默认是5分钟一次,显然1分钟一次不适用,所以不需要选;
4、创建数据源
5、创建图片模板
6、完成
如果我们也要做到像系统那样,有Current,Average,Maximun等信息,我们需要继续在图像模板中创建;
如果你担心数据没有,我们也可以手动看一下
# rrdtool fetch cacti_tcpestablished_8.rrd AVERAGE 1403621400: -nan 1403621700: -nan 1403622000: -nan 1403622300: -nan 1403622600: -nan [root@station14 rra]# # date +%s 1403622578
如果看到rrdtool查看到最下面的数值接近date查看到的数值时,说明己经有数值记录到rrd文件当中了。
这里我们可以使用压力测试使ESTABLISHED数量增加
本文出自 “jun.wang” 博客,请务必保留此出处http://junwang.blog.51cto.com/5050337/1430537