使用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环境搭建完全手册(三)——应用安装(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环境搭建完全手册(二)——系统配置(实现虚拟机上网/ssh/)

Sat 10 March 2012

上一篇介绍了如何安装Linux,安装Linux后我们如果只在终端界面下配置会很麻烦,我们可以通过windows连接linux的ssh进行配置linux.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

要想连接ssh,首先就需要保证windows能和虚拟机Linux进行通信,我们如果想要本机能和虚拟机通信需要设置虚拟机的网卡连接关系,有3中连接关系可以和本机连通: 一种是Bridged(桥接),就是使用你本机的连接,如果本地用的是局域网DHCP上网可以选择这种方式. 一种是NAT,就是用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。如果本地用的是静态公网ip,本地有无DHCP这个是首选 一种host-only:这种模式不能访问外网,只能何宿主(也就是本机)主机通信.也就不能访问Internet

这里介绍如何设置NAT模式上网.按说网卡选择NAT模式直接重启网卡就可以dhcp获取,但是我们在以后配置Linux服务器的时候为了方便管理肯定不会使用DHCP,所以我们使用静态ip的方式来设置NAT上网. 首先右键你的虚拟机标签->Setting->选中Network Adapter.在右边选中NAT(也可直接双击右下角的网卡图标) www.linuxzen.com

www.linuxzen.com

做完这步之后我们还要编辑一下虚拟机的虚拟卡设置,以达到我们使用静态ip上网的需求:

点击虚拟机的Edit(编辑)->Virtual Network Editor(虚拟网卡编辑器): www.linuxzen.com 在弹出的界面选中VMnet8 NAT,然后修改最下面的Subnet IP …

Category: Linux Tagged: 虚拟机 上网 ssh NAT lnmp

comments

Read More
Page 1 of 1

Fork me on GitHub