xxxmenger 发表于 2019-1-10 09:29:47

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]
查看完整版本: Cacti深入学习