cacti poller.php和spine的关系,Cacti的设置以及Spine轮询器

Cacti的设置

接着上一篇的cacti系列讲解,在配置选项中有两个子项目,Settings和Plugin Management。我们点击Settings后,出现以下界面。

fb3d1d2e95a661a48c512ea599bb3771.png

我们看到上图中,箭头指向的地方,我们可以针对这些项目进行设置。

首先我们看一下“General”,通用配置,配置的内容主要有以下几项日志

SNMP相关的设置

其他配置

其实这里基本上不需要进行修改,保持默认的配置即可。如果需要修改,也就是“Required Tool Versions”和“SNMP Defaults”,修改后点击“Save”。

接下来看“Path”选项,很明显,这是和路径相关的。主要配置的内容有所需工具的路径(snmp, rrdtool, php)

Cacti日志文件的存放路径

Spine轮询优化器的路径(在下面的内容中我们马上讲解)

结构化RRD路径(勾选此选项,那么每一个主机的RRD文件会单独存放在某个目录下)

我们看到,这里的配置路径和刚开始安装和初始化Cacti时的检测的一致。所有的配置保持默认即可,基本不需要配置。

唯一我们下面需要更改的地方就是 【Alternate Poller Path】, 先记住,我们下面再说。

761ec4ec2d89bd40994dc8ab041ff055.png

接下来看“Poller”选项,Cacti采集器的配置,主要配置内容有通用配置

采集器参数设置

主机高可用配置

主机在线/宕机配置

在Poller配置中我们可以选择“Poller Type”(采集器类型),cmd.php及poller.php采集器,此采集器是用php编写的,功能比较简单。另一种是spine采集器,是多线程的,效率比较高,适合大规模的监控。等一下我们就会详细介绍spine的安装使用,这里先别动。

0345ac16837c622a580e5d8a2ea02921.png

接下来是“Graphs Export”选项,可以将我们生成的图片导出到什么地方。可以导出到本地,或是远程FTP服务器上,主要的配置选项有:通用配置

图形树配置

缩略图配置

路径配置

导出时间配置FTP选项等

我们一般不需要导出图形。

下面是“Visual”选项,主要设置Cacti页面是如何显示的,主要配置有图形管理配置

数据查询配置

图形创建配置

数据源显示配置

主机显示配置

日志管理配置

默认的RRDTool工具配置

保持默认的配置即可。

最后,我们讲解“Authentication”选项,主要有四种认证方式,分别为:无             无认证方式,所有的用户都将拥有全部访问权限(危险)

内建验证       Cacti控制用户认证,这将允许你建立用户并设置它们访问Cacti的权限。

WEB基本认证    通过Apache控制用户认证,如果定义了模板用户,新用户将在第一次登陆时被创建,否则将会使用已定义的来宾用户权限。

LDAP认证       允许将认证交给LADP服务器,如果定义了模板用户,新用户将在第一次登录时被创建,否则,将会使用已定义的来宾用户权限,如果没有启用PHP的LDAP模块,下拉菜单中不会出现LDAP认证。

通常,我们会选择内建验证。

开启匿名访问用户:guest

第一步:User management -> 出现用户列表, 点击“用户名”

User management -> 点击“guest”, 会出现如下界面,勾选 Enabled

5e2fa12f7ac5ac0eb36f3d8d14c076ea.png

第二步:针对graph等进行默认的权限设置。也就是被圈住的各个选项,分别配置其访问的权限。

Cacti优化之spine轮询器

我们知道cacti通过poller.php驱动其他数据收集方法或脚本周期性的执行。由于效率的原因,在需要大量采集数据时,如果使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能无法完成轮询所有的被监控的机器。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。

Spine Installation

Spine needs to be compiled before it can be used. If you found a binary package of Spine for your operating system, you can skip the next step about compiling Spine.

Compiling Spine

Compiling Spine for Redhat/Fedora Linux

Before you continue, check if any pre-compiled packages are available for your version of Redhat/Fedora Linux. These instructions will help you compile Spine from source if no binary packages are available.

Prerequisites

Make sure that the following packages are installed before attempting to compile Spine:net-snmp-devel

mysql

mysql-devel

openssl-devel

Compiling Spine

Download the latest source distribution of Spine and run the following commands to get a working binary:

tar xvzf cacti-spine-0.8.7.tar.gz

cd spine-0.8.7

./configure

make

Now you must move your new binary, spine and spine.conf to a more permanent home such as /usr/local/spine. Edit thespine.conf file and specify your database connection information for Cacti.

You should now be ready to start using Spine!

Setting Up Spine

Once Spine is installed on your system, you must perform the following steps to make your Cacti installation aware of it.Login to Cacti as an admin user.

Select Settings on the menu and click the Paths tab.

Enter the complete path to your Spine binary in the Spine Poller File Path field and click Save.

Click the Poller tab.

Choose "spine" from the Poller Type dropdown box and click Save.

After completing these steps, Cacti will spawn Spine every 5 minutes instead of cmd.php. If you are having problems getting Spine to gather data, you can always temporarily change Poller Type back to "cmd.php".

鉴于有些同学看着英文就有点头晕,这里我也演示一下,如果安装及设置spine。

1、解决依赖关系## spine 依赖于mysql mysql-devel net-snmp-devel openssl-devel

## 我们在安装cacti的时候已经安装 mysql  mysql-devel 所以,这里只需安装另外2个

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

2、下载并安装spine,下载的版本最好与cacti一致,spine-0.8.8b# 下载地址, 下载和 cacti 版本一致的spine

http://www.cacti.net/downloads/spine/

[root@localhost ~]# tar xf cacti-spine-0.8.8b.tar.gz

[root@localhost ~]# cd cacti-spine-0.8.8b

[root@localhost cacti-spine-0.8.8b]# ./configure

[root@localhost cacti-spine-0.8.8b]# make && make install

# 默认安装在/usr/local/spine/目录下。

3、提供配置文件[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf

## 编辑配置文件,请根据实际情况修改

[root@localhost ~]# vi /etc/spine.conf

DB_Host         localhost

DB_Database         cactidb

DB_User         cactiuser

DB_Pass         cactiuser

DB_Port         3306

DB_PreG         0

# 这里的配置是怎么来的呢? 还记得吧, 就是 cacti/include/config.php

/* make sure these values refect your actual database/host/user/password */

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

$database_port = "3306";

$database_ssl = false;

4、测试是否正常[root@localhost ~]# /usr/local/spine/bin/spine

## 报错了

MYSQL: Connection Failed: Error:'2003', Message:'Can't connect to MySQL server on 'shuttle' (61)'

05/12/2012 07:14:22 PM - SPINE: Poller[0] FATAL: Connection Failed, Error:'2003', Message:'Can't connect to MySQL server on 'shuttle' (61)' (Spine init)

## google了一下

You probably checked it out already but make sure:

DB_Host 127.0.0.1

and NOT

DB_Host localhost

7d4346af2dabfd313d310eaab1e77805.png

OK, 再测试一下:[root@localhost ~]# /usr/local/spine/bin/spine

SPINE: Using spine config file [/etc/spine.conf]

SPINE: Version 0.8.8b starting

SPINE: Time: 0.1707 s, Threads: 5, Hosts: 2

[root@localhost ~]#

5、在cacti的WEB页面设置spine的路径

前面,我们已经提到了。

Console -> 【Configureation】下的 Settings -> 【Paths】标签下 Alternate Poller Path -> Spine Poller File Path

输入spine的路径:默认安装在/usr/local/spine/bin/spine

63449fe29870a56324a7531ba556cfb4.png

6、修改Cacti默认的Poller Types

刚才Paths标签旁边 【Poller】 -> Poller Type

在下拉框中,选择spine, 然后记得“Save”

ef35d351ae422c5ef56efb92bfa74fd4.png

注意:Spine不必为其添加计划任务,Cacti well spawn Spine every 5 minutes instead of cmd.php

而poller.php需要定义计划任务去执行,然后poller.php再去调度数据收集方法。

小结一下:

a)以admin用户登录到Cacti。

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

c)在”Spine Poller File Path”中输入Spine可执行程序的完整路径,我的是/usr/local/spine/bin/spine,保存设置。

d)选择”Poller”选项卡。

e)在”Poller Type”下拉框设置中,选择”spine”。并设置poller, cron间隔时间。

查看下Cacti日志:

01/17/2012 11:31:02 PM – SYSTEM STATS: Time:1.1105 Method:spine Processes:1 Threads:1 Hosts:4 HostsPerProcess:4 DataSources:51 RRDsProcessed:27

原来的如下:

01/17/2012 10:46:03 PM – SYSTEM STATS: Time:1.5050 Method:cmd.php Processes:1 Threads:N/A Hosts:4 HostsPerProcess:4 DataSources:51 RRDsProcessed:27

查看服务器的流量图正常。

poller.php 与 cmd.php和spine 之间是什么关系呢?这里有必要说明一下。

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工作。

在cacti设置中,选择poller type 是 spine, 然后把poller Interval 改为Every Minute, 同时也把Cron Interval改为Every Minute。 然后, 我们还需要把poller.php的计划任务改为每分钟执行一次。

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

bacd63cd25da93b695836956a2d1ef5e.png### 这里的路径,请根据实际情况更改

## 对于spine

*/1 * * * *  path/to/your/php /usr/share/cacti/poller.php > /dev/null 2>&1

## 对于cmd.php

*/5 * * * * path/to/your/php /usr/share/cacti/poller.php > /dev/null 2>&1

好了, 到这里就结束了。下一篇继续讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值