一.系统环境准备

1.系统环境:rhel6.5 防火墙关闭  selinux 处于disabled状态

  两台主机:server3.example.com   172.25.22.12 主要是做监控点用来测试

            server4.example.com   172.25.22.13 安装监控平台

2.安装cacti监控平台所需要的软件以及各种Packages for RPM-based Operating

     下载:cacti-0.8.8h.tar.gz

                 cacti-spine-0.8.8h.tar.gz


二.安装软件

安装需要的软件以及各种软件包

yum install -y  httpd  php  php-mysql  php-snmp  mysql-server  mysql

wKioL1f47_qRV_hMAACdCy0qRBA552.png-wh_50


还缺一个php-snmp,可以用php  -m 查看php后的套件是否都安装上

从外部下载过来,首先看一下php的版本,下载的版本需要和其相对应


wKiom1f48Dvxn11OAAAd8PYWi2Y155.png-wh_50


php-snmp-5.3.3-26.el6.x86_64.rpm

yum install -y php-snmp-5.3.3-26.el6.x86_64.rpm

yum install -y rrdtool

安装snmp 服务

yum install net-snmp  net-snmp-utils  -y

首先需要将所有要求的包软件都安装完毕,然后再开始配置。

三.配置步骤

1.解压cacti安装包到指定目录中/var/www/html

tar zxf cacti-0.8.8h.tar.gz -C /var/www/html/

tar zxf cacti-spine-0.8.8h.tar.gz /var/www/html/

wKiom1f48RaQulI4AAAj4TttzVw413.png-wh_50


在解压的指定目录中可以看到这两个目录

 

2.Configure PHP,配置PHP.ini 里边有修改时钟信息

vim /etc/php.ini

wKiom1f48YbhoRThAAAg0SthkLk300.png-wh_50

3.开启http服务

访问


wKioL1f48cuDgIm_AABHVLvUq8s128.png-wh_50


FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php' 

注意:如果在关闭主机后,重启浏览器时,如果出现这个错误时,说明服务没有开启,开启mysqld服务,在开启服务时,可能会遇到以下错误:

wKiom1f48gHgcMLsAAA3hr9Pqmw454.png-wh_50


解决办法就是,删除socket文件:


wKioL1f48j_ic19JAACH8J8AfI4046.png-wh_50


发现如下错误,需要数据库中有个库名在include/config.php文件中

3.配置mysql

开启mysql,并对mysql安全初始化

/etc/init.d/mysqld start

mysql_secure_installation 设置密码

进入数据库,新建一个名为cacti的数据库

wKioL1f48nbRZ_akAABaPtmqLH8754.png-wh_50


cacti目录下的cacti.mysql文件导入到创建的库中

mysql -pwestos cacti < cacti.sql

wKiom1f48rTzYPyNAAApnUmIStE913.png-wh_50


cacti数据库授权

grant all on cacti.* to cacti@localhost identified by 'westos';


wKiom1f48vbD8IGYAAD6uYS1nLE349.png-wh_50

flush privileges;

wKioL1f488DivedFAAAj0Za2YyM599.png-wh_50

mysql -ucacti -pwestos cacti上去看一下tables表中有没有

wKioL1f48_biqFWlAABBzAd3-TI578.png-wh_50

4.编辑config.php文件

wKioL1f49DGQ2zxTAABrSgaJrBo677.png-wh_50


修改参数

参数中填写的数据库名字和密码都要与之前相对应

wKiom1f49GXC7_G_AACWIiaI4Fg143.png-wh_50


5.创建cacti用户,useradd -u 900 cacti

修改cacti目录归属的用户名和用户组

wKioL1f49JyhV7s0AAD34sjjbAU427.png-wh_50


6.切入到cacti用户中,设置定时任务

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

运行的时候有输出,不想看到输出结果,就是执行就好,所以把所有的输出都放到/dev/null设备里不显示,2>&1就是让错误的输出也能通过正确的输出管道那里输出。

wKiom1f49NSisLoCAAAc-IG4J-I313.png-wh_50


6.访问http://172.25.22.13/cacti/install,开始最新安装

缺失安装包

wKiom1f49T-RWf1pAADQ-Zzuklw705.png-wh_50

yum install -y net-snmp-utils  刷新网页

7.安装完成。登陆界面

wKioL1f49XLDN0cBAACwqKPS5iQ847.png-wh_50

