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),它能够存储的数据笔数在创建时就已经定义。

服务器实时监控系统架构及工作流程

整个监控系统主要由四部分组成:

1、Cacti系统——用户控制的平台,用户在此进行所有的设置与查看图表。当然Cacti也需要WEB服务器如Apache和PHP环境的支持;

2、SNMP采集工具--Unix下使用 Net-SNMP软件包自带的"snmpget"和"snmpwalk"等程序,windows下使用php的snmp功能;

3、RRDTool绘图引擎--性能数据的存储和绘画图像;

4、MySQL数据库--储存RRDTool绘图所需的信息。

工作流程图:

准备安装环境

一. LAMP (如果你的LAMP正常工作,那么可跳过这一步)
1. 安装LAMP
# yum install httpd mysql mysql-server php php-mysql

2. 配置Apache
# vim /etc/hosts // 检查主机名
127.0.0.1 localhost.localdomain localhost

# vim /etc/httpd/conf/httpd.conf // 修改配置文件
ServerName localhost:80

3. 启动WWW,测试PHP
# /etc/init.d/httpd start // 立即启动
# /etc/init.d/httpd configtest // 测试设定档语法
# chkconfig httpd on // 设置开机启动
# netstat -tulnp | grep httpd // 查看启动端口
# tail /var/log/httpd/error_log // 查看httpd日志

在浏览器输入: http://你的主机IP 查看Apache页面
# vim /var/www/html/phpinfo.php // 在WWW目录建立PHP文件,添加下面内容,测试PHP
<?php phpinfo (); ?>
在浏览器输入: http://你的主机IP/phpinfo.php 查看PHP信息

4. 配置MYSQL
# /etc/init.d/mysqld start // 启动 mysql
# chkconfig mysqld on // 设置开机启动
# netstat -tulnp | grep mysql // 查看端口情况
# mysqladmin -uroot password '123456' // 给root 设置密码
# mysqladmin --user=root --password reload

# mysql -uroot -p123456 // 进入 mysql
mysql> quit

5. 如果你的PHP无法解析文档,那就重装LAMP吧
卸载软件包: httpd
# rpm -qa | grep httpd //查看httpd相关软件包
httpd-2.2.3-63.el5.centos

# rpm -e httpd-2.2.3-63.el5.centos --nodeps //卸载软件包,--nodeps 如果有连带关系,也强制卸载
# cd /etc/httpd/
# rm -rf * // 删除原有httpd文件
php , mysql 卸载方法同上, 然后新安装LAMP
------------------------------------------ END LAMP ---------------------------------------

二、安装cacti所需环境
1. 安装rrdtool
# yum install rrdtool -y

2. 安装net-snmp
# yum install net-snmp net-snmp-libs net-snmp-utils
# vi /etc/snmp/snmpd.conf // 配置 snmpd.conf
view systemview included .1.3.6.1.2.1.1
改为:
view systemview included .1.3.6.1.2.1

# service snmpd start // 启动 snmpd 服务
# snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0 // 测试net-snmp
SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 14 14:12:01 CET 2005 i686

三.安装配置Cacti
1. 获取并解压缩Cacti文件

# cd /tmp
# wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
# tar -zxvf cacti-0.8.8b.tar.gz
# mv cacti-0.8.8b /var/www/html/cacti //将它放到WWW目录并改名
2. 创建Cacti数据库并建立访问帐号
# mysql -uroot -p123456
mysql> create database cacti;
mysql> grant all on cacti.* to root;
mysql> grant all on cacti.* to root@localhost;
mysql> grant all on cacti.* to cactiuser;
mysql> grant all on cacti.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('cactiuser');
mysql> quit

3. 导入Cacti数据库 , 创建用户并赋予权限
# cd /var/www/html/cacti
# mysql -uroot -p123456 cacti < cacti.sql
# useradd cactiuser -d /var/www/html/cacti -s /bin/false
# chown –R cactiuser /var/www/html/cacti/rra /var/www/html/cacti/log

4. 配置cacti数据库连接
# vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";

# vim /var/www/html/cacti/include/global.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";

5. 修改文件目录属性
chown -R root.root *

6. 建立调度任务
crontab –e
*/5 * * * * php /var/www/html/cacti/poller.php >/dev/null 2>&1

四.初始化
1. 登陆 http://localhost/cacti 访问cacti管理页面

由于开启了SeLinux导致权限问题
You don't have permission to access /cacti on this server.
因此,我们需要关闭 Selinux
1).查看SELinux状态:
# /usr/sbin/sestatus -v // 如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
# getenforce //也可以用这个命令检查
2).关闭SELinux:
a、临时关闭(不用重启机器):
# setenforce 0 // 设置SELinux 成为permissive模式 (关闭SELinux)
# setenforce 1 // 设置SELinux 成为enforcing模式 (开启SELinux)
b、修改配置文件需要重启机器:
# vi /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
重启机器即可reboot
3). 如果上面方法不行,我们还可以编辑cacti.conf
# vi /etc/httpd/conf.d/cacti.conf // 如果不存在,我们就手工创建一个,并加入下面代码
Alias /cacti "/var/www/html/cacti"
<Location "/cacti">
Order Deny,Allow
# Deny from all
Allow from 127.0.0.1
Allow from ::1
Options Indexes Includes FollowSymLinks
</Location>
# These directories do not require access over HTTP
#
<Directory "/var/www/html/cacti">
AllowOverride Limit
Options FollowSymLinks
</Directory>

2.选择全新安装
3.指定路径
4.默认登陆:用户 admin 密码:admin,强制更该密码
5. 检查相关软件路径
1)Settings—Paths路径
2)Settings—General—Required Tool Versions 选择 rrdtool 1.3.x
然后保存,此时便可以在Graphs 中看到localhost的图标。
到此,cacti安装完毕。

PS: 安装完后,使用的时候又有一堆问题, 直到后来百度了一下,发现了这个东西
CactiEZ:http://www.cngr.cn/dir/216/339/2013012092768.html

转载来源于:http://os.51cto.com/art/201104/252883.htm

转载来源于:http://fmcpu.blog.163.com/blog/static/17603638820137154212424/

CentOS下安装配置Cacti的更多相关文章

  1. Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)

    Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

  2. 阿里云服务器centos下安装配置svn服务器

      阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...

  3. 在CentOS下安装配置MySQL(转)

    今天刚把项目做完,需要马上部署到新到的测试服务器上,于是乎,要在服务器上安装环境,由于好久在linux上部署了,手有些生,比较费劲装完,现在把重要步骤贴出,供自己以后参照.1.首先要看看有没有已经安装 ...

  4. linux、centos下安装配置vim

    ---恢复内容开始--- 1.一般情况下安装上centos后,会有vi,没有vim(以后可能会有吧) 如果不确定自己有没有vim,使用命令 rpm -qa|grep vim 查看,如果有的话,会显示三 ...

  5. centos下安装&&配置redis

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  6. CentOS下安装配置Samba服务器

    0 环境介绍 VMWARE12下安装的CENTOS7虚拟机.宿主机为WIN7. 1 离线安装 费了九牛二虎之力,下载各种依赖,还是有问题,转向在线安装. 2 在线安装 虚拟机采用默认的配置: 其次,网 ...

  7. 在centos 下安装配置基于gitosis 的git 服务

    前言 这里我用的系统是centos 6.2, 在服务器上的准备工作(服务器IP为10.0.2.8 ): 1.安装 openssh服务器与客户端工具 $ sudo yum install openssh ...

  8. CentOS下安装配置SVN服务器并自动同步到web目录

    一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...

  9. Centos下安装配置WordPress与nginx教程

    感谢大佬:https://www.howtoing.com/how-to-install-wordpress-with-nginx-on-centos-6-2 WordPress是一个免费和开源网站和 ...

随机推荐

  1. 完美逆向百度手机助手5.0底部菜单栏 - Android Tabhost 点击动画

    先看看百度手机助手5.0的样子: 发现他是用一个CustomTabHost.java来实现底部TabHost点击效果的,很漂亮,点击Tab的时候文字会上跑,图片会从底部跑出来的一个小动画. 下面我用自 ...

  2. vxworks获取系统时间编程

    #include<time.h> //头文件 unsigned int timeLen; struct timespec tp; struct tm timeBuffer; time_t ...

  3. FreeRTOS学习笔记——任务间使用队列同步数据

    1.前言 在嵌入式操作系统中队列是任务间数据交换的常用手段,队列是生产者消费者模型的重要组成部分.FreeRTOS的队列简单易用,下面结合一个具体例子说明FreeRTOS中的队列如何使用. 2.参考代 ...

  4. 2013ACM暑假集训总结-致将走上大三征途的我

    回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...

  5. iOS-获取UIView的全部层级结构

    在iOS中获取UIView的全部层级结构 应用场景 在实际 iOS 开发中,非常多时候都须要知道某个 UI 控件中包括哪些子控件,而且分清楚它们的层级结构和自个的 frame 以及 bounds ,以 ...

  6. iOS中sqlite3操作

    声明:下面命令我没有所有使用过, 仅用于收藏, 欢迎大家指出当中的错误 'SELECT  count(*)   FROM sqlite_master WHERE type="table&qu ...

  7. 模板-->单变元模线性方程

    如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 extend_gcd模板 poj_2115_C Looooops,my_ac_code 简单的测试 None 代码模板 / ...

  8. Python 代码实现模糊查询

    Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...

  9. .NET六大剑客:栈、堆、值类型、引用类型、装箱和拆箱

    .NET六大剑客:栈.堆.值类型.引用类型.装箱和拆箱 一.“堆”,“栈”专区 这两个字我相信大家太熟悉了,甚至于米饭是什么?不知道...“堆”,“栈”是什么?哦,这个知道... 之前我也写过一篇堆栈 ...

  10. ZOJ1463

    题意:给一个括号字符串,求解最少添加的字符能使整个字符串匹配. 输入: s(未匹配的字符串) 输出: S(匹配后的字符串) 思路:绝壁超级坑的一道题,格式我不想说什么了,特坑,然后就是对给定的字符串, ...