cacti安装与配置

article/2025/9/12 0:35:16

目录

一,cacti介绍

1.什么是Cacti?

2.什么是SNMP?

3.什么是RRDtools?

二,cacti安装

三,添加监控项

1.编写脚本,以下添加的为监控tcp的连接数

2.在cacti图像化窗口中定义监控项

3.重新编辑脚本,添加多个监控指标


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

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

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.comDocumentRoot /web/vhosts/cacti<directory "/web/vhosts/cacti">Options IndexesAllowOverride none Order allow,denyAllow from allErrorLog "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,首次登陆首先需要修改密码。

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

三,添加监控项

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

1.编写脚本,以下添加的为监控tcp的连接数

[root@cacti ~]# vim tcpconn.sh#!/bin/bash
#
#$1:hostname or IP
#$2:snmp community(public)SNMPNETSTAT=/usr/bin/snmpnetstatESTABLISHED=`$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图像化窗口中定义监控项

添加步骤如下所示:

        Data Input Methods -> Input Fields(添加所需要的参数) -> Output Fields(输出字段,名字要与脚本所定义的名字保持一致) -> Data Templates(定义数据模板)-> Data Sources(定义数据源)-> Graph Templates(定义图像模板并添加图像) Graph Template Items -> 并为每一个图像添加GPRINT(需要为每个数据源添加Current,Average,Max)-> Graph Management (添加图片)-> Export Templates(导出模板)

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

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

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

定义完成后如下图所示:

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

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

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

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

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

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

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

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

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

3.重新编辑脚本,添加多个监控指标

