阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

cacti安装与配置

56次阅读
没有评论

共计 6234 个字符,预计需要花费 16 分钟才能阅读完成。

导读 Cacti 是一套基于 PHP,MySQL,SNMP 及 RRDTool 开发的网络流量监测图形分析工具。在三大开源工具中,cacti 的网络监控能力是非常强的,通过 snmpget 来获取数据,使用 RRDtool 绘画图形,而且你完全可以不需要了解 RRDtool 复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host 以及任何一张图,还可以与 LDAP 结合进行用户验证,同时也能自己增加模板,功能非常强大完善。今天我们介绍下 cacti 的安装与配置
一,cacti 介绍
1. 什么是 Cacti?

Cacti 在英文中的意思是仙人掌的意思,Cacti 是一套基于 PHP,MySQL,SNMP 及 RRDTool 开发的网络流量监测图形分析工具。它通过 snmpget 来获取数据,使用 RRDtool 绘画图形,而且你完全可以不需要了解 RRDtool 复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host 以及任何一张图,还可以与 LDAP 结合进行用户验证,同时也能自己增加模板,功能非常强大完善。Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

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

Mysql 配合 PHP 程序存储一些变量数据并对变量数据进行调用,如:主机名、主机 ip、snmp 团体名、端口号、模板信息等变量。

snmp 抓到数据不是存储在 mysql 中,而是存在 rrdtool 生成的 rrd 文件中(在 cacti 根目录的 rra 文件夹下)。rrdtool 对数据的更新和存储就是对 rrd 文件的处理,rrd 文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于 RRDTool 的知识请参阅 RRDTool 教学。

2,什么是 SNMP?

snmp(Simple Network Management Protocal, 简单网络管理协议) 在架构体系的监控子系统中将扮演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上 (如交换机) 都运行了一个 agent,用来收集这个节点的所有相关的信息,同时监听 snmp 的 port,也就是 UDP 161,并从这个端口接收来自监控主机的指令 (查询和设置)。

如果安装 net-snmp,被监控主机需要安装 net-snmp(包含了 snmpd 这个 agent),而监控端需要安装 net-snmp-utils,若接受被监控端通过 trap-communicate 发来的信息的话,则需要安装 net-snmp,并启用 trap 服务。如果自行编译,需要 beecrypt(libbeecrypt) 和 elf(libraryelf) 的库。

3,什么是 RRDtools?

RRDtool 是指 Round Robin Database 工具(环状数据库)。Round robin 是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直往下走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。RRDtool 处理 RRD 数据库。它用向 RRD 数据库存储数据、从 RRD 数据库中提取数据。

cacti 安装与配置

Cacti 整个系统的架构是这样的:基于 SNMP 协议,被监控端是服务器,或一些网络设备,网络管理工作站,采用 Linux(或 Freebsd) 操作系统,并且安装 Net-SNMP 工具,使用 RRDTOOL 采集数据,存储数据,并用 Cacti 调用 rrdtool 显示出来。

CACTI 采用 PHP 编写,基于 B / S 结构。

cacti 安装与配置

Cacti 的实例应用:
1)网络设置

2)主机系统(1)网络接口流量(进与出的带宽)(2)监控 CPU 的负载、内存等等(3)监控磁盘的空间、进程数等等

3)cacti 常见的监测对象(1)服务器资源:CPU、内存、磁盘、进程、连接数等(2)服务器类型:WEB、Mail、FTP、数据库、中间件(3)网络接口:流量、转发速度、丢包率(4)网络设备性能、配置文件(对比与备份)、路由数(5)安全设备性能、连接数、攻击数(6)设备运行状态:风扇、电源、温度(7)机房运行环境:电流、电压、温湿度 
二,cacti 安装

以下使用 CentOS release 6.7 (Final) 进行安装,将 cacti 根目录放置在 /web/vhosts,并配置 web 服务器使用 http://cacti.feiyu.com/ 进行访问,首先在主监控机上安装 LAMP 的 web 环境,此处直接使用 yum 进行安装。

