什么是Cacti?
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti的原理
Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
以上来源于百度百科
现在可以安装了,这里就用yum来安装
cacti安装配置
1.首先要安装epel扩展源
yum install epel-release
2.搭建lamp环境
yum install -y httpd php php-mysql mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel
3.安装cacti net-snmp rrdtool
yum install -y cacti net-snmp net-snmp-utils net-snmp-devel rrdtool
4.启动服务:
/etc/init.d/mysqld start /etc/init.d/snmpd start
5.编辑httpd配置文件
vim /etc/httpd/conf.d/cacti.conf
把
Deny from all
改为
Allow from all
启动
/etc/init.d/httpd start
6.导入数据创建cacti库
mysql -uroot -e "create database cacti"
7.创建cacti用户
mysql -uroot -e "grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';"
导入sql文件
mysql -uroot cacti < /usr/share/doc/cacti-0.8.8h/cacti.sql
8.编辑cacti配置文件
vim /usr/share/cacti/include/config.php
更改如下:
$database_type = "mysql"; $database_default = "cacti"; $database_name = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; $database_password = "cacti"; $database_port = "3306"; $database_ssl = false;
9.web访问cacti并安装
浏览器访问:
http://ip/cacti/
点两下"next" 和一次"Finish"即可
默认账号和密码都是admin
登陆之后强制设置新的管理密码
如果报错:
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid My
解决方法:
mkdir /var/lib/mysql chown mysql.mysql /var/lib/mysql ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
10.执行poller.php, 生成图形
/usr/bin/php /usr/share/cacti/poller.php
11.加入计划任务
crontab -e 增加:
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php
每5分钟采集一次数据
服务端已经设置好了,现在来设置客户端
1. 安装snmp
yum install -y net-snmp
2. 修改snmpd.conf
vim /etc/snmp/snmpd.conf
修改syslocation以及syscontact, 其中syslocation 可以写本机ip,syscontact写管理员邮箱
syslocation 192.168.1.12
syscontact Root [email protected]
3.添加网卡采集(默认选择的时候可能不会出来网卡项目)
只需要在客户机(你要监控的机器)修改配置文件:
vim /etc/snmp/snmpd.conf
view systemview included .1.3.6.1.2.1.1
修改为:
view systemview included .1.3.6.1.2.1
3. 启动snmp
service snmpd start
4.登录cacti管理后台,点console , 再点Device, 在右上角点"Add"
Description // 描述
Hostname // 客户端IP
Host Template // 选ucd/net SNMP Host
SNMP Version // 选Version 2
点右下角的create
点右上角的"Create Graphs for this Host"
Graph Types: 选择SNMP - Interface Statistics
在下面框中选择要监控的网卡,比如我选择eth0, 在最右侧小方块里打对勾,然后点右下角的create
Graph Types: 再选择 Graph Template Based
在下面的框中,选择你要监控的项目,比如ucd/net - Load Average
在右侧小方块中打对勾,然后点右下角的create
5.点左侧的Graph Trees
选中"Default Tree"
点右上角的Add
Tree Item Type 选择 "Host"
Host 选择我们刚刚增加的那个机器ip
点右下角的create
6. 点左上角的Graphs
在左侧可以看到
Defaut Tree下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。
上面已经完成了最简单的安装,但是Cacti功能非常的多
再随便说几个
1.spine优化
Cacti默认是cmd.php来轮询,效率不高,客户端一多久会延迟
所以我们可以安装另一个工具 spine
下载地址:
http://www.cacti.net/downloads/spine/
需要和Cacti版本对应
安装:
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8h.tar.gz tar -xz cacti-spine-0.8.8h.tar.gz cd cacti-spine-0.8.8h ./configure --prefix=/usr/local/spine mkae && make install
安装之后还需要指定配置文件的位置
cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf ln -s /usr/local/spine/etc/spine.conf /etc/spine.conf mkdir /var/lib/mysql ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
修改 spine.conf 添加Mysql信息
vim /etc/spine.conf
DB_Host 127.0.0.1 DB_Database cacti DB_User cacti DB_Pass cacti DB_Port 3306
测试下运行
/usr/local/spine/bin/spine
出现以下内容就成功了
SPINE: Using spine config file [/etc/spine.conf] SPINE: Version 0.8.8h starting SPINE: Time: 0.0829 s, Threads: 1, Hosts: 3
还没完事儿,打开网站 Console -> Cacti Settings -> Paths
Spine Poller File Path
输入spine路径
/usr/local/spine/bin/spine
点击 save
没问题会出现 绿色字体的
[OK: FILE FOUND]
切换到 Poller 选项卡
Poller Type 选择
spine
最后 找到 Console -> Utilities
点击 Rebuild Poller Cache 清除缓存重新生产图形
2.报警发送邮件
没有自带的功能,需要下载插件
插件下载地址:http://docs.cacti.net/plugins
monitor-v1.3-1.tgz
settings-v0.71-1.tgz
thold-v0.5.0.tgz
下载
wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz -O settings-v0.71-1.tgz wget http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz -O monitor-v1.3-1.tgz wget http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz -O thold-v0.5.0.tgz
解压
tar xf settings-v0.71-1.tgz -C /usr/share/cacti/plugins tar xf monitor-v1.3-1.tgz -C /usr/share/cacti/plugins tar xf thold-v0.5.0.tgz -C /usr/share/cacti/plugins
打开网站 Console -> Plugin Management
会看见出现了刚刚添加的3个插件,点击插件前面的绿色箭头安装
Console -> Cacti Settings -> Mail / DNS
Mail Services 选择 SMTP 然后填写 QQ、163的邮件测试
更多可以参考:https://my.oschina.net/zhongjuan/blog/89363
cacti无图像或者无数据
参考:
https://www.crazycen.com/linux/1158.html