[root@cacti scripts]# vim tcp3.sh 
#!/bin/bash
#
#$1:hostname or IP
#$2:snmp community(public)SNMPNETSTAT=/usr/bin/snmpnetstatTEMPFILE=`mktemp /tmp/$1_tcpconn.XXXXXXXXXX` 
$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 > $TEMPFILEESTABLISHED=`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/

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

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

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

最终生成的图像如下 :


http://chatgpt.dhexx.cn/article/2UkwXB4D.shtml

相关文章

网络监控cacti1.2.12安装部署(一)

网络监控cacti1.2.12安装部署(一) 网络监控cacti1.2.12安装部署(一) 网络监控cacti1.2.12监控配置(二) 网络监控cacti1.2.12邮件报警(三) 网络监控cacti1.2.12图形显示故障(四) 网络监控cacti1.2.12解决图像显示乱码(五) 一、cacti概述 cacti是基于php语言实现的一个软件&…

一款实用免费的日志自动化分析工具

PAL是什么? PAL&#xff08;Performance Analysis of Logs&#xff09;是一个实用、免费的日志分析自动化工具&#xff0c;协助快速诊断服务器级别的性能问题。 PAL有什么特性&#xff1f; PAL主要用来自动分析PerfMon&#xff08;性能监视器&#xff09;产生的日志信息&#…

5 个有用的开源日志分析工具

监控网络活动既重要又繁琐&#xff0c;以下这些工具可以使它更容易。 监控网络活动是一项繁琐的工作&#xff0c;但有充分的理由这样做。例如&#xff0c;它允许你查找和调查工作站和连接到网络的设备及服务器上的可疑登录&#xff0c;同时确定管理员滥用了什么。你还可以跟踪软…

日志管理工具分析

1969年夏天的贝尔实验室&#xff0c;Ken 和Dennis那个举动引起的蝴蝶效应是如此巨大。他们催生了伟大开源系统UNIX,此后各种开源应运而生。日志管理系统是开源历史伟大的分支。而今天总有那些以开源为名&#xff0c;做着违背开源价值事情。整理遇到的开源日志管理软件记录下来&…

【笔记】最佳日志管理工具:51个有用的日志管理、监视、分析等工具

最佳日志管理工具:51个有用的日志管理、监视、分析等工具 痛苦的纯文本日志管理日子一去不复返了。虽然纯文本数据在某些情况下仍然很有用&#xff0c;但是在进行扩展分析以收集有洞察力的基础设施数据并改进代码质量时&#xff0c;寻找一个可靠的日志管理解决方案是值得的&am…

loginsight,一款通用的日志分析工具

Loginsight是一款开源的通用日志分析工具&#xff0c;能快速打开大文件&#xff0c;且集成了时间线、过滤窗、正则搜索、分享等功能&#xff0c;有效帮助理清线索、记录思路、整理分析结果 官网 下载地址 文档与详细介绍 GitHub Gitee 时间线 时间线类似书签功能&#xf…

最好用的开源日志分析工具

监控网络活动既重要又繁琐&#xff0c;以下这些工具可以使它更容易。监控网络活动是一项繁琐的工作&#xff0c;但有充分的理由这样做。例如&#xff0c;它允许你查找和调查工作站和连接到网络的设备及服务器上的可疑登录&#xff0c;同时确定管理员滥用了什么。你还可以跟踪软…

一款专业的日志分析软件——EventLog Analyzer

日志分析是一种广泛应用于计算机系统中的技术&#xff0c;用于从大量数据中提取有用信息。在计算机系统中&#xff0c;日志是由操作系统、应用程序和设备生成的记录&#xff0c;这些记录可以包含有关系统性能、故障、异常行为和用户活动的信息。通过分析这些日志&#xff0c;可…

网站日志分析软件--让网站日志分析工作变得更简单

网站的日志分析&#xff0c;是seo优化不可忽视的一门功课&#xff0c;但网站越大&#xff0c;每天产生的日志就越大&#xff0c;大站一天都可以产生几个G的网站日志&#xff0c;如果光靠肉眼去分析&#xff0c;那可能看到猴年马月都看不完&#xff0c;因此借助网站日志分析工具…

日志自动分析和解析开源工具

论文原文 https://arxiv.org/pdf/1811.03509.pdf 翻译原文 https://blog.csdn.net/arpospf/article/details/98795806 GitHub 日志解析&#xff1a;https://github.com/logpai/logparser 自动日志分析的工具和基准 Abstract——在许多软件系统的开发和维护过程中&#x…

开源:通用的日志分析工具(LogViewer)

工具介绍 本工具最早是制作出来查看我的 FTL(Fast Trace Log) 二进制日志文件的, 后来因为去做Java后台,经常看 SpringBoot, Tomcat 等的日志, 就简单重构了一下, 从而支持通过正则来通用的分析日志. LogViewer 一个通用的日志查看器. 可以通过用户配置的正则表达式解析文本格…

10个优秀的日志分析工具

在网络管理员的日常工作中&#xff0c;对日志文件的分析能够及时了解网络设备或应用的性能数据&#xff0c;以便及时发现问题并及时解决。分析日志文件的时候需要运用到日志分析工具&#xff0c;接下来就给大家分享10个优秀的日志分析工具&#xff1a; 1、SolarWinds Log&…

推荐几款常用的日志分析利器

1. Notepad notepad官网-notepad下载-免费开源文本编辑器-Notepad (notepadplus.com.cn)http://www.notepadplus.com.cn/ notepad是我最早使用的日志查看与分析工具。优点是体积小&#xff0c;打开速度快&#xff0c;支持全文过滤&#xff1b;缺点是无法跨平台&#xff0c;且…

多款日志分析工具,总有一款适合你

IDE vs&#xff0c;pycharm等等基本打开大文件都会卡死老半天&#xff0c;然后搜索可能也会非常卡&#xff0c;所以就不推荐了。 如果是Vim之类的&#xff0c;倒是没啥压力&#xff0c;大部分都随便开。 UVviewsoft LogViewer http://www.uvviewsoft.com/logviewer/ 非常强大…

potainer 日志_分享10个优秀的日志分析工具

在网络管理员的日常工作中,对日志文件的分析能够及时了解网络设备或应用的性能数据,以便及时发现问题并及时解决。分析日志文件的时候需要运用到日志分析工具,接下来小编就给大家分享10个优秀的日志分析工具: 1、SolarWinds Log&Event Manager:Windows的日志分析工具,可…

DelphiXE10.3 FMX(FireMonkey) 画图指南 非常全面

{ 相关介绍&#xff1a; FMX 的 Canvas 在不同的系统上会分别使用: WinVista、Win7: D2D (FMX.Canvas.D2D.pas) WinXP: GDI (FMX.Canvas.GDIP.pas) Mac 系列: Core Graphics (FMX.Canvas.Mac.pas) 和 HTML5 中的 Canvas 非常类似, 现在的 Canvas 模糊了 Pen 的概念: 之前的 Ca…

delphi xe android 黑屏,Delphi XE之路(3)解决启动时短暂的黑屏

以下转自玻璃城市的博客&#xff0c;已经在我手机上测试成功&#xff01;不过带来一个新的问题&#xff0c;在手机横向时程序会停止执行&#xff1f;&#xff1f;&#xff1f; delphi xe5 编译的程序在启动时会有短暂的黑屏出现&#xff0c;这个现象产生是因为启动首个activity…

android sqlite 打包 xe,Delphi XE使用SQLite3

用Delphi开发小程序&#xff0c;之前使用过Access数据库&#xff0c;但是由于Access依赖于office&#xff0c;感觉有些不太方便&#xff0c;研究一下Delphi使用SQLite3。 SQLite是一款轻型的数据库&#xff0c;是遵守ACID的关系型数据库管理系统&#xff0c;它包含在一个相对小…

Delphi XE10.4 安装AlphaControls15.12

Delphi XE10.4 安装AlphaControls15.12 1、新建一个待安装控件的目录,如&#xff1a;D:\vcl\AlphaControls 2、将解压包复制进该目录&#xff08;XE10.4对应DX10Sydney&#xff09; 3、找到与Delphi版本对应有目录&#xff1a;D:\vcl\AlphaControls\DX10Sydney 4、将此目录&…

delphi xe 连接 mysql_Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决

Delphi IDE中包含一个Data Explorer的组件&#xff0c;如下图所示&#xff1a; 该组件基于dbExpress(包含TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TsqlServerMethod、TSQLMonitor、TSimpleDataSet)。但是因为该组件只提供了各种数据库的抽象驱动&…