Cacti 抓取数据方式 安装spine

Cacti获取数据可通过脚本或SNMP,主要采用主动监控,由cmd.php或Spine执行轮询。Spine是C语言实现,效率更高,支持多进程多线程。配置包括安装依赖、下载Spine、配置数据库信息、修改Cacti设置。遇到问题如路径无效,可能导致数据丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装好cacti后首先要设置获取数据的方式

Cacti 获取数据的方式有两种,
1.监控端的脚本(可以是php, shell, perl 或其他脚本)
2.或者 snmp 协议获取。

Cacti 会在固定的时间间隔启动轮询进程,使用定义好的方式获取被监控的数据,这种监控方式通常叫做 主动监控 。

执行轮询获取数据的进程叫做 cmd.php 它由 poller.php 调用, poller.php 在监控机上由计划任务定时执行。数据量多的时候,可以设置启动多个 cmd.php 进程,
       或者使用 spine 这个程序,它由 c 语言编写,效率更高,可以实现多进程加多线程。


  • 主动监控的优点是被监控端通常不需要额外安装其他软件,一切数据由监控端主动来获取。

  • 主动监控的缺点很明显,如果某些被监控端出现异常,获取不到数据或者数据获取延迟。那么监控端的轮询进程需要等待这些被监控数据获取超时或延迟,这样必然会阻塞轮询进程去获取其他数据,在轮询时间短或主机较多的情况下,可能出现在轮询周期已经结束,下一次轮询已经开始,而本次轮询还没有结束,造成某些没来得及获取。

        (在大规模的监控体系中,一般使用 被动监控 ,客户端主动向监控机发送数据。 被动监控 一般需要在客户端安装监控代理程序,Nagios 和 Zabbix 可以实现被动监控,而 Cacti 只支持主动监控)


Cacti抓取数据方式

.——使用poller.php 抓取数据
        poller.php顾名思义,就是轮询器。它是cacti能够周期性获取数据原始驱动。poller.php是cacti获取数据的一个工具,这个工具是没有办法替代的,cacti必须使用poller.php才能正常工作。
         poller.php负责调用cmd.php或者spine。

可以这样认为,poller.php是最终汇总数据的,而cmd.php是获取数据的就行。poller.php发出获取数据的信号,告诉cmd.php 去获取数据,然后cmd.php就会调用那些定义好的数据收集方法去获取数据。

    poller.php可以调用cmd.php, 但是由于cmd.php效率不高,最短执行周期是5分钟,因此cacti提供了一个更高效的工具spine来替代cmd.php,最短执行周期1分钟,可以极大的提高效率。

    所以,无论是使用cmd.php,还是spine, 我们都必须设置 poller.php 的 cron 计划任务,让poller.php去驱动cmd.php或者spine工作。 

            spine是根据我们设定Poller Interval设置的值运行的,poller.php则是我们cron计划任务控制运行的,结果就是按照cron中定义的进行汇总。最好把Poller Interval 和 cron 定义的周期相同,否则可能出现误差,莫名其妙的问题



在crontab中添加定时任务 (每五分钟执行一次)
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php>/dev/null   


2.使用cmd.php 抓取数据

默认使用cmd.php 方式,可以在这里查看
Console -> Cacti Settings->Poller->Poller Type




3..配置spine轮询器来配置

安装配置 Cacti spine

需要使用以下组件
  • net-snmp-devel

    mysql

    mysql-devel

    openssl-devel


1.下载   
     wget http://www.cacti.net/downloads/spine/cacti-spine-1.0.1.tar.gz

2.解压
      tar -zxvf cacti-spine-1.0.1.tar.gz
3.安装
     检查环境
     ./configure
   
报错:
               configure:3520: error: C compiler cannot create executables
              
 error: unrecognized command line option '-V' xgcc: fatal error: no input files
    初步判断 是gcc版本太低(4.8.5),升级gcc5.1.0……

 继续报同样错 :
查找原因, 查看config.log 日志
真正的错误并不在这里,而是在最后一个错误出现的地方
我遇到的错误是:    “collect2: ld returned 1 exit status”
因为缺少了动态库文件。
我这里缺少的是lssl,就是openssl的库文件。
使用命令yum install -y openssl-devel(前面没装的原因)

接着报错:
         configure: error: Cannot find MySQL headers.  Use --with-mysql= to specify non-default path.
少装 mysql-devel扩展了
  yum install mysql-devel (前面没装的原因)


      make
            报错
In  file  included from sql.c:34:
common.h:133:38: error: net-snmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值