CentOS环境cacti的安装与配置
一、cacti简介
随着公司规模扩大,服务器也日渐增多,对服务器集群的网络流量和服务器性能实时监测显得愈发重要。开源阵营中常用有MRTG(MultiRouter Traffic Grapher)--基于SNMP的网络流量统计分析工具。它通过SNMP协议从设备得到并记录网卡信息,并将流量负载以图形的方式显示出来,系统负载小,使用方便。不过,由于MRTG存在诸多缺点,其作者Tobias Oetiker在1999年就已经开始开发另一套开源软件RRDTool来代替MRTG。,但是RRDTool的主要作用是数据的存储和将数据绘画成图像。要实现数据的采集和管理,需要通过cacti辅助RRDTool。
cacti是用PHP语言开发的一套完全面向RRDTool的B/S系统,它用SNMP服务获取数据,然后用RRDTool储存和更新数据并生成详细图表呈现给用户。cacti通过Mysql存储了所有RRDTool创建图像需要用到的信息以及管理信息,如:主机名、主机ip、snmp团体名、端口号、模板信息等。注意:SNMP抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
#p#
二、服务器实时监控系统架构及工作流程
整个监控系统主要由四部分组成:
1、Cacti系统——用户控制的平台,用户在此进行所有的设置与查看图表。当然Cacti也需要WEB服务器如Apache和PHP环境的支持;
2、SNMP采集工具--Unix下使用 Net-SNMP软件包自带的"snmpget"和"snmpwalk"等程序,windows下使用php的snmp功能;
3、RRDTool绘图引擎--性能数据的存储和绘画图像;
4、MySQL数据库--储存RRDTool绘图所需的信息。
工作流程图:
#p#
三、准备cacti安装环境:
1、首先要安装Apache+PHP+MySQL+Net-SNMP+RRDTool(MySQL安装、Apache安装、PHP安装),本文采用YUM命令安装所有cacti依赖软件。过程如下:
- #yum install mysql mysql-server php-mysql httpd php php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtool perl-DBD-MySQL net-snmp-libs
注:yum安装rrdtool中,由于rrdtool依赖的包过多,所以请首先增加源,方式如下:
- #vi /etc/yum.repos.d/CentOS-Base.repo
文件末尾增加如下链接:
- [dag]
- name=Dag RPM Repository for Red Hat Enterprise Linux
- baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
- gpgcheck=1
- gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
- enabled=1
2、配置SNMP
- #vi /etc/snmp/snmp.conf
——将下边这行中的default
- com2sec notConfigUser default public
——改为127.0.0.1
- com2sec notConfigUser 127.0.0.1 public
——将下边这行中的systemview
- access notConfigGroup "" any noauth exact systemview none none
——改为all
- access notConfigGroup "" any noauth exact all none none
——将下边这行的注释"#"号去掉
- #view all included .1 80
——启动snmpd服务
- #service snmpd start
——启动httpd/mysql
- #service httpd start
- #service mysqld start
#p#
四、安装cacti
1、下载cacti:
- #wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
- #tar -zvxf cacti-0.8.7e.tar.gz
- #mv cacti-0.8.7e /var/www/html/cacti
2、在数据库中建库、授权、导入数据库结构
- #mysql -uroot -ppassword
- mysql> create database cacti;
- mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
- mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
- mysql> use cacti;
- mysql> source /var/www/html/cacti/cacti.sql;
——配置cacti以连接数据库
- #vi /var/www/html/cacti/include/config.php
- $database_type = "mysql";
- $database_default = "cacti";
- $database_hostname = "localhost";
- $database_username = "cacti";
- $database_password = "cacti";
- $database_port = "3306";
3、添加cacti用户,否则cacti不能写入rrd和log目录,将会无法生成图片
- #useradd cacti -d /var/www/html/cacti -s /bin/false
- #chown -R cacti /var/www/html/cacti/rra /var/www/html/cacti/log
4、增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。
- #crontab -e
--加入如下内容。注意poller.php的路径
- */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
--如果暂时未看到图表,可以手工执行,生成图表
- #php /var/www/html/cacti/poller.php > /dev/null 2>&1
5、完成cacti最后的配置,在浏览器输入:http://localhost/cacti,将进入cacti登录页面,第一次登陆用户名和密码都是admin,它会要求你立即设置新密码。接着设置cacti用到的命令正确路径,一定要正确,如下图:
6、完成设置后,通过http://localhost/cacti/graph_view.php,选择服务器即可看到监控图标。
7、如需添加其他主机,改主机必须安装正确配置net-snmp,配置方法如上所述。
#p#
五、错误处理:
1、字体在图形中显示不正常的解决方法:下载并安装cjkuni-fonts中文字体,字体名ukai.ttf;
- #wget http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz
- #tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
- #cd ttf-arphic-ukai-0.1.20060928/
- #cp ukai.ttf /usr/share/fonts/ukai.ttf
2、cacti无法显示监控图表的解决方法:
1)首先确认/var/www/html/cacti/rrd目录是否可写,照上文设置用户权限;
2)字体路径是否设置正确,如上文所述;
3)RRDTool版本设置是否正确(查看RRDTool版本命令:#rrdtool -v),设置方法:Console -> Cacti Settings -> Genera -> RRDTool Utility Version -> RRDTool 1.3.X;(默认为1.0.x,不改可能图像不能正常显示出来)
【编辑推荐】