egjd 发表于 2013-9-13 09:08:12

用yum版lnmp搭建cacti

一、cacti的简介


网络管理(如主机负载、网络流量等的监控)是系统管理岗工作人员日常工作的一个重要组成部分,许多厂商为此提供了各自的解决方案。早期开源网管软件中比较著名的其中之一的MRTG,是一款使用perl开发的,通过SNMP协议实现管理工作站与设备代理进程间的通讯,以完成对设备的管理和运行状态的监视。MRTG安装配置简单、图形界面直观,因为广受当时网络管理人员的喜爱,也为笔者早期的网络管理工作立下了汗马功劳。


但MRTG也有许多固有的缺点,如:使用文本式的数据库,数据不能重复使用;只能按日、周、月、年来查看数据;每图只能画两个DS(一条线、一个块);每取一次数据即需要绘图一次,浪费系统资源;同时,它也没有提供管理功能。


有鉴于此,MRTG的作者后来另外又开发了一个工具,即rrdtool。rrdtool是一个性能优良的数据记录器,同时也是一个功能强大的绘图引擎。它使用rrd的数据存储格式,使用得数据可以重复使用;在绘图方面,它可以定义任意时间段进行绘图,能绘出多个DS。但它也有自己的缺点:虽然提供了强大的数据存储及绘图功能,但rrdtool却没有提供类似于MRTG中集成的数据采集功能;同时,它提供了过多的参数,以至于在命令行界面使用起来极为不便;此外,rrdtool也没有提供管理功能。于是cacti应运而生。
简单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获数据取工具、优秀的绘图模板以及许多设计精良的数据获取脚本,从而可以通过结合rrdtool强大的数据抓取、数据存储和绘图功能,轻松实现主机负载、网络流量等信息的走势图的绘制。目前其最新的软件版本是0.8.7g。

cacti是用php语言实现的一个软件,它的运行需要网站服务器(如apache)及PHP环境的支持。同时,cacti还需要Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。


rrdtool的对主机负载、网络流量等信息的统计需要通过SNMP协议实现。经过SNMP抓取到的数据存储于由rrdtool生成的rrd文件中,这些文件通常位于cacti的rra目录中。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的归档文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
这副图片简述了cacti的工作原理.


Cacti的实例应用
1)网络设置
         2)主机系统
         (1)网络接口流量(进与出的带宽)
         (2)监控CPU的负载、内存等等
         (3)监控磁盘的空间、进程数等等
         .........................................等等
3)cacti常见的监测对象
         (1)服务器资源:CPU、内存、磁盘、进程、连接数等
         (2)服务器类型:WEB、Mail、FTP、数据库、中间件
         (3)网络接口:流量、转发速度、丢包率
         (4)网络设备性能、配置文件(对比与备份)、路由数
         (5)安全设备性能、连接数、攻击数
         (6)设备运行状态:风扇、电源、温度
         (7)机房运行环境:电流、电压、温湿度
这些都是在网上找的资料.......

好了,介绍完了,这回就要开始搭建了:

1.搭建lnmp平台,用yum,很简单......
service snmpd start

service nginx start
service php-fpm start

这些你要保证开机启动,我的selinux的关闭的.......

2.安装snmp,使用SNMP采集数据
# yum -y install lm_sensors net-snmp net-snmp-utils

3.cacti又依赖于rrdtool生成图表所以首先安装rrdtool:
# yum -y install cairo-devel glib2-devel pango-devel intltool 安装依赖包
# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz


# tar -zxvf rrdtool-1.4.7.tar.gz
# cd rrdtool-1.4.7
# ./configure --prefix=/usr/local && make && make install


4.进入到数据库创建cacti数据和创建一个用户:
create database cactidb default character set utf8;   #创建数据库 grant all on cactidb.* to cactiuser@localhost identified by '123456'; # 创建一个mysql用户

use cactidb   # 使用刚才创建的数据库

source /usr/local/nginx/html/cacti/cacti.sql # 导入cacti数据

5.编辑cacti配置文件
# vi /usr/share/nginx/html/cacti/include/config.php

$database_type="mysql";            # 数据库类型
$database_default="cactidb";       # 数据库名字
$database_hostname="localhost";    # 数据库主机

$database_username="cactiuser";    # 数据库用户

$database_password="123456";       # 数据库密码

$database_port="3306";             # 数据库端口

$database_ssl=false;

6.然后修改nginx配置文件像下面:
# vi /etc/nginx/conf.d/default.conf
用yum装的lnmp,nginx配置文件要在这里修改,如果在nginx.conf里修改location,那么nignx就会启动失败

location / {
             root   html;
         indexindex.php;
       }
location ~ .php$ {
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_indexindex.php;
          fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
          include      fastcgi_params;
          fastcgi_buffer_size 8k;
      }
注意:这个一定要写对,否则会报403的错,要不就是页面过大之类的......


然后就是重启nginx

7.设置时区:
这个如果不设置的话,当你访问cacti的时候页面可能全是日志,告诉你时区不对
# vi include/global_constants.php

在第二行添加
date_default_timezone_set("Asia/Chongqing");
8. 配置snmp,编辑/etc/snmp/snmpd.conf:
vi /etc/snmp/snmpd.conf
然后找到41行将public改成一个较为复杂的名字:
com2sec notConfigUserdefault       public
然后找到62行
accessnotConfigGroup ""      any       noauth    exactsystemview none none
将systemview改成all:
accessnotConfigGroup ""      any       noauth    exactall none none
然后去掉85行的注释:
view all    included.1                               80
有时候这个也可以注释.......

保存配置文件后启动snmp
service snmpd start
9. 计划任务
# crontab -u cactiuser -e

*/5 * * * * cactier php /var/www/html/cacti/poller.php> /dev/null &
#每5分钟以cactier去抓取数据绘图,这个时间5分钟应该是最小间隔了,笔者不建议修改为更小值。


然后就可以访问了:http://192.168.1.31/cacti,为了省事就不上传图片了......


gyts62 发表于 2013-9-13 18:36:26

路过,支持一下啦

jjfjjj 发表于 2013-9-14 17:08:45

男人靠的住,母猪能上树!

hc6538 发表于 2013-9-14 18:30:57

解释就是掩饰,掩饰就是编故事!

741057228我QQ 发表于 2013-9-14 23:16:50

解释就是掩饰,掩饰就是编故事!

孤独海岸线 发表于 2013-9-15 07:44:40

月经不仅仅是女人的痛苦,也是男人的痛苦。

色粉盒撒娇 发表于 2013-9-15 15:02:19

俺从不写措字,但俺写通假字!
页: [1]
查看完整版本: 用yum版lnmp搭建cacti