check_snmp_int 错误No usable data on file
昨天给nagios添加了check_snmp_int 插件,通过SNMP 来统计服务器的流量,今天来了打开nagios 发现了奇怪的问题,监控机器出现 eth0:UP No usable data on file (201 rows)
1 UP): UNKNOWN ,随后登录 nagios 服务器 检查日志有大量的错误:
[1279555311] SERVICE ALERT: web;int_net;UNKNOWN;SOFT;1;eth0:UP No usable data on file (201 rows)
1 UP): UNKNOWN
[1279555371] SERVICE ALERT: web;int_net;OK;SOFT;2;eth0:UP (2.0Kbps/1.1Kbps):1 UP: OK
[1279555551] SERVICE ALERT: web;int_net;UNKNOWN;SOFT;1;eth0:UP No usable data on file (201 rows)
1 UP): UNKNOWN
[1279555611] SERVICE ALERT: web;int_net;OK;SOFT;2;eth0:UP (2.0Kbps/1.0Kbps):1 UP: OK
[1279555791] SERVICE ALERT: web;int_net;UNKNOWN;SOFT;1;eth0:UP No usable data on file (201 rows)
1 UP): UNKNOWN
在 google 上搜索了一下,几乎没有解决问题的文章。为什么会有这个问题呢?错误提示没有数据在 201行位置。打开 /tmp/tmp_Nagios_int.xx.xxx.xxx.eth0 临时文件没有 201行数据。那他为什么会读取 201行呢?因为插件check_snmp_int是用perl 写的,可以用Vi 打开看,用vim 打开插件明明定义的最多保持 200行数据。
看到这两行
my $o_base_dir=”/tmp/tmp_Nagios_int.”;
my $file_history=200; # number of data to keep in files.
经过一思索,终于发现自己定义的问题。插件默认获取数据间隔我设置的 30秒,而 nagios 定义执行检测是默认的5分钟。是不是他们两个不统一而导致的错误呢?于是开始动手 把他们两的值该为统一。
修改 commands.cfg 添加如下:
<pre>define command{
command_name check_net
command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -f -kYB -w $ARG3$,$ARG4$ -c $ARG5$,$ARG6$ -d $ARG7$
}</pre>
修改 services.cfg
我的默认配置
define service{
use local-service,srv-pnp # 使用local-service 和 srv-pnp 模板
host_name nginx
service_description int_eth0
check_command check_net!xxxx!eth0!4000!4000!5000!5000!60
}
该为:
define service{
use srv-pnp #只使用 srv-pnp 模板,监控定义自己定义。
host_name nginx
service_description int_eth0
check_command check_net!xxx!eth0!4000!4000!5000!5000!60
max_check_attempts 5
normal_check_interval 1
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_options w,u,c,r
contact_groups admins
process_perf_data 1
}
文字红色部分,是我修改的把他们时间间隔都统一为 1分钟。
经过一段时间,问题没有在犯·临时文件达到200行,在也不会去读取第 201行。
转载请注明:文章转载自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/194.html
博主您好,最近我也遇到这么错误.而且检查了你说的这两个时间,都是设置的5分钟.现在都不清楚问题出在哪了.
删除 /tmp/临时 文件,把两处时间改为相同,过段时间在看看!
两处的时间是一样的,现在已删除了/tmp下的临时文件. 待会看看效果
昨天删除了.今天发现故障依旧.只不过不在是201,而是其他.例如No usable data on file (39 rows).昨天也看了,check_snmp_int.pl脚本没有被修改过.会不会是command.cfg里面的命令有问题?
偶尔出现一下是没关系的,我的也出现过累死情况,但极少数·你可以把commands.cfg 和 services.cfg 贴出来帮你分析下原因
我这边这种故障是大片的,明天在去公司看看
好像没有services.cfg这个配置文件哦.
http://nagios.manubulon.com/faq.html#FAQ10 这里面有详细记载.好像是跟检测时间设置有关。而且我这边是默认的5分钟,估计还是长了,明天去修改下看看,
问题解决了.很悲剧.重启了下nagios好了.平时使用的时候只是reload了下.才导致发生现在这样的问题.很纠结.