Cacti 抓取数据方式 安装spine
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
检查环境
报错:
configure:3520: error: C compiler cannot create executables
error: unrecognized command line option '-V' xgcc: fatal error: no input files
查找原因,查看config.log 日志
我遇到的错误是: “collect2: ld returned 1 exit status”
使用命令yum install -y openssl-devel(前面没装的原因)
In
file
included from sql.c:34:
common.h:133:38: error: net-snmp
/net-snmp-config
.h: No such
file
or directory
common.h:134:32: error: net-snmp
/utilities
.h: No such
file
or directory
common.h:135:40: error: net-snmp
/net-snmp-includes
.h: No such
file
or directory
common.h:136:33: error: net-snmp
/config_api
.h: No such
file
or directory
common.h:137:30: error: net-snmp
/mib_api
.h: No such
file
or directory
In
file
included from spine.h:505,
from sql.c:35:
snmp.h:41: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
make
: *** [sql.o] Error 1
报错提示:需安装net-snmp-devel解决依赖
# yum -y install net-snmp-devel继续报错:
# make
false // No help2man // --output=spine.1 --name='Data Collector for Cacti' --no-info --version-option='--version' ./spine
make: *** [spine.1] Error 1
报错提示:需安装help2man解决#yum -y install help2man
make install
4.修改配置文件及数据库信息
#cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
# vi /usr/local/spine/etc/spine.conf填写数据库信息,即Cacti数据库
DB_Host localhost
DB_Database cacti
DB_User root
DB_Pass cacti
DB_Port 33065.测试是否正常
# /usr/local/spine/bin/spine
SPINE: Using spine config file [../etc/spine.conf]
SPINE: Version 0.8.8a starting
SPINE: Time: 3.8489 s, Threads: 4, Hosts: 21(如果提示找不到配置文件,可以加-C选项手动指定配置文件路径)
6.在cacti里设置spine路径
Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path/usr/local/spine/bin/spine
7.修改Cacti使用的Poller Type
Console -> Cacti Settings->Poller->Poller Type
在下拉中选择spine轮询时间选为每分钟,其它参数可以适当增大些
出错 :
全部完成后发现没有图形了,也没有数据,查看cacti的日志如下:
2017-02-16 14:33:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
2017-02-16 14:34:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
2017-02-16 14:35:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
2017-02-16 14:36:02 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
cacti是使用 poller.php 调用 spine的,这里问题是poller.php 无法调用spine(无法访问spine所在的目录)
cp spine /var/www/html/cacti/spine
没有任何图像产生,查看cacti日志
POLLER: Poller[1] Maximum runtime of 58 seconds exceeded. Exiting.
Cacti 抓取数据方式 安装spine的更多相关文章
- 爬虫学习笔记(1)-- 利用Python从网页抓取数据
最近想从一个网站上下载资源,懒得一个个的点击下载了,想写一个爬虫把程序全部下载下来,在这里做一个简单的记录 Python的基础语法在这里就不多做叙述了,黑马程序员上有一个基础的视频教学,可以跟着学习一 ...
- 分布式爬虫:使用Scrapy抓取数据
分布式爬虫:使用Scrapy抓取数据 Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘. ...
- NET 5 爬虫框架/抓取数据
爬虫大家或多或少的都应该接触过的,爬虫有风险,抓数需谨慎. 爬虫有的是抓请求,有的是抓网页再解析 本着研究学习的目的,记录一下在 .NET Core 下抓取数据的实际案例.爬虫代码一般具有时效性,当 ...
- nodejs--实现跨域抓取数据
最近公司安排给我一个任务,抓取页面数据:http://survey.finance.sina.com.cn/static/20205/20131120.html?pid=20205&dpc=1 ...
- 【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错
原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet ...
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...
- 测试开发Python培训:抓取新浪微博抓取数据-技术篇
测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的se ...
- C#抓取数据、正则表达式+线程池初步运用
去年底用 多线程+HtmlAgilityPack.dll 写了一个抓取“慧聪网” 公司信息的小程序,代码惨不忍赌.好在能抓到数据,速度也能让人忍受就很久没管了. 最近这段时间把这个小程序发给同事看着玩 ...
- PHP Curl模拟登录并抓取数据
使用PHP的Curl扩展库可以模拟实现登录,并抓取一些需要用户账号登录以后才能查看的数据.具体实现的流程如下(个人总结): 1. 首先需要对相应的登录页面的html源代码进行分析,获得一些必要的信息: ...
随机推荐
- Tarjan求割点和桥
by szTom 前置知识 邻接表存储及遍历图 tarjan求强连通分量 割点 割点的定义 在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多, ...
- 四、JVM之栈与栈帧
栈: 1.又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把 另一端称为栈底.其特性是先进后出. 2.栈是线程私有的,生命周期跟线程相同,当创 ...
- hdu6638 线段树求最大子段和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 Problem Description There are n pirate chests bu ...
- 使用使用django-cors-headers解决跨域问题
安装 pip3 install -i https://pypi.douban.com/simple django-cors-headers 注册App INSTALLED_APPS = [ ... ' ...
- @ControllerAdvice自定义异常统一处理
正常来说一个系统肯定有很多业务异常.而这些业务异常的信息如何返回给前台呈现给用户.比如用户的某些操作不被允许,需要给用户提示. Spring 提供了@ControllerAdvice这个注解,这个注解 ...
- 动画 | 什么是平衡二分搜索树(AVL)?
二分搜索树又名有序二叉查找树,它有一个特点是左子树的节点值要小于父节点值,右子树的节点值要大于父节点值.基于这样的特点,我们在查找某个节点的时候,可以采取二分查找的思想快速找到这个节点,时间复杂度期望 ...
- 7、python基本数据类型之散列类型
前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍散列类型. 一.散列类型 内部元素无序,不能通过下标取值 1)字典(dict):用 {} 花括号表示,每一个元素 ...
- c#数字图像处理(十)图像缩放
图像几何变换(缩放.旋转)中的常用的插值算法 在图像几何变换的过程中,常用的插值方法有最邻近插值(近邻取样法).双线性内插值和三次卷积法. 最邻近插值: 这是一种最为简单的插值方法,在图像中最小的单位 ...
- Commvault逻辑架构及组件说明
在学习和使用Commvault软件的过程中,经常会碰到一些术语和缩写,初学者可能并不是很清楚这些术语和缩写的具体含义,接下来我们梳理一下Commvault软件中这些属于和缩写的含义,有可能一次不能梳理 ...
- Shoot the Bullet(有源汇带上下界最大流)
有源汇带上下界最大流 在原图基础上连一条汇点到源点流量为inf的边,将有源汇网络流转化为无源汇网络流用相同方法判断是否满流,如果满流再跑一边源点到汇点的最大流就是答案 例题:Shoot the Bul ...