Icinga – 在分布式环境中非常高的检查延迟

我有一个分布式的Icinga设置如下:

中央

只接收被动检查结果

分布式

227个主机

835服务

分布式B

67个主机

243服务

CENTRAL服务器始终处于低于1秒的平均检查延迟时间。 DISTRIBUTED B目前处于大约10秒的平均检查延迟时间,但即使这样,我们增加了更多检查。

DISTRIBUTED A有一些严重的检查延迟问题(有时高达700秒,不是刚刚重新加载,而是build立备份),我似乎无法确定。 这里有一个当前的结冰输出:

Icinga Stats 1.10.3 Copyright (c) 2009 Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 02-11-2014 License: GPL CURRENT STATUS DATA ------------------------------------------------------ Status File: /var/lib/icinga/status.dat Status File Age: 0d 0h 0m 3s Status File Version: 1.10.3 Program Running Time: 1d 17h 30m 44s Icinga PID: 1160 Used/High/Total Command Buffers: 0 / 11 / 4096 Total Services: 839 Services Checked: 839 Services Scheduled: 839 Services Actively Checked: 839 Services Passively Checked: 0 Total Service State Change: 0.000 / 6.250 / 0.007 % Active Service Latency: 644.742 / 776.293 / 729.813 sec Active Service Execution Time: 0.010 / 20.163 / 0.720 sec Active Service State Change: 0.000 / 6.250 / 0.007 % Active Services Last 1/5/15/60 min: 18 / 274 / 717 / 839 Passive Service Latency: 0.000 / 0.000 / 0.000 sec Passive Service State Change: 0.000 / 0.000 / 0.000 % Passive Services Last 1/5/15/60 min: 0 / 0 / 0 / 0 Services Ok/Warn/Unk/Crit: 835 / 2 / 1 / 1 Services Flapping: 0 Services In Downtime: 0 Total Hosts: 227 Hosts Checked: 227 Hosts Scheduled: 227 Hosts Actively Checked: 227 Host Passively Checked: 0 Total Host State Change: 0.000 / 0.000 / 0.000 % Active Host Latency: 0.000 / 772.310 / 726.904 sec Active Host Execution Time: 0.006 / 0.338 / 0.030 sec Active Host State Change: 0.000 / 0.000 / 0.000 % Active Hosts Last 1/5/15/60 min: 14 / 22 / 196 / 227 Passive Host Latency: 0.000 / 0.000 / 0.000 sec Passive Host State Change: 0.000 / 0.000 / 0.000 % Passive Hosts Last 1/5/15/60 min: 0 / 0 / 0 / 0 Hosts Up/Down/Unreach: 227 / 0 / 0 Hosts Flapping: 0 Hosts In Downtime: 0 Active Host Checks Last 1/5/15 min: 14 / 28 / 192 Scheduled: 14 / 26 / 188 On-demand: 0 / 2 / 4 Parallel: 14 / 27 / 190 Serial: 0 / 0 / 0 Cached: 0 / 1 / 2 Passive Host Checks Last 1/5/15 min: 0 / 0 / 0 Active Service Checks Last 1/5/15 min: 31 / 276 / 702 Scheduled: 31 / 276 / 702 On-demand: 0 / 0 / 0 Cached: 0 / 0 / 0 Passive Service Checks Last 1/5/15 min: 0 / 0 / 0 External Commands Last 1/5/15 min: 0 / 0 / 0 

这似乎不是一个外部检查缓冲区的问题,因为它总是0.我已经玩过收割机设置,并尝试了最大收割者检查时间(5,10,30)和收割者频率(1,5, 10),似乎没有任何东西可以让时间消逝。

检查status.dat,这不像一些检查正在推动平均水平。 所有服务检查和主机检查显示平均延迟(700+秒)。 检查整个板的执行时间是低的。 绝大多数是> 1秒。 从那里,有143个检查,超过1秒,但不到2秒。 有50个检查需要4+秒。 高于此点的是4次检查,分别为8,10,17和20秒。 这些数字似乎并不表示我的实际检查时间问题。

服务器本身并不是挣扎在资源方面,CPU和内存都很好。 另外值得注意的是CENTRAL和DISTRIBUTED A服务器在相同的物理基础设施上,尽pipe不同的VM。

我不确定这将完全解决您的问题,但这里有一些地方要看。

你似乎正在使用Icinga v1,这意味着你有一个完全顺序的Icinga核心。 这意味着它检查后运行检查。 如果您的支票花费太多时间,则会造成延迟。 此外,如果你在支票后有一些行动,这也会延迟下一次服务检查(如NSCA发送或其他),以确实可以完全杀死你的表演。 所以,这是你不会直接测量的,因为这不是机器负载的问题,而是Icinga负载的问题。

释放Icinga实例负载的解决scheme之一是使用额外的工具。 为了分发支票,你可以使用mod减速机 。 这通常用于使nagios /冰刀安装规模。 如果你使用NSCA,我们开发了一个工具来发送asynchronous的Icinga。

我希望这将有所帮助。