[root@localhost ~]# yum install -y yum install php php-mysql php-snmp mysql mysql-server  php-pdo perl-DBD-MySQL
[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf   #配置 cacti 访问路径

        ServerName cacti.feiyu.com
        DocumentRoot /web/vhosts/cacti
        <directory "/web/vhosts/cacti">
                Options Indexes
                AllowOverride none 
                Order allow,deny
                Allow from all
        
        ErrorLog "logs/cacti-error_log"
        CustomLog "logs/cacti-access_log" common

然后安装 snmp:

[root@localhost ~]# yum install net-snmp net-snmp-utils -y

再安装 rrdtool:

[root@localhost ~]# yum install -y rrdtool rrdtool-devel rrdtool-php

下载 cacti:

[root@localhost ~]# wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz
 
[root@localhost ~]# mkdir /web/vhosts -p
 
[root@localhost ~]# tar xf cacti-0.8.8f.tar.gz -C /web/vhosts/     #cacti 根目录放置处
[root@localhost ~]# cd  /web/vhosts/
[root@localhost vhosts]# ls
cacti-0.8.8f
[root@localhost vhosts]# ln -sv cacti-0.8.8f cacti
 
[root@localhost ~]# service httpd start
[root@localhost ~]# service mysqld start

cacti 文件中有创建表的 sql 语句,但是没有创建数据库,需要手动创建。

[root@localhost cacti]# mysqladmin create cactidb
[root@localhost cacti]# mysql cactidb < cacti.sql [root@localhost cacti]# mysql -e "grant all on cactidb.* to cactiuser@localhost identified by'cactiuser'"[root@localhost cacti]# mysqladmin flush-privileges [root@localhost cacti]# mysql -u cactiuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type'help;'or'\h'for help. Type'\c' to clear the current input statement. mysql> show  databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cactidb            |
| test               |
+--------------------+
3 rows in set (0.00 sec)
 
mysql> \q
Bye

编辑 cacti 配置文件,修改根目录:

[root@localhost cacti]# cd include/    
[root@localhost include]# vim config.php 
$database_type = "mysql";
$database_default = "cactidb";    #修改为自己创建的数据库
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
$database_ssl = false;
$url_path = "/";

cacti 获取数据需要用普通用户执行脚本获取。

[root@localhost cacti]# useradd  cactiuser
[root@localhost cacti]# chown -R cactiuser.cactiuser log rra

安装好 cacti 后,首先校对时间。

[root@localhost log]# date 0122203616

定义定时任务执行数据收集脚本

[root@localhost cacti]# echo '*/5 * * * * /usr/bin/php /web/vhosts/cacti/poller.php &> /dev/null' > /var/spool/cron/cactiuser

执行此脚本会报许多错,原因是 php 时区有问题

[root@localhost cacti]# php /web/vhosts/cacti/poller.php

修改时区:

[root@localhost cacti]# vim /etc/php.ini 
 
947 date.timezone = Asia/Shanghai
 
[root@localhost cacti]# service php-fpm restart

然后开始在浏览器中访问 cacti,指定 rrdtool、php、snmp 工具的 Binary 文件路径,确保所有的路径都是显示”FOUND”,没有“NOT FOUND”的,点击 Finish 完成安装。默认账号和密码都是 admin,首次登陆首先需要修改密码。

cacti 安装与配置

点击 graphs,查看 cacti 监控本机的图表。

三,添加监控项

下面开始添加自定义监控项,需要自己编写脚本实现。

1,编写脚本,以下添加的为监控 tcp 的连接数
[root@cacti ~]# vim tcpconn.sh
 
#!/bin/bash
#
#$1:hostname or IP
#$2:snmp community(public)
 
SNMPNETSTAT=/usr/bin/snmpnetstat
 
ESTABLISHED=`$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1|grep -i 'established'|wc -l`
 
echo -n "established:$ESTABLISHED"
 
[root@cacti ~]# cp tcpconn.sh /web/vhosts/cacti/scripts/     #复制脚本到 cacti 目录中 
2,在 cacti 图像化窗口中定义监控项

添加步骤如下所示:

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

(1)在 Data Input Methods 中添加脚本,并需要在 Input Fields 中添加用户需要传的参数,http://cacti.feiyu.com/,进入 cacti 图形窗口,点击 Data Input Methods–>add,如下所示:

cacti 安装与配置

(2)然后在 Iutput Fields 定义输入字段 2 个,与脚本中的输入保持一致:

cacti 安装与配置 cacti 安装与配置

(3)然后在 Output Fields 定义输出字段,与脚本中的输出保持一致:

cacti 安装与配置

定义完成后如下图所示:

cacti 安装与配置

(4)数据收集后需要保存在 RRD 文件中, 然后创建 RRD 文件,在 Data Templates 中添加数据模板:

cacti 安装与配置

有了数据模板然后创建数据源,点 Data Sources

cacti 安装与配置

数据文件定义完成如下所示:

cacti 安装与配置

(5)然后创建模板,将模板应用到主机上就能生成图片了:

cacti 安装与配置

(6)然后添加图片格式:

cacti 安装与配置

图片格式添加完成后如下所示:

cacti 安装与配置

(7)然后点 Graph Management 关联设备:

cacti 安装与配置

(8)关联主机后并关联数据源:

cacti 安装与配置cacti 安装与配置

(9)然后再添加对图片的说明(图片下面的彩色方块):Console -> Graph Templates -> (Edit) -> Graph Template Items,将 Current,Average,Max 都添加上去:

cacti 安装与配置

3,重新编辑脚本,添加多个监控指标
[root@cacti scripts]# vim tcp3.sh 
#!/bin/bash
#
#$1:hostname or IP
#$2:snmp community(public)
 
SNMPNETSTAT=/usr/bin/snmpnetstat
 
TEMPFILE=`mktemp /tmp/$1_tcpconn.XXXXXXXXXX` 
$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 > $TEMPFILE
 
 
ESTABLISHED=`grep -i "ESTABLISHED" $TEMPFILE|wc -l`
TIMEWAIT=`grep -i "TIMEWAIT" $TEMPFILE|wc -l`
SYNRECEIVED=`grep -i "SYNRECEIVED" $TEMPFILE|wc -l`
 
echo -n "established:$ESTABLISHED timewait:$TIMEWAIT synreceived:$SYNRECEIVED"
 
[root@cacti scripts]# cp tcp3.sh /web/vhosts/cacti/scripts/

然后在浏览器中进行定义,定义的步骤与上面的相同的。

定义完成后的数据模板如下所示:

cacti 安装与配置

添加图像完成后如下所示:

cacti 安装与配置

最终生成的图像如下:

cacti 安装与配置

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计6234字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中