Назад | Перейти на главную страницу

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 секунд соответственно. Мне кажется, что эти числа не указывают на реальную проблему времени проверки.

Сам сервер не испытывает проблем с ресурсами, и процессор, и память в порядке. Также стоит отметить, что серверы CENTRAL и DISTRIBUTED A находятся в одной физической инфраструктуре, хотя и на разных виртуальных машинах.

Я не уверен, что это полностью решит вашу проблему, но вот несколько мест, где можно поискать.

Похоже, вы используете Icinga v1, что означает, что у вас есть полностью последовательное ядро ​​Icinga. Это означает, что он запускает проверку за проверкой. Если ваши проверки занимают слишком много времени, это приведет к задержке. Кроме того, если у вас есть какое-то действие, которое нужно выполнить после проверки, это также задержит следующую служебную проверку (например, отправку NSCA или что-то еще) до точки, когда это действительно может полностью убить вашу производительность. Таким образом, это то, что вы не будете измерять напрямую, потому что это не вопрос нагрузки на машину, а вопрос нагрузки Icinga.

Одно из решений, позволяющих снизить нагрузку на ваш экземпляр Icinga, - использовать дополнительные инструменты. Для распространения чеков вы можете использовать мод Gearman например. Это часто используется для создания шкалы настройки nagios / icinga. Если вы используете NSCA, мы разработали инструмент сделать отправку асинхронной, чтобы освободить Icinga от этой нагрузки.

Я надеюсь, это поможет.