yum install -y net-snmp-utils  刷新网页yum install -y net-snmp-utils  刷新网页

wKioL1f49ePCvkQwAACWMoFsLVw422.png-wh_50


@font-face {  font-family: "Times New Roman";}@font-face {  font-family: "宋体";}p.MsoNormal { margin: 0 0 0; text-align: justify; font-family: 'Times New Roman'; font-size: 14px; }h3 { margin-top: 17px; margin-bottom: 17px; page-break-after: avoid; text-align: justify; line-height: 172%; font-family: 'Times New Roman'; font-weight: bold; font-size: 21px; }span.msoIns { text-decoration: underline; color: blue; }span.msoDel { text-decoration: line-through; color: red; }div.Section0 { page: Section0; }

四.Cacti简介

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmprrdtoolcacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ipsnmp团体名、端口号、模板信息等变量

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。

Cacti各组件的工作流程如下图:

wKiom1f49hWSHEWkAABU8VzzQHo658.jpg-wh_50


工作原理:

Cacti的工作可以分成三部分:

A.Data Retrieval

   Cacti首先要做的工作就是收集数据,cacti使用Poller(轮询器)收集数据。Poller是操作系统scheduler的扩展,如在类Unix系统中的crontab。现在的IT设施中会有许多不同的设备,如服务器、网络设备等,cacti主要使用SNMP协议来从远端的设备上收集数据,所有可以使用SNMP协议的设备都可以被cacti监控。

B. Data Storage

   存储收集到的数据有许多方法,可以使用数据库、平面文件等,cacti使用的是RDDToolRRDRound Robin Database(环形数据库)的缩写,RRD用来存储和显示时间序列数据,如网络带宽、机房温度、服务器负载等,RRD使用非常紧凑的方式存储数据,数据不会随着时间的推移而增大,RRD还可以生成美观的图形。这些特性使得cacti没有存储需求。RRD也做一席位其他的工作,如RRD会将原始数据与已整合的数据进行合并,以使得历史数据的存储节省空间,RRD支持的整合功能包括:AVERAGE, MAXIMUM, MINIMUMLAST

C.Data Presentation(报告)

    Cacti最大的一个特点是内置了RRDTool画图功能,将其与通用的web服务器相结合,可以实现在任意平台上使用浏览器就可以查看监控画面。Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmprrdtoolcacti的关键。

Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称)。简单原理图如下


wKiom1f49lezn1dPAACq4NjV-Ho427.png-wh_50


五.Cacti监控平台的界面介绍

1.登 陆 Cacti 后 可 以 看 到 左 上 角 的 第 一 二 个 选 项 卡 “ console” 和graphsconsole 表示控制台,在此进行所有的配置等操作;而 graphs 则是用来查看所有服务器的性能图像的界面。

wKiom1f49pqCfDmGAABz6WbSVp4539.png-wh_50



Create

New Graphs——创建新图像的快捷方式

Management

  Graph Management——图像管理

(1)用来将几张图上的数据合并在一张图像上,比喻将几台设备的上联端口

的流量图合并起来,创建流量汇总图,就可以在这里创建图像。

(2)可以在此删除图像,Cacti 会自动创建图像。

  Graph Trees——图像树。

在 graphs 界面里,图像或 devices 是树状结构显示的,可以在此设置树的结构,将已经创建好的图像或设备添加到树里面来,这样在 graphs 里就可以看到该图像或设备了。

  Data Sources——管理 rrd 文件。一般无需修改,Cacti 会自己创建 rrd 文件;

  Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。

Collection Methods

  Data Queries 和 Data Input Methods 是采集数据的方式,一般我们无需对这两项进行修改

Templates

  Graph Templates Host Templates 和 Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写。

Import/Export

   Import Templates  和 Export Templates,对上述模板的导入、导出。我们可以在Cacti 的官方网站上找到这些模板,不过需要注意模板对于的 Cacti 的版本。

Configuration

   Settings ——Cacti 的主要配置菜单;可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许 ftp)、显示效果、登陆方式(允许使用 LDAP)等。

Utilities

   System Utilities ——显示 Cacti 系统的一些 cache 和 log 信息,如果 log 文件太大

建议直接到后台查看;

   User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;

   Logout User ——注销用户。

六.创建监控点

1.监控平台机器server4server3安装snmp服务

yum install -y net-snmp

2.配置snmpd.conf文件

wKiom1f49ubDHvLpAABC9BhA6yQ212.png-wh_50


Snmpd.conf文件中参数修改:

wKioL1f49yLz5d2dAAAnLHqL35Y690.png-wh_50


wKioL1f491SSa6tIAABVCpgq79E753.png-wh_50

wKioL1f494nRgdtPAACTaCk3y7Y331.png-wh_50


wKioL1f4956Sd2ajAAAeRx7QGQo825.png-wh_50


Server4

配置snmpd.conf文件,同样修改参数

配置完毕,打开snmpd服务

/etc/init.d/snmpd   start 

wKiom1f49-jwRqTzAAApnKUmjjg681.png-wh_50

测试:

snmpwalk -v 1 -c westos 172.25.22.12 IP-MIB::ipAdEntIfIndex

wKioL1f4-COCNfDDAACPweDXh_s154.png-wh_50


3.生成图设置

添加设备

wKiom1f4-GLA_jc4AABd-c2mMSg259.png-wh_50

根据主机参数设置,create


创建成功图:

wKioL1f4-YLj5lyGAAAyNavjshU919.png-wh_50


wKiom1f4-PaTQjQGAAE45Sq0Eis172.png-wh_50


创建成功后:

*Create Graphs for this Host

wKiom1f4-hOAj59UAAARqOC7U8Y853.png-wh_50


点开之后

wKiom1f7FYaTzC-WAACJq095eek904.png-wh_50


勾选主机ip那个


wKioL1f7FcPyaj8uAAIzW97oDU0600.png-wh_50


Create完毕之后

添加graph treeadd添加

wKioL1f7FgGymBEFAABgvIsw7X4695.png-wh_50


wKiom1f7FieRzGeqAABvkc56xME759.png-wh_50

wKiom1f7FkLhScuDAAAtuMIVWjo329.png-wh_50

添加成功

wKioL1f7FmuAgBbKAAAcOj-NAHk067.png-wh_50

等刷新5分钟后。可以看:


wKiom1f7Fp-y509kAAA_QYlPm6U882.png-wh_50


可以看到图:

localhost

wKioL1f7FtnSTf36AADLaklZRRI131.png-wh_50

lnstructor


wKiom1f7Fw6Dlri3AAC5XgJVw5Q634.png-wh_50


                 七.Optional) Install and Configure Spine

wKioL1f7F1HA0UCdAACXQoIYFsk205.png-wh_50


yum install -y net-snmp-devel mysql-devel openssl-devel  dos2unix autoconf automake binutils libtool gcc cpp glibc-headers kernel-headers

wKioL1f7F4nBk3kUAAAxiWYnvbQ586.png-wh_50


2.预编译环境,相当于运行一个脚本,准备编译前的环境

sh bootstrap

可以看到在运行完之后

会提示你需要编译


wKiom1f7F8SAh6xgAAAkPDoacZQ368.png-wh_50


3.编译安装


wKioL1f7F_aw-LouAAAOBUbDb4o555.png-wh_50

安装完之后,可以看到安装到某个目录下

wKiom1f7GDjitGr6AACQ4VdTdx4398.png-wh_50


4./usr/local/bin/spine 是一个二进制文件,在用普通用户执行这个二进制文件时,发现执行不了,因为普通用户执行的是/etc目录下,所以将配置文件复制到一份到/etc/目录下

wKioL1f7GG-DVdpXAADZZ_oPwZg570.png-wh_50


5.编辑配置文件,修改其中的参数

vim /etc/spine.conf,其中的参数按照之前修改的方式修改

wKiom1f7GMvyrKwlAAAfIq0vX6Y006.png-wh_50


6.进到普通用户中,这时就可以执行了

wKioL1f7GQGzDNxeAABYfVCuKcE343.png-wh_50


7.设置spine path 设置其自动执行的路径,不用再手工执行

/usr/local/spine/bin/spine  保存

wKioL1f7GYfTzd7RAAAxjOl2Z5M204.png-wh_50

8.修改poller轮询器

wKiom1f7Gc7yDoN7AAAkBB73MLE722.png-wh_50


注意:在修改时间时,一定要把rrd中的时间设置文件也一定要该,具体要看rrd的工作原理

wKiom1f7GgGASk95AAAihyjeMps275.png-wh_50


9.修改完毕,查看日志,看有没有改变,

wKioL1f7GjawwgG6AAAbRmzYfEc304.png-wh_50