Cacti安装和插件扩展

cacti

基于lamp平台,利用rrdtool画图。

主要记录cacti的安装配置过程

使用的是cacti 0.8.7b  rrdtool 1.2.X   thold 0.3.9  

cacti下载放在web目录下面,设置权限cacti目录用户为cacti

修改cacti/include/config.php的配置,设置mysql的信息

vim cacti/include/config.php

$database_type = “mysql”;

$database_default = “cactidb”;

$database_hostname = “localhost”;

$database_username = “cactiuser”;

$database_password = “admin”;

只需要修改上面几行相应信息即可。

把cacti目录下的cacti.sql 导入cactidb数据库

mysql -u root -padmin cactidb < cacti.sql

<strong>注意地方: 检查cacti目录的权限和mysql添加cacti的库,设置mysql用户cacti,对库cacti授权给cacti的权限,一切都没问题继续下面</strong>

<blockquote></blockquote>

打开浏览器:http://ip/cacti

选择全新安装,路径要使用数据绝对路径才行,或者保存提示错误

需要注意选择使用的rrdtool版本,记得选择rrdtool 1.2.x的,不然cacti出现有数据,但是没有图形出现的情况。很容易出现这个问题。

su – cacti

在cacti的用户权限下面设置cron

*/1 * * * * /usr/local/php/bin/php /path/cacti/poller.php > /dev/null 2>&1

手动看看是否有报错,查看cacti/rra是否有rrd结尾的数据,如果有文件生成表示执行成功了,再用浏览器cacti设置相应的地方

<strong>安装monitor、thold、settings等插件,以及使用email报警的方式,建议采用139的邮箱自动短信报警,可以不需要些脚本或者没有短信网关的使用</strong>

<strong>Cacti插件是对cacti的扩展。</strong>

要使用cacti插件必须先扩展cacti架构,来支持插件。

1.   安装cacti插件架构扩展cacti的PA

要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件 

PA和cacti版本的关系

PA 1.0 = cacti 0.8.6i

PA 1.1 = cacti 0.8.6i et 0.8.6j

PA 2.0 = cacti 0.8.7b

PA 2.2 = cacti 0.8.7c

PA 2.4 = cacti 0.8.7d

我们用的0.8.7所以用最新的2.4

wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip

unzip cacti-plugin-0.8.7d-PA-v2.4.zip -d cacti-plugin-arch

cp -R cacti-plugin-arch

26 $database_type = “mysql”;

27 $database_default = “cacti”;

28 $database_hostname = “localhost”;

29 $database_username = “cacti”;

30 $database_password = “cacti”;

31 $database_port = “3306”;

34 #$cacti_session_name = “Cacti”;

36 $config[‘url_path’] = “/cacti/”;

37 $plugins = array();

38 $plugins[] = ‘settings’;

39 $plugins[] = ‘thold’;

40 $plugins[] = ‘monitor’;

41 $plugins[] = ‘update’;

42 ?></em><strong></strong>

<strong>1.   安装插件</strong>

插件的安装、升级、移除是很容易的,在安装插件前你必须以确保安装了cacti插件结构扩展。

1).下载插件,在此以Monitor插件为例。

Monitor插件下载地址:http://cactiusers.org/downloads/

解压下载的tar包。

# tar -zvcf monitor-0.7.tar.gz

解压后你会得到一个monitor目录。

2).安装Monitor,只需要将monitor目录拷贝到cacti/plugins/目录,导入monitor.sql(mysql -u cacti -p cacti < monitor.sql)是升级安装,只需要完全覆盖原monitor目录即可。

3).激活monitor插件,修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入:

$plugins[] = ‘monitor’;

注意:上面monitor的名字必须与cacti/plugins/目录下插件目录的名字相同。

4).有些插件需要进行额外的配置,请根据插件的安装文档进行配置,在此略述。

5).移除插件时只要修改cacti配置文件,注释掉与插件相关的行即可。

如:

//$plugins[] = ‘monitor’;

6).在console选项卡下,点击左侧菜单中的Settings链接,在右侧出现的web页中点击Misc选项卡来配置Monitor插件。

以下所看到的是Monitor选项卡下所监控的机器状态。当有机器Down掉后,相应机器图标将由绿色变成红色,并发出声音进行报警。

<strong>

</strong>2.安装Threshold插件

安装Threshold插件,只需将解压出来的Thold目录拷贝到cacti/plugins/目录下,导入thold.sql(mysql -u cacti -p cacti < thold.sql)并修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入:

$plugins[] = ‘thold’;

刷新cacti首页,你将看到多出来一个Threshld选项卡。

<strong>3.利用thold使用email报警

</strong>

1.Console -> Cacti Settings-Alerting/Thold 选项

下面这些都是主意修改的地方

Base URL   这个会自动发现不用写

Syslogging   这个勾要选择,不然他不会给你发邮件

Syslog Level   选择error,不然掉线不报警

Dead Hosts Notifications   这个要选择

Dead Host Notification Email   这个是主机down掉会发邮件通知谁

Send alerts as text   这个勾上

Weekend exemptions   这个不勾上,不然周末掉线不报警

From Email Address   写邮件的发送方  

From Name   写发件人姓名

其余的默认就好

Console -> Cacti Settings –Mail / DNS 选项

Mail Services   我用的是SMTP ,根据自己的选择,但是大部分情况用sendmail会出错+

From Email Address   lijun@kuro.cn

From Name   李军

SMTP Options中都要写真实的自己的邮局,不然smtp的发信机制会发布出去

SMTP Hostname   写自己邮箱的smtp地址

SMTP Port   25

SMTP Username   自己邮箱

SMTP Password   xxxx

下面的dns自己写

然后

Test Email   这边填写测试邮箱名字

完成了这些,点击右上角的Send a Test Email

这个时候在新窗口出现

Checking Configuration…

Method: SMTP

Creating Message Text…

This is a test message generated from Cacti. This message was sent to test the configuration of your Mail Settings.

Your email settings are currently set as follows

Method: SMTP

Host: mail.kuro.cn

Port: 25

Authenication: true

Username: lijun@kuro.cn

Password: (Not Shown for Security Reasons)

Sending Message…

Success! 

<strong>建议使用cactid代替cmd.php,cactid效率比cmd.php高,下载cacti-spine-0.8.7a.tar.gz</strong>

1.tar zxf  cacti-spine-0.8.7a.tar.gz

cd cacti-spine-0.8.7a

libtoolize –force

autoconf 

autoheader 

automake

./configure –prefix=/usr/local/spine  //需要执行上面的,直接编译会出错.

make && make install  

vim /etc/spine.conf

添加cacti的相应信息

1 DB_Host   localhost

2 DB_Database   cacti

3 DB_User   cacti

4 DB_Pass   cacti

5 DB_Port   3306

<strong>2.用管理员帐号登陆Cacti.在系统参数中制定Spine/Cactid的物理路径.</strong>

Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path

<strong>3.poller中启用spine</strong>

在 Console -> Configuration -> Settings -> Poller -> Poller Type 选择 spine ,保存一下。

.<strong>字体在图形中显示不正常的解决方法 

设置->路径->RRDTool默认字体路径 /usr/share/fonts/chinese/TrueType/ukai.ttf</strong>

cacti的排错经验

cacti出不了数据,一般从以下几个方面入手解决问题

1。确认你的cacti主机上能否得到目标机器上的snmp数据

cacti得到目标机器上的统计数据分为两种方法,一种是远程通过snmp协议获取、一种是本地机器通过shell脚本获取。

2。确认你的crontab计划任务有在正常运作

cacti是通过crontab的定时作业每隔一段时间获取数据的,如果定时作业没有运作,肯定也是读取不到数据的

3。确认你的crontab定时作业所执行的作业能获取信息

cacti获取信息用的是poller.php定时运作,然后根据你设置的是用php脚本来执行snmp获取还是cactid来获取,所以,你必须确认你的php能支持php的snmp扩展、或者确认你有正确设置cactid。推荐使用cactid,效率比通过php高10~20倍。

4。确认你的rrdtool的版本

rrdtool1.0.x版本和1.2.x版本有着比较大的差别,在cacti里面要正确设置你的rrdtool的版本。比较容易出现的错误就是你的rrdtool是1.2.x版本,而cacti默认的rrdtool版本为1.0.x版本,如果是这样的话,你的数据收集是正常的,不过由于rrdtool的版本变化导致的命令处理格式的一点差别,cacti的缩微图会画不出来的,而具体的图片时可以画出来,这个,大家要留神一下。

5。当然了,要保证cacti收集的数据能被储藏在你的机器上,要保证收集的数据能被httpd服务读取

以上是我个人对cacti的trouble shooting的一些认识,请各位补充指正。

  将cacti安装好按例子进行配置,想到得到第一个hellow world这样的例子时,常常也会遇到不少的问题,最可能的就是无图,或者有图无数据。

  先说无图吧,主要是检查先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误,如果都没有错误,那么你确定才一个采集周期(一般默认采集周期300秒)以后去检查rra目录,看是否有相应的rra文件生成,如果是新安装,本来rra目录只有一个.placeholder文件。你只要关注以rra为文件后缀的文件即可。如果没有那么一是rra文件权限,windows是ntfs和linux等下有这个问题,其它就检查snmp的设置。

此条目发表在Cacti分类目录。将固定链接加入收藏夹。