使用cacti构建监控系统

Wed 14 March 2012

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,它是通过 snmpget来获取数据,使用 RRDtool绘画图形,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。

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

cacti依赖于PHP+MYSQL环境,前面的几篇文章已经详细讲解了如何在Linux部署LNMP环境,这篇文章我们就是用前面几章所搭建的环境,所以这里不再讲解如何搭建环境,如果您不会可以先看看前几篇文章.

下面就介绍如何来部署cacti.

首先介绍本文所使用的环境: server:

系统为CentOS 5.5 32bit

ip:192.168.3.120

cacti:cacti-0.8.7i.tar.gz

cacti使用SNMP采集数据,首先安装snmp数据采集工具:

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

同时cacti又依赖于rrdtool生成图表所以首先安装rrdtool:

wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz
yum -y install cairo-devel glib2-devel pango-devel intltool   # 安装rrdtool依赖
./configure --prefix=/usr/local
make && make install

下面就来下载cacti安装:

wget http://www.cacti.net/downloads/cacti-0.8.7i.tar.gz
tar -zxvf cacti-0.8.7i.tar.gz
cp -r cacti-0.8.7i /usr/local/nginx/html/cacti  # 复制到html目录
useradd cactiuser -M -s /sbin/nologin          # 创建cacti用户
chown -R cactiuser.cactiuser /usr/local/nginx/html/cacti/rra/ # 改变属主和属组
chown -R cactiuser.cactiuser /usr/local/nginx/html/cacti/log/

然后进入到数据库创建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数据

接下来我们编辑cacti配置文件/usr/local/nginx/html/cacti/include/config.php

cd /usr/local/nginx/html/cacti/
vi include/config.php

编辑下面内容:

$database_type = "mysql";            # 数据库类型
$database_default = "cactidb";       # 数据库名字
$database_hostname = "localhost";    # 数据库主机
$database_username = "cactiuser";    # 数据库用户
$database_password = "123456";       # 数据库密码
$database_port = "3306";             # 数据库端口
$database_ssl = false;

然后修改nginx配置文件像下面:

        location / {
            root   html;
            index  index.php;
        }

        location ~ \.php$ {
            fastcgi_pass        unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index       index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
        }

重启nginx

pkill -9 nginx
/usr/local/nginx/sbin/nginx

然后设置php时区,

cd /usr/local/nginx/html/cacti/
vi include/global_constants.php

在第二行添加

date_default_timezone_set("Asia/Chongqing");

接下来配置snmp,编辑/etc/snmp/snmpd.conf

vi /etc/snmp/snmpd.conf

然后找到41行将public改成一个较为复杂的名字:

com2sec notConfigUser  default       public

然后找到62行

access  notConfigGroup ""      any       noauth    exact  systemview none none

将systemview改成all:

access  notConfigGroup ""      any       noauth    exact  all none none

然后去掉85行的注释:

view all    included  .1                               80

保存配置文件后启动snmp

service snmpd start

然后在浏览器里输入:http://192.168.3.120/cacti/ 然后根据提示一步步安装,安装好后使用admin密码admin登录.如果点击graphs不能显示图像的话执行:

php /usr/local/nginx/html/cacti/poller.php   # nginx下不会自动生成*.rrd文件必须手动执行这条命令才会生成,Debug没报错,测试权限也没问题,不知道怎么回事,望知道的能告知小弟

为了方便把这句加入到cron,执行:

yum -y install vixie-cron  #安装
service crond start
crontab -e

添加如下内容:

*/5 * * * * /usr/bin/php /usr/local/nginx/html/cacti/poller.php

好了这时候我们就可以打开查看生成的图像了. 注意如果报如下错误: Call to undefined function session_unregister() 将session_unregister('username') 改成 $_SESSION['username']='';

Category: 监控 Tagged: 监控 lnmp Linux CentOS cacti

comments


lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)

Tue 13 March 2012

上面3篇我们主要对系统进行了安装和配置,并且配置了yum包管理器,安装了几个常用的工具,这篇我们就来介绍如何来搭建lnmp环境.这里的LNMP环境是指Linux下搭建Nginx+MySQL+PHP.Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx不仅可以作为web服务器,也可以作为负载均衡器,之前也有文章介绍,大家可以看一下.

MySQL是一款开源免费的数据软件,MySQL是一个小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。

nginx当前最新稳定版是nginx-1.0.13 首先我们下载nginx,在Linux下执行下面命令:

cd /usr/src                                           # 一般软件源码放在这个目录下
wget http://nginx …

Category: Linux Tagged: 源码包 安装 php nginx MySQL Linux CentOS

comments

Read More

lnmp环境搭建完全手册(三)——应用安装(yum配置和包安装)

Tue 13 March 2012

上两篇文章我给大家讲解了系统的安装,网络和ssh的配置和连接,这篇就给大家讲一下Linux如何安装包.CentOS使用rpm包管理,rpm包安装使用rpm命令

比如你有一个包为:

abc-0.1.3-el5.centos.rpm

包的名称由3部分组成,第一部分是包名,第二部分是版本号,第三部分是使用平台.如果想安装这个包使用如下命令安装:

rpm -ivh abc-0.1.3-el5.centos.rpm    # i是安装 v是显示详细信息,-h显示安装进度

卸载这个包使用:

rpm -e abc

卸载只要指定包名即可卸载.

因为Linux下的包依赖关系很复杂,一个包可能会有很多的依赖包,必须把所有依赖包都装了才能安装这个包.所以使用rpm安装包,就变得很麻烦很头疼.如果想工作变的轻松,我们可以借助工具,在rhel5发行的时候就集成了一个工具yum.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系 …

Category: Linux Tagged: yum nginx man lnmp Linux CentOS

comments

Read More

lnmp环境搭建完全手册(一)------系统安装

Thu 08 March 2012

在之前的文章里也陆陆续续的介绍了nginx/mysql和php的安装和配置,这里做一个整合.也是一个详细的教程,可以让你0基础搭建lnmp环境. 首先选择一个发行版,个人比较喜欢CentOS,CentOS是Red Hat的再发行版,重新编译了Red Hat,修复n多错误,免费的yum库,这里使用CentOS5.5,虚拟机使用VMware Workstation 8.0.VMware是一个“虚拟PC”软件公司.它可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换.

安装VMware这里就不介绍了,给出VMware Workstation 8.0的下载地址

VMware不是免费软件,但是网上会有序列号,大家不想花钱就搜一下就ok了. 我们还要准备CentOS5.5 的iso镜像用来安装系统.下载地址

下面我们就来新建一个虚拟机安装CentOS …

Category: Linux Tagged: 虚拟机 操作系统 安装 VMware Linux CentOS

comments

Read More

根据CentOS定制自己的发行版

Wed 18 January 2012

本文使用的环境为CentOS5.5 32位. 首先要做的是最小化安装CentOS,就是安装过程中选择要安装包的时候使用自定义,然后去除所有要安装的包,系统就会默认最小化安装系统. 装完系统会再root的根目录下生成3个文件,我们用到两个: anaconda-ks.cfg : kisckstart脚本,记录安装过程的配置,包括选择语言,选择键盘,分区,root密码等等等等 install.log            : 记录安装过程中所安装的包 我们首先要做的就是建立我们的自己发行版的目录,在一个剩余大小大于4G的分区创建自己发行版的目录,比如我的发行版叫ColdOS,然后挂载DVD光盘,把光盘上的内容复制到自己发行版的目录:

mkdir /usr/cold                 # 创建发行版目录
mount /dev/hdc /mnt             # 挂载IDE光驱
# 或
mount /dev/cdrom /mnt
# 如挂载本地ISO镜像使用下面命令
mount -o loop iso路径 /mnt

# 然后使用 tar命令把光盘的内容复制到/usr/cold
# 都说这个命令比cp快 …

Category: Linux Tagged: 定制 mkisofs createrepo comps.xml CentOS

comments

Read More
Page 1 of 1

Fork me on GitHub