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了
http://s3.运维网.com/wyfs02/M00/30/BB/wKiom1OpOzyTrC9wAAQeEJs2sgo697.jpg
http://s3.运维网.com/wyfs02/M01/30/BA/wKioL1OpOzPSIMWeAAIRvhlHekg066.jpg
http://s3.运维网.com/wyfs02/M02/30/BB/wKiom1OpO-fiNsT8AATkxBEPa-8315.jpg
如查是用yum安装net-snmp/net-snmp-utils/php/rrdtool的默认情况下是不需要修改的,如果你是有源码安装则需要改变相应位置;
http://s3.运维网.com/wyfs02/M00/30/BB/wKioL1OpPCCxbXI_AAKZ-heKZ_Q068.jpg
# 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服务是否正常;
http://s3.运维网.com/wyfs02/M02/30/C0/wKioL1OpQcLgJeiQAAo04yfeAX8532.jpg
刚开始部署完成数据产生是很慢的,当然了我们根据rrdtool相关知识进行跟踪与查看
首先查看本机当前时间
# date +%s
# rrdtool fetch /var/www/html/cacti/rra/localhost_mem_swap_4.rrd AVERAGE
查看最下面的一个时间戳,是否与本机当前时间戳接近了.... 过一段时间我们就可以看到图像了,高兴吧!!!
http://s3.运维网.com/wyfs02/M00/30/C4/wKioL1OpR-qBOCcIAAi5C6XZsNA386.jpg
实例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#
# 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 /scripts/tcp_conn.sh //这里定义脚本如何执行
点击“Save”
http://s3.运维网.com/wyfs02/M02/30/E6/wKiom1OphZmRcNrtAAOrMuVe5_U248.jpg
然后添加
Input Fields: 表示上面Input String中输入的参数
Add ->
Field : 脚本的输入参数,这里我们只有一个参数hostname,如果你的脚本需要多个参数,则需要多次Add Input Field;
Friendly Name: 输入一个为数据输入方法见明知意的名字,这里我们用“HostName or IP”;
Regular Expression Match: 匹配表达式,这里我们可以不填写;
Allow Empty Input: 允许空参数;
Special Type Code: 如果没有填写Regular Expression Match,它会自动继承Host Templates中的选项,选择你需要参数;
http://s3.运维网.com/wyfs02/M00/30/E8/wKioL1OpiN2jA983AANldczd1NU740.jpg
点击“Create”完成脚本参数设定;
Output Fields
Add ->
Field : 指定脚本输出的标签名,established;
Friendly Name:指定一个友好的名字;
点击“Create”
http://s3.运维网.com/wyfs02/M02/30/E9/wKiom1Opi6CzPcY3AAPCExlA-Rw747.jpg
点击“Save” --> 返回“Save Successful.”
查看“Data Input Methods”是否有我们刚才添加的"SNMP - Connections"
http://s3.运维网.com/wyfs02/M00/30/E9/wKiom1OpjGvDjVCWAAO6JBYbC9Y507.jpg
3、创建数据模板
接下来,我们继续创建“Data Templates”
http://s3.运维网.com/wyfs02/M00/30/E9/wKiom1OpjPax7EhLAAQ-1suPYKQ378.jpg
http://s3.运维网.com/wyfs02/M01/30/EA/wKiom1OpjcmAOSmpAARzQB6VqPo840.jpg
上图需要注意Name,我填入的是"|host_discription| - TCP Connections" 两竖中间带表的是一个变量:
Associated RRA's 需要注意你的解析度,我们默认是5分钟一次,显然1分钟一次不适用,所以不需要选;
4、创建数据源
http://s3.运维网.com/wyfs02/M00/30/EA/wKiom1OpjifxZT73AAMwwIHb5LQ877.jpg
http://s3.运维网.com/wyfs02/M01/30/EA/wKiom1OpjmWxR2JEAAQ9l2XEK88150.jpg
5、创建图片模板
http://s3.运维网.com/wyfs02/M00/30/EB/wKiom1Opj6_TSmGfAAdWRyfRvdY498.jpg
http://s3.运维网.com/wyfs02/M00/30/EB/wKiom1Opj--QG2cvAAKRLtq6Dls278.jpg
6、完成
http://s3.运维网.com/wyfs02/M01/30/EB/wKiom1OpkDjDgRa2AAf4Ud3JkHc453.jpg
如果我们也要做到像系统那样,有Current,Average,Maximun等信息,我们需要继续在图像模板中创建;
http://s3.运维网.com/wyfs02/M02/30/EC/wKioL1OplCfxmP38AAP98OAyRIg010.jpg
http://s3.运维网.com/wyfs02/M01/30/ED/wKiom1OplK-h3-xfAAP8s1cqF8I448.jpg
http://s3.运维网.com/wyfs02/M02/30/EC/wKioL1OplVqQgDQoAAgCIpZnvR8178.jpg
如果你担心数据没有,我们也可以手动看一下
# rrdtool fetch cacti_tcpestablished_8.rrd AVERAGE
1403621400: -nan
1403621700: -nan
1403622000: -nan
1403622300: -nan
1403622600: -nan
#
# date +%s
1403622578 如果看到rrdtool查看到最下面的数值接近date查看到的数值时,说明己经有数值记录到rrd文件当中了。
这里我们可以使用压力测试使ESTABLISHED数量增加
页:
[1]