Cacti 可监控项
[ 2010/04/08 20:51 | by selboo ]
Cacti可以监控的东西,下面看看,可多啦
Handy Repopulate Poller Cache Script
Download and Documentation
http://forums.cacti.net/about10292.html
New Advanced Ping Template Version
Download and Documentation
http://forums.cacti.net/about10049.html
Powerware 9120 UPS via SNMP Download and Documentation
http://forums.cacti.net/about5427.html
Smoke Ping Like
Download and Documentation
http://forums.cacti.net/about8503.html
Handy Repopulate Poller Cache Script
Download and Documentation
http://forums.cacti.net/about10292.html
New Advanced Ping Template Version
Download and Documentation
http://forums.cacti.net/about10049.html
Powerware 9120 UPS via SNMP Download and Documentation
http://forums.cacti.net/about5427.html
Smoke Ping Like
Download and Documentation
http://forums.cacti.net/about8503.html
cacti性能优化笔记
[ 2009/12/15 16:02 | by selboo ]
From:http://zys.8800.org/index.php/archives/391
目标:
单台Cacti服务器,同时监控1000+ Server,50000+ RRD 文件. 保证图表数据的连续和流畅,每一轮数据采集时间控制在3分钟之内。
硬件环境:
Intel(R) Xeon(R) CPU E5420 @ 2.50GHz 4 cores
4G memory
normal sata disk
优化步骤:
1,优化数据库schema,建立合理的索引
cacti默认的cacti.sql建立的数据库模型,竟然一个Index都没有建。每次执行poller.php的时候,主要的时间,都花费在数据库查询上。使用下面的sql语句,建立一系列索引,弥补默认的cacti.sql中缺乏index的缺点。可以有效的提高poller.php执行的效率,缩短更新RRD文件所需的时间
CREATE INDEX `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
CREATE INDEX `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
CREATE INDEX `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
CREATE INDEX `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
CREATE INDEX host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
CREATE INDEX host_id_snmp_port ON poller_item (host_id,snmp_port);
CREATE INDEX data_source_path ON data_template_data (data_source_path);
2,使用spine替代默认的cmd.php来采集数据
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
tar zxvf cacti-spine-0.8.7e.tar.gz
cd cacti-spine-0.8.7e
wget http://www.cacti.net/downloads/spine/patches/snmp_v3_fix.patch
wget http://www.cacti.net/downloads/spine/patches/mysql_client_reconnect.patch
wget http://www.cacti.net/downloads/spine/patches/ping_reliability.patch
patch -p1 -N < snmp_v3_fix.patch
patch -p1 -N < mysql_client_reconnect.patch
patch -p1 -N < ping_reliability.patch
./configure –prefix=cacti_install_dir
make
make install
然后编辑cacti_install_dir/etc/spine.conf
修改DB_HOST DB_DATABASE DB_USER DB_PASSWORD几个参数
最后,在cacti的setting->poller页面里,将poller type设置成spine,同时设置spine的Maximum Threads per Process, Number of PHP Script Servers, Script and Script Server Timeout Value几个参数。
通常会把Maximum Threads per Process设置成cpu * 2。在这里,我们设置成8.
3, 重构rra文件的目录结构,为每个device建立单独的rra目录
首先在crontab里禁用poller.php,然后执行cacti_install_dir/cli目录下的structure_rra_paths.php,它会将所有的RRD文件按照device重新分配目录,并修改数据库中的RRD路径,成功执行后,再恢复poller.php的crontab就可以了。
按照上面3个步骤,710台服务器,24000个RRD文件,完成一次poller.php的时间,缩短到50 seconds。实现了最初的目的。
TODO:
在执行poller.php的时候, 监控服务器的load达到了3,通过vmstat查看,显示负载主要在I/O。在目前的情况,如果再出现瓶颈,可以考虑安装Boost插件来进一步提供性能。
cacti主要通过snmp来采集数据,可以引入collected等客户端,提供数据采集的可靠性。
目标:
单台Cacti服务器,同时监控1000+ Server,50000+ RRD 文件. 保证图表数据的连续和流畅,每一轮数据采集时间控制在3分钟之内。
硬件环境:
Intel(R) Xeon(R) CPU E5420 @ 2.50GHz 4 cores
4G memory
normal sata disk
优化步骤:
1,优化数据库schema,建立合理的索引
cacti默认的cacti.sql建立的数据库模型,竟然一个Index都没有建。每次执行poller.php的时候,主要的时间,都花费在数据库查询上。使用下面的sql语句,建立一系列索引,弥补默认的cacti.sql中缺乏index的缺点。可以有效的提高poller.php执行的效率,缩短更新RRD文件所需的时间
CREATE INDEX `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
CREATE INDEX `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
CREATE INDEX `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
CREATE INDEX `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
CREATE INDEX host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
CREATE INDEX host_id_snmp_port ON poller_item (host_id,snmp_port);
CREATE INDEX data_source_path ON data_template_data (data_source_path);
2,使用spine替代默认的cmd.php来采集数据
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
tar zxvf cacti-spine-0.8.7e.tar.gz
cd cacti-spine-0.8.7e
wget http://www.cacti.net/downloads/spine/patches/snmp_v3_fix.patch
wget http://www.cacti.net/downloads/spine/patches/mysql_client_reconnect.patch
wget http://www.cacti.net/downloads/spine/patches/ping_reliability.patch
patch -p1 -N < snmp_v3_fix.patch
patch -p1 -N < mysql_client_reconnect.patch
patch -p1 -N < ping_reliability.patch
./configure –prefix=cacti_install_dir
make
make install
然后编辑cacti_install_dir/etc/spine.conf
修改DB_HOST DB_DATABASE DB_USER DB_PASSWORD几个参数
最后,在cacti的setting->poller页面里,将poller type设置成spine,同时设置spine的Maximum Threads per Process, Number of PHP Script Servers, Script and Script Server Timeout Value几个参数。
通常会把Maximum Threads per Process设置成cpu * 2。在这里,我们设置成8.
3, 重构rra文件的目录结构,为每个device建立单独的rra目录
首先在crontab里禁用poller.php,然后执行cacti_install_dir/cli目录下的structure_rra_paths.php,它会将所有的RRD文件按照device重新分配目录,并修改数据库中的RRD路径,成功执行后,再恢复poller.php的crontab就可以了。
按照上面3个步骤,710台服务器,24000个RRD文件,完成一次poller.php的时间,缩短到50 seconds。实现了最初的目的。
TODO:
在执行poller.php的时候, 监控服务器的load达到了3,通过vmstat查看,显示负载主要在I/O。在目前的情况,如果再出现瓶颈,可以考虑安装Boost插件来进一步提供性能。
cacti主要通过snmp来采集数据,可以引入collected等客户端,提供数据采集的可靠性。
用linux上的cacti去监控windows服务器
[ 2009/05/02 20:22 | by selboo ]
以前一直用cacti或者mrtg来监控交换机流量,很少用来监控服务器,最近突然有个任务需要监控windows服务器,一般刚装好的cacti,里
面的监控设置都是基于交换机和linux的,没有专门监控windows的选择,于是研究了一下,和大家分享一下经验。另外我的cacti是安装的
debian linux上,有些安装命令不适合其他linux上,请大家注意。
操作系统:debian 5
1.安装mysql
apy-get install mysql-server-5.0
安装时会提示你输入mysql root密码
2.安装apache和php
apt-get install apache2 libapache2-mod-php5 php5 php5-gd php5-mysql php5-cli php5-common php5-snmp php-net-socket
php5-gd是关系到绘图
php5-mysql和数据库有关系
php-net-socket这个有时候cacti需要
3.安装cacti
apt-get install cacti rrdtool snmp
安装时会要求输入刚才你设置的mysql root密码,然后会自动建立个cacti库,同时也需要输入密码
以上cacti就安装完毕了,非常的简单明了吧,debian就是这点好,优点就是安装软件快,不需要你去下什么rpm包之类的,一句话全搞定
cacti的设置
1.首先把监控windows的脚本导入到cacti
附件里有个Cacti_SNMP_INFORMANT_STD_W32_Metrics.zip的包,里面包含的文件就是脚本文件,其中snmp_informant_.xml开头的文件是需要
放到cacti服务端的snmp_queries目录下,如果你的debian 的话,目录地址是/usr/share/cacti/resource/snmp_queries/。cacti_data_query开头的文
件全都通过cacti页面导入。
Reduced: 40% of original size [ 1254 x 390 ] - Click to view full image
2.在Devices中新建立个服务器,填写名称和ip地址,还有snmp信息,最下面的地方add如下东西:
Reduced: 46% of original size [ 1110 x 208 ] - Click to view full image
3.然后点最上面的Create Graphs for this Host ,选择Graphs Types,添加需要监控的项目。
Reduced: 82% of original size [ 621 x 283 ] - Click to view full image
这样基本上就可以了,然后设置windows服务器
客户端windows安装snmp
这里需要说明的是,除了windows自带安装的snmp之外,还需要安装SNMP Informant-STD 1.6
软件下载地址:http://www.wtcs.org/informant/download.htm
只要安装好就可以了,不需要任何设置,当然之前你自带的snmp需要设置一下,一个是设置public,一个是监控你snmp的服务器IP地址,
也就是cacti的机器IP地址,设置好后记得重起一下snmp服务,这点很重要,然后检查一下服务器是不是开放了udp 161端口,还有防火墙
是不是开放了这端口。
Reduced: 99% of original size [ 515 x 452 ] - Click to view full image
相关连接:http://forums.cacti.net/about29832.html&highlight=Windows 这个是cacti网站上的关于这脚本使用的方法,如果英文好的话可以详细研究一下
貌似写的很仓促,我不太喜欢写文档呵呵,如果有问题,可以联系我well_wong@hotmail.com
面的监控设置都是基于交换机和linux的,没有专门监控windows的选择,于是研究了一下,和大家分享一下经验。另外我的cacti是安装的
debian linux上,有些安装命令不适合其他linux上,请大家注意。
操作系统:debian 5
1.安装mysql
apy-get install mysql-server-5.0
安装时会提示你输入mysql root密码
2.安装apache和php
apt-get install apache2 libapache2-mod-php5 php5 php5-gd php5-mysql php5-cli php5-common php5-snmp php-net-socket
php5-gd是关系到绘图
php5-mysql和数据库有关系
php-net-socket这个有时候cacti需要
3.安装cacti
apt-get install cacti rrdtool snmp
安装时会要求输入刚才你设置的mysql root密码,然后会自动建立个cacti库,同时也需要输入密码
以上cacti就安装完毕了,非常的简单明了吧,debian就是这点好,优点就是安装软件快,不需要你去下什么rpm包之类的,一句话全搞定
cacti的设置
1.首先把监控windows的脚本导入到cacti
附件里有个Cacti_SNMP_INFORMANT_STD_W32_Metrics.zip的包,里面包含的文件就是脚本文件,其中snmp_informant_.xml开头的文件是需要
放到cacti服务端的snmp_queries目录下,如果你的debian 的话,目录地址是/usr/share/cacti/resource/snmp_queries/。cacti_data_query开头的文
件全都通过cacti页面导入。
Reduced: 40% of original size [ 1254 x 390 ] - Click to view full image
2.在Devices中新建立个服务器,填写名称和ip地址,还有snmp信息,最下面的地方add如下东西:
Reduced: 46% of original size [ 1110 x 208 ] - Click to view full image
3.然后点最上面的Create Graphs for this Host ,选择Graphs Types,添加需要监控的项目。
Reduced: 82% of original size [ 621 x 283 ] - Click to view full image
这样基本上就可以了,然后设置windows服务器
客户端windows安装snmp
这里需要说明的是,除了windows自带安装的snmp之外,还需要安装SNMP Informant-STD 1.6
软件下载地址:http://www.wtcs.org/informant/download.htm
只要安装好就可以了,不需要任何设置,当然之前你自带的snmp需要设置一下,一个是设置public,一个是监控你snmp的服务器IP地址,
也就是cacti的机器IP地址,设置好后记得重起一下snmp服务,这点很重要,然后检查一下服务器是不是开放了udp 161端口,还有防火墙
是不是开放了这端口。
Reduced: 99% of original size [ 515 x 452 ] - Click to view full image
相关连接:http://forums.cacti.net/about29832.html&highlight=Windows 这个是cacti网站上的关于这脚本使用的方法,如果英文好的话可以详细研究一下
貌似写的很仓促,我不太喜欢写文档呵呵,如果有问题,可以联系我well_wong@hotmail.com
下载文件 (已下载 370 次)
Cacti监控远程服务器问题解决
[ 2009/04/22 22:08 | by selboo ]
使用模板ucd/net - Memory Usage,检测局域网内别的机器
发现有图,但是无数据,都是nan,
cacti log有如下错误
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[44] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[43] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[42] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[41] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[40] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[39] WARNING: Result from SNMP not valid. Partial Result: U
于是
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/5rolling/i386/SL/net-snmp-utils-5.3.1-24.el5_2.1.i386.rpm
安装获得snmpget snmpwalk snmpbulkwakl snmpgetnext
snmpwalk -v 2c -c public your_remote_ip if
错误:
Timeout: No Response from your_remote_ip
于是修改snmpd配置 并启动snmpd
com2sec notConfigUser default public--->com2sec notConfigUser your_snmpd_server_ip public
#view all included .1 80---->view all included .1 80
snmpwalk -v 2c -c public your_remote_ip system ok
但
snmpwalk -v 2c -c public your_remote_ip if
错误:
IF-MIB::ifTable = No Such Object available on this agent at this OID
于是再次修改snmpd.conf,并重启snmpd
access notConfigGroup "" any noauth exact systemview none none-->
access notConfigGroup "" any noauth exact all none none
再次snmpwalk -v 2c -c public your_remote_ip if
ok
再访问页面终于图和数据出来了
发现有图,但是无数据,都是nan,
cacti log有如下错误
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[44] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[43] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[42] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[41] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[40] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[39] WARNING: Result from SNMP not valid. Partial Result: U
于是
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/5rolling/i386/SL/net-snmp-utils-5.3.1-24.el5_2.1.i386.rpm
安装获得snmpget snmpwalk snmpbulkwakl snmpgetnext
snmpwalk -v 2c -c public your_remote_ip if
错误:
Timeout: No Response from your_remote_ip
于是修改snmpd配置 并启动snmpd
com2sec notConfigUser default public--->com2sec notConfigUser your_snmpd_server_ip public
#view all included .1 80---->view all included .1 80
snmpwalk -v 2c -c public your_remote_ip system ok
但
snmpwalk -v 2c -c public your_remote_ip if
错误:
IF-MIB::ifTable = No Such Object available on this agent at this OID
于是再次修改snmpd.conf,并重启snmpd
access notConfigGroup "" any noauth exact systemview none none-->
access notConfigGroup "" any noauth exact all none none
再次snmpwalk -v 2c -c public your_remote_ip if
ok
再访问页面终于图和数据出来了