Cacti的设置以及Spine轮询器

Cacti的设置  php

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

wKiom1PoDdGwpcgIAAQaoHPu__g367.jpg

咱们看到上图中,箭头指向的地方,咱们能够针对这些项目进行设置。sql

首先咱们看一下“General”,通用配置,配置的内容主要有如下几项bash

  • 日志服务器

  • SNMP相关的设置多线程

  • 其余配置ide

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


接下来看“Path”选项,很明显,这是和路径相关的。主要配置的内容有测试

  • 所需工具的路径(snmp, rrdtool, php)优化

  • Cacti日志文件的存放路径

  • Spine轮询优化器的路径(在下面的内容中咱们立刻讲解)

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

    咱们看到,这里的配置路径和刚开始安装和初始化Cacti时的检测的一致。全部的配置保持默认便可,基本不须要配置。

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

wKiom1PoEbmBnyzZAAA98ULKqu4901.jpg


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

  • 通用配置

  • 采集器参数设置

  • 主机高可用配置

  • 主机在线/宕机配置

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

wKiom1PoG52T2w64AAEjjE4JCxk324.jpg


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

  • 通用配置

  • 图形树配置

  • 缩略图配置

  • 路径配置

  • 导出时间配置FTP选项等

咱们通常不须要导出图形。


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

  • 图形管理配置

  • 数据查询配置

  • 图形建立配置

  • 数据源显示配置

  • 主机显示配置

  • 日志管理配置

  • 默认的RRDTool工具配置

保持默认的配置便可。


最后,咱们讲解“Authentication”选项,主要有四种认证方式,分别为:

  • 无             无认证方式,全部的用户都将拥有所有访问权限(危险)

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

  • WEB基本认证    经过Apache控制用户认证,若是定义了模板用户,新用户将在第一次登录时被建立,不然将会使用已定义的来宾用户权限。

  • LDAP认证       容许将认证交给LADP服务器,若是定义了模板用户,新用户将在第一次登陆时被建立,不然,将会使用已定义的来宾用户权限,若是没有启用PHP的LDAP模块,下拉菜单中不会出现LDAP认证。

一般,咱们会选择内建验证。


开启匿名访问用户:guest

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

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

wKioL1PoIZbAUd7DAAQEr64sTJs123.jpg

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



Cacti优化之spine轮询器

   咱们知道cacti经过poller.php驱动其余数据收集方法或脚本周期性的执行。因为效率的缘由,在须要大量采集数据时,若是使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能没法完成轮询全部的被监控的机器。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。

这里直接引入官方的文档http://www.cacti.net/spine_install.php

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.

  1. Login to Cacti as an admin user.

  2. Select Settings on the menu and click the Paths tab.

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

  4. Click the Poller tab.

  5. 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。

一、解决依赖关系

## spine 依赖于mysql mysql-devel net-snmp-devel openssl-devel
## 咱们在安装cacti的时候已经安装 mysql  mysql-devel 因此,这里只需安装另外2个
[root@localhost ~]# yum -y install  net-snmp-devel openssl-devel

二、下载并安装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/目录下。

三、提供配置文件

[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;

四、测试是否正常

[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

wKioL1PoK5_RMHa4AABsxGQF3o0675.jpg

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 ~]#

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

 前面,咱们已经提到了。

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

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

wKiom1PoK5iRqptOAAFQqsCfm8g626.jpg

六、修改Cacti默认的Poller Types

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

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

wKioL1PoLTDh7Q8PAACj-QuoBLk804.jpg

注意: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 定义的周期相同,不然可能出现偏差,莫名其妙的问题。

wKioL1RCOXCgs15AAAQIx3Wb-vI580.jpg

### 这里的路径,请根据实际状况更改
## 对于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





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

相关文章
相关标签/搜索