cacti的一个重要插件Advanced Ping 的使用方法
(2008-11-19 23:05:09)
标签:
cacti
rrdtool
advanced
ping
it
今天安装了cacti的一个插件Advanced Ping
v1.3,安装及使用都很简单,这里主要谈一下我在使用中出现的一些问题
我使用Advanced Ping
中的icmp功能,发现返回的数据全是100,即都是不可达的,但实际是我在采集机上测试是可以ping通目标主机的
另外用脚本来测试,也是正常的:
php ss_fping.php www.baidu.com 20 ICMP 正常,返回正常的数据
使用php 的script server来测试:
php script_server.php
/var/www/html/cacti/scripts/ss_fping.php ss_fping www.baidu.com 20 ICMP
也返回正常的数据
但是使用cacti它返回的数据却总不对:
/usr/local/rrdtool-1.3.4/bin/rrdtool fetch qh_loss_23.rrd
AVERAGE
1227083100: nan nan nan nan nan
1227083400: 1.0000000000e+02 nan nan nan nan
1227083700: 1.0000000000e+02 nan nan nan nan
1227084000: 1.0000000000e+02 nan nan nan nan
1227084300: 1.0000000000e+02 nan nan nan nan
1227084600: 1.0000000000e+02 nan nan nan nan
1227084900: 1.0000000000e+02 nan nan nan nan
1227085200: 1.0000000000e+02 nan nan nan nan
1227085500: 1.0000000000e+02 nan nan nan nan
1227085800: 1.0000000000e+02 nan nan nan nan
1227086100: 1.0000000000e+02 nan nan nan nan
1227086400: 1.0000000000e+02 nan nan nan nan
1227086700: 1.0000000000e+02 nan nan nan nan
可以看到只有第一项(loss)有数据,且都是100%丢失
后面经过反复测试,发现我在crontab中运行的用户是cactiuser不是root,见crontab文件:
*/5 * * * * cactiuser php /var/www/html/cacti/poller.php
> /dev/null
2>&1
这样在调用ping.php中的$this->socket =
socket_create(AF_INET, SOCK_RAW, 1);
时就会出错,因为不是root所以不可以创建SOCK_RAW类型的socket,只有把执行者改为root,即:
*/5 * * * * root php /var/www/html/cacti/poller.php
> /dev/null
2>&1
再重启crond服务service crond restart才可以
另外我一直在疑惑为什么我加的设备使用icmp ping来保持联通性检测,即Downed Device Detection设为icmp
ping时
设备总是down的,只有我把其设为snmp或者是none设备才up(注意设备只要一检测down就不采集数据了),现在我也终于搞清楚了,也是这个原因
不过把cactiuser改为root要记得把cacti目录下的log和rra的权限要改了,使root对这两个目录下的所有文件可读可写
另外这样做有安全隐患,如何取舍则要看各自的安全策略了
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。