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

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

我有一个分布式 Icinga 设置,如下所示:

中央

仅接收被动检查结果

分布式

227 家主机

835 项服务

分布式 B

67 位房东

243 项服务

中央服务器平均检查延迟始终低于 1 秒。分布式 B目前平均检查延迟约为 10 秒,但随着我们添加更多检查,这一时间也在不断增加。

分布式存在一些严重的检查延迟问题(有时长达 700 秒,重新加载后会更少,但会重新增加),我似乎无法确定。以下是当前的 icingastats 输出:

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 和内存都很好。同样值得注意的是,尽管虚拟机不同,但中央服务器和分布式服务器位于相同的物理基础设施上。

答案1

我不确定这是否能完全解决您的问题,但这里有一些值得关注的地方。

您似乎正在使用 Icinga v1,这意味着您有一个完全连续的 Icinga 核心。这意味着它会一次又一次地运行检查。如果您的检查花费的时间太长,就会产生延迟。此外,如果您在检查后要执行某些操作,这也会延迟下一次服务检查(如 NSCA 发送或其他操作),以至于它确实会完全破坏您的性能。所以,这是您不会直接测量的东西,因为这不是机器负载的问题,而是 Icinga 负载的问题。

释放 Icinga 实例负载的解决方案之一是使用额外的工具。要分发支票,您可以使用改装 Gearman例如。这通常用于使 nagios/icinga 设置规模化。如果您使用 NSCA,我们开发了一个工具使发送异步化,从而减轻 Icinga 的负担。

我希望这个能帮上忙。

相关内容