搜索
您的当前位置:首页正文

cacti安装文档

2023-09-09 来源:步旅网
Cacti 安装文档

1、Cacti 监控介绍

1.1 Cacti简介

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。

1.2 Cacti 架构概述

通过上图我们可以发现Cacti 有三大组件:MySQL 数据库、RRDtool 工具、Net-Snmp 程序。MySQL并不负责监控数据的存储,只保存模板和rra 文件与主机对应等信息,而真正的监控数据存储和图像展现都是rrdtool 来做的。而Net-SNMP 负责数据的采集。

1.3 SNMP协议

SNMP(Simple Network Management Protocol)简单网络管理协议。是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。SNMP 采用了Client/Server 模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP 代理间的交互工作完成的。每个SNMP 从代理负责回答SNMP 管理工作站(主代理)关于MIB 定义信息的各种查询。

Net-snmp 的安装包如下,前两个包net-snmp,net-snmp-libs是基本的net-snmp 的包,net-snmp-utils 是一些工具。

1.4 RRDTool工具

RRDTool 是由Tobias Oetiker 开发的开源软件,它使用RRD(Round Rebin Databases)作为存储格式,Round robin 是一种处理定量数据以及当前元素指针的技术,RRDTool 主要用来跟踪对象的变化情况,生成改对象变化的趋势图。

2、正式安装:

采用yum 安装一些基础包: yum install httpd mysql mysql-server php php-mysql php-json php-pdo mysq-devel spine -y 2.1 安装rrdtool

安装rrdtool之前需要安装相应的lib库,如下安装: yum install -y cairo-devel libxml2-devel pango pango-devel yum install gcc gcc-c++ gcc 编译环境必须有 增加cacti用户 useradd cacti echo \"cacti\" | passwd --stdin cacti 加压cacti

tar -zxvf cacti-0.8.7g.tar.gz -C /var/www/html mv cacti-0.8.7g cacti chomd -R cacti:cacti cacti 安装rrdtool

tar xzf rrdtool-1.4.5.tar.gz ;cd rrdtool-1.4.5 ; ./configure –prefix=/usr/local/rrdtool/ ; make &&make install ln -s /usr/local/rrdtool/bin/* /usr/local/bin/ 创建连接 2.2 安装SNMP:

yum install -y net-snm* 2.3 开启mysql

service mysqld start chkconfig mysqld on 创建cacti数据库并配置如下:

[root@caofangqiang mysql]# mysql mysql> create database cacti; 创建cacti这个库 mysql> grant all privileges on cacti.* to cacti@caofangqiang identified by 'cacti'; 用户名为cacti 密码cacti mysql> flush privileges; 刷新权限 mysql> \\q mysql -ucacti -p cacti 2.4 修改cacti的配置文件

vim /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\"; $database_ssl = false; 2.5 开启snmp服务:

修改snmpd 配置文件

# vim /etc/snmp/snmpd.conf 55 view systemview included .1.3.6.1.2.1.1 56 view systemview included .1.3.6.1.2.1 57 view systemview included .1.3.6.1.2.1.25.1.1 58 view all included .1 62 access notConfigGroup \"\" any noauth exact all none none 85 view all included .1 80 重启snmp 服务 service snmpd start chkocnfig snmpd on 2.6 创建crontab 的计划任务:

crontab -e */1 * * * * php /var/www/html/cacti/poller.php >/dev/null 2>&1 crontab 如果是在root用户下执行的,生成的rrd文件的权限属于root,如果是在cacti下面执行的,那么文件的所属权限是cacti

2.7 关闭selinux和iptables

操作完成之后在浏览器中输入http://ip_address/cacti 就可以进入安装页面了。默认的用户名和密码都是admin ,登录进去之后,会强制提示修改密码。(曾经遇到一个问题就是用户名和密码验证正确,但是页面一直卡在登录界面,后来查看日志文件知道原来是php下面的session的权限出错,将/var/lib/php/session的所属用户改为和httpd启动一样的用户,或者将其权限改为777)登陆进去之后会看到如下页面:

如果这里的路径配置正确,就可以进入cacti的页面,但是如果路径错误,请填写自己的配置文件的路径,这里不再赘述。

3、安装插件

要想充分利用cacti 的功能,就必须装插件,下面介绍几种常用的插件: Cacti-spine,

monitor,thold,setting

3.1 Cacti-spine 安装

spine是一个基于C语言的,非常快速的轮询引擎。它是默认的cmd.php的可选替代,主要是为了加快SNMP轮训。 tar xvzf cacti-spine-0.8.7g.tar.gz cd cacti-spine-0.8.7g ./configure make make install

找到spine的配置文件,这是这为cacti数据的链接信息 DB_Host localhost # 主机地址 DB_Database cacti # 数据库 DB_User cacti # 数据库用户 DB_Pass cacti # 数据库连接密码 DB_Port 3306 # 数据库连接端口 DB_PreG 0 设置Spine

a)以admin用户登录到Cacti

b)从目录菜单中选择设置”Settings”,选择”Paths”选项卡

c)在”Spine Poller File Path”中输入Spine可执行程序的完整路径,(对我来说是/var/www/html/spine/spine,点击保存 d)选择”Poller”选项卡

e)在”Poller Type”下拉框设置中,选择”spine”,(来代替原来的cmd.php)

这样安装是否能够正确的执行呢?到spine目录下执行以下spine文件就好, 竟然报错了!!(我在这里纠结了三个晚上呢,经历了各种痛苦,才找到原因的,所以特地的写出来,避免大家犯同样的错误)原因是:spine默认配置文件需要放在/etc才会生效,否则报如下错误: 08/11/2011 04:58:29 PM - SPINE: Poller[0] FATAL: Unable to read configuration file! (Spine init) 执行下面的语句 cp spine.conf.dist /etc/spine.conf 再次测试spine文件: Setting Monitor Thold 其实setiing monitor 以及thold 的插件安装相对简单很多,只需要将文件解压之后,放到cacti/plugins下面,然后到页面中启用这些插件就可以(但是要注意这些文件的权限)。 这里仅仅介绍了cacti的一部分功能,cacti还有很多功能我也是在学习之中,有什么写的不对的地方,还请大家多多指教。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top