一.系统环境准备
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
还缺一个php-snmp,可以用php -m 查看php后的套件是否都安装上
从外部下载过来,首先看一下php的版本,下载的版本需要和其相对应
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/
在解压的指定目录中可以看到这两个目录
2.Configure PHP,配置PHP.ini 里边有修改时钟信息
vim /etc/php.ini
3.开启http服务
访问
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php'
注意:如果在关闭主机后,重启浏览器时,如果出现这个错误时,说明服务没有开启,开启mysqld服务,在开启服务时,可能会遇到以下错误:
解决办法就是,删除socket文件:
发现如下错误,需要数据库中有个库名在include/config.php文件中
3.配置mysql
开启mysql,并对mysql安全初始化
/etc/init.d/mysqld start
mysql_secure_installation 设置密码
进入数据库,新建一个名为cacti的数据库
将cacti目录下的cacti.mysql文件导入到创建的库中
mysql -pwestos cacti < cacti.sql
对cacti数据库授权
grant all on cacti.* to cacti@localhost identified by 'westos';
flush privileges;
mysql -ucacti -pwestos cacti上去看一下tables表中有没有
4.编辑config.php文件
修改参数
参数中填写的数据库名字和密码都要与之前相对应
5.创建cacti用户,useradd -u 900 cacti
修改cacti目录归属的用户名和用户组
6.切入到cacti用户中,设置定时任务
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
运行的时候有输出,不想看到输出结果,就是执行就好,所以把所有的输出都放到/dev/null设备里不显示,2>&1就是让错误的输出也能通过正确的输出管道那里输出。
6.访问http://172.25.22.13/cacti/install,开始最新安装
缺失安装包
yum install -y net-snmp-utils 刷新网页
7.安装完成。登陆界面
yum install -y net-snmp-utils 刷新网页yum install -y net-snmp-utils 刷新网页
@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生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。
Cacti各组件的工作流程如下图:
工作原理:
Cacti的工作可以分成三部分:
A.Data Retrieval
Cacti首先要做的工作就是收集数据,cacti使用Poller(轮询器)收集数据。Poller是操作系统scheduler的扩展,如在类Unix系统中的crontab。现在的IT设施中会有许多不同的设备,如服务器、网络设备等,cacti主要使用SNMP协议来从远端的设备上收集数据,所有可以使用SNMP协议的设备都可以被cacti监控。
B. Data Storage
存储收集到的数据有许多方法,可以使用数据库、平面文件等,cacti使用的是RDDTool。RRD是Round Robin Database(环形数据库)的缩写,RRD用来存储和显示时间序列数据,如网络带宽、机房温度、服务器负载等,RRD使用非常紧凑的方式存储数据,数据不会随着时间的推移而增大,RRD还可以生成美观的图形。这些特性使得cacti没有存储需求。RRD也做一席位其他的工作,如RRD会将原始数据与已整合的数据进行合并,以使得历史数据的存储节省空间,RRD支持的整合功能包括:AVERAGE, MAXIMUM, MINIMUM和LAST。
C.Data Presentation(报告)
Cacti最大的一个特点是内置了RRDTool画图功能,将其与通用的web服务器相结合,可以实现在任意平台上使用浏览器就可以查看监控画面。Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。
Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称)。简单原理图如下
五.Cacti监控平台的界面介绍
1.登 陆 Cacti 后 , 可 以 看 到 左 上 角 的 第 一 二 个 选 项 卡 , “ console” 和graphs。console 表示控制台,在此进行所有的配置等操作;而 graphs 则是用来查看所有服务器的性能图像的界面。
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.监控平台机器server4和server3安装snmp服务
yum install -y net-snmp
2.配置snmpd.conf文件
Snmpd.conf文件中参数修改:
Server4
配置snmpd.conf文件,同样修改参数
配置完毕,打开snmpd服务
/etc/init.d/snmpd start
测试:
snmpwalk -v 1 -c westos 172.25.22.12 IP-MIB::ipAdEntIfIndex
3.生成图设置
添加设备
根据主机参数设置,create
创建成功图:
创建成功后:
*Create Graphs for this Host
点开之后
勾选主机ip那个
Create完毕之后
添加graph tree,add添加
添加成功
等刷新5分钟后。可以看:
可以看到图:
localhost
lnstructor
七.Optional) Install and Configure Spine
yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake binutils libtool gcc cpp glibc-headers kernel-headers
2.预编译环境,相当于运行一个脚本,准备编译前的环境
sh bootstrap
可以看到在运行完之后
会提示你需要编译
3.编译安装
安装完之后,可以看到安装到某个目录下
4./usr/local/bin/spine 是一个二进制文件,在用普通用户执行这个二进制文件时,发现执行不了,因为普通用户执行的是/etc目录下,所以将配置文件复制到一份到/etc/目录下
5.编辑配置文件,修改其中的参数
vim /etc/spine.conf,其中的参数按照之前修改的方式修改
6.进到普通用户中,这时就可以执行了
7.设置spine path 设置其自动执行的路径,不用再手工执行
/usr/local/spine/bin/spine 保存
8.修改poller轮询器
注意:在修改时间时,一定要把rrd中的时间设置文件也一定要该,具体要看rrd的工作原理
9.修改完毕,查看日志,看有没有改变,
转载于:https://blog.51cto.com/12083916/1860163