boost在cacti中的安装

boost算是加快一个cacti显示的插件,据说可以有效提高cacti10倍的效率。但是事实是否这样还是后面再说,先看看如何安装吧。

cacti官方网站已经提供了boost2.4的下载了,但是我安装完成后发现2.4现在还是会有很多bug存在。至少我个人弄到最后发现一直出不了图,看下日志都是Could not open input file:以及其它各种各样的错误。

安装boost之前需要安装Plugin Architecture


#tar cacti-plugin-arch.tar.gz
#cd cacti-plugin-arch
#cp cacti-plugin-0.8.7d-PA-v2.4.diff /usr/local/apache/htdocs/cacti
#cd /usr/local/apache/htdocs/cacti
#patch -p1 -N < cacti-plugin-0.8.7d-PA-v2.4.diff

#cp -R files-0.8.7d/* /usr/local/apache/htdocs/cacti/

#mysql -uuser -ppassword cacti < pa.sql
#vi include/global.php

修改$config['url_path'] = "/";为$config['url_path'] = "/cacti/";要不然默认目录不正确。
架构安装完成  .

安装完成架构后就开始安装boost2.3


http://forums.cacti.net/download.php?id=15998

这个是boost2.3的下载地址。


tar zxvf  cacti-boost-2.3-2.tar.gz

cp -R boost  /usr/local/apache/htdocs/cact/boost

chmod 755 *.php

vi xxx.php    //这里修改各个php文件中的php命令的路径

http://bugs.cacti.net/view.php?id=1412   //这里下载2.3的一个补丁,如果没有这个补丁会要求安装thold这个报警插件。

patch -p1 < patch.diff  //安装补丁

vi cacti_rrdsvc  // 这里修改bash的路径,和DEBUGLOG以及PROGPATH的路径

cp *.php /var/lock/subsys/

mysql -uuser -ppassword cacti < boost_sql_memory.sql  //虽然还有boost_sql_myisam.sql可以选择,但是对于mysql5以后还是推荐使用boost_sql_memory.sql

然后去web界面中安装和启用boost,然后在界面启用boost的全部特性,同时设置好各个路径,可以IP访问的限制等等。在界面中的相关目录需要在服务器上建立,同时要注意各种权限。

最后在启动boost server就可以了

./cacti_rrdsvc start

cacti各类插件使用

cacti本身自带了很多监控插件,如cpu,系统负载,磁盘等等。但是对于一些服务我们就必须另外找插件了。
现在我这边有用到的有nginx, apache, mysql, memcached, iis这几种

先说nginx插件。
http://forums.cacti.net/about26458.html
首先要在被监控服务器的nginx.conf文件中加上如下内容

location /nginx_status {
        stub_status on;
    # disable access_log if requared
    access_log   off;
        #allow XX.YY.AA.ZZ;
    #allow YY.ZZ.JJ.CC;
        #deny all;
}

最后再重启下nginx就可以了。上面内容可以根据自己需求进行更改的。

在监控服务器上

cp get_nginx_clients_status.pl /scripts/
cp get_nginx_socket_status.pl /scripts/
chmod 0755 /scripts/get_nginx_socket_status.pl
chmod 0755 /scripts/get_nginx_clients_status.pl

然后通过命令行验证是否可以正确运行

./get_nginx_clients_status.pl http://www.example.com/nginx_status

如果能看到如下内容表示能正常运行了
nginx_accepts:1169 nginx_handled:1169 nginx_requests:1225

最后就是cacti中导入模板,再添加新的图片就可以了。上面这些按照readme本身提供的信息就可以顺利的安装完成。

nginx

接着是apache插件
http://forums.cacti.net/about25227.html
首先是要给被监控服务器上的apache加上mod_status模块,一般默认是装的

bin/apxs -i -c -a /usr/local/source/httpd-2.2.8/modules/generators/mod_status.c

-i 表示安装

-c 编译

-a 自动增加 LoadModule 到httpd.conf中

修改httpd.conf文件


SetHandler server-status

Order Deny,Allow
Deny from all
Allow from 允许访问的IP

ExtendedStatus On     //这句千万要加上,apache官方文档上没有这个,如果不增加这个,就不能得到apache使用率等等信息。

打上补丁后一定要关闭apache再开启,不能restart和graceful
最后应该看到的形式为http://192.168.0.1/server-status
看到跟http://www.apache.org/server-status 这样的内容就算成功了

在监控服务器上

cp ss_apache_stats.php scripts/

最后通过命令行运行下是否能获取到相关数据
接着就是在cacti中导入模板,添加主机就可以了。

apache

下面是mysql的插件
http://forums.cacti.net/about24223.html

特别注意,如果是mysql5.0.2以上版本,需要修改mysql_stats.php
首先是打开mysql_stats.php文件
搜索 “$result_stat = @mysql_query(“SHOW STATUS”);” (一般在19行)
把 SHOW STATUS 替换为 SHOW /*!50002 GLOBAL */ STATUS

首先要在被监控的mysql中添加新用户,这个用户只需要process权限就可

GRANT PROCESS ON *.* TO cactiuser@'监控机IP' IDENTIFIED by 'password';
cp mysql_stats.php  /scripts/
chown 755 mysql_stats.php

接着在命令行中运行看看是否能取到数据

MySQL – QCache statistics:

php -q /scripts/mysql_stats.php cache
MySQL - Single Statistics:

php -q /scripts/mysql_stats.php status
MySQL - Handler statistics:

php -q /scripts/mysql_stats.php handler
MySQL - Command statistics:

php -q /scripts/mysql_stats.php command
MySQL - Thread statistics:

php -q /scripts/mysql_stats.php thread

最后也是在cacti中导入模板,添加主机就可以了

特别注意
cacti_graph_template_mysql_single_statistics.xml 这个模板需要自定义一个监控值,这个可以根据自己需求来,我自己就用了Qcache_hits
如果导入模板后打开Graph Debug Mode后有 (–unit/–y-grid) 这样的报错那只要在图片模板中把Unit Grid Value (–unit/–y-grid)
Use Per-Graph Value (Ignore this Value) 这个设置为空就可以了

mysql1

接着是memcache的监控
http://dealnews.com/developers/cacti/memcached.html

先要在被监控服务器上安装python-memcached

wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.43.tar.gz

解压后

python setup.py install

如果提示无法安装,那需要先安装下面这个

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

接着再安装python-memcached就可

在监控服务器上

cp memcached.py  /scripts/
chown 755 memcached.py

接着在命令行中手工执行
python /scripts/memcached.py

如果能取得数据那再在cacti中添加相关模板和主机就可以了。

memcache

最后是对iis服务器的监控
http://forums.cacti.net/about12464.html
这个模板似乎只能对windows 2003和windows 2003 sp1有效,所以如果你是windows2000的话就要自行修改了
iis监控很容易,只要上传模板,添加主机就行了。

需要注意的是
iis_network_statistics的图片模板中y值中b要去掉
network是byte计算

<img class=”aligncenter size-full wp-image-219″ title=”iis1″ src=”https://zauc.files.wordpress.com/2008/08/iis1.jpg&#8221; alt=”iis1″ width=”459″ height=”323″ /

cacti数据合并

http://www.hiadmin.com/cacti%E8%BF%9B%E9%98%B6%E5%BA%94%E7%94%A8%E4%B8%80%EF%BC%9A%E6%B1%87%E6%80%BB%E6%B5%81%E9%87%8F%E5%9B%BE-%E5%B0%86%E6%95%B0%E6%8D%AE%E5%90%88%E5%B9%B6%E5%90%8E%E4%BD%9C%E5%9B%BE/
上面是我参考的原文。
但是我需要的是数据的合并,并不是像原文中那种独立展示的。
在add items中原文如下:
data source:数据来源就是你要汇总的流量之一;
color:选择颜色这里可以任意选择;
Graph Item Type:图形(我选择的是AREA区域类型,要累加的流量图请选择stack)
CDEF Function:这里一定要选择“Turn bytes into Bits”

在第二项中Graph Item Type中,原文中说如果要累加的话要使用stack,但是在实践过程中我发现,在第一个item必须使用AREA,而不是stack,第二个开始启用stack类型。