LINUX.ORG.RU
решено ФорумAdmin

Zabbix теряет данные - прерывистый график

 


1

1

Zabbix 3.2

Наблюдаю такую картину: https://habrastorage.org/webt/q9/th/ym/q9thymfb6bdajvy9ifwoejkzkie.png

Заббикс внезапно перестает заполнять график данными.

Через snmpget устройство отвечает всегда, т.е. проблема, скорее всего, на стороне мониторинга.

snmpget -v 2c -c xxx -On 10.47.177.161 IF-MIB::ifOutOctets.11
.1.3.6.1.2.1.2.2.1.16.11 = Counter32: 3337688614

snmpget -v 2c -c xxx -On 10.47.177.161 IF-MIB::ifOutOctets.11
.1.3.6.1.2.1.2.2.1.16.11 = Counter32: 3406793294

По ICMP данные приходят непрерывно в тот же заббикс, т.е. проблема, скорее всего, в плоскости SNMP. При этом, по другим хостам, добавленным через те же шаблоны, проблем я не вижу - графики непрерывны.

Кто-нибудь сталкивался с таким поведением?

Ответ на: комментарий от hizel

Не помогло. После активации мониторинга (enable), данные с хоста некоторое время накапливаются, но потом перестают. https://habrastorage.org/webt/ok/bd/kk/okbdkkzeiw8uiaiaxuglrsf35s4.png Фиолетовый график это ifHCInOctets (множитель подобран неверно, но это неважно).

mammuthus
() автор топика

мб нужно snmp trap добавить ?

Deleted
()
Ответ на: комментарий от Deleted

Ну, в списке «Queue of items to be updated - Detailes» этого хоста нет. Это значит, что проверка отрабатывает без задержек?

Черт, а действительно Zabbix unreachable poller processes more than 75% busy

mammuthus
() автор топика

О, эта вечное SNMP + Zabbix равно любовь.

1. Посмотри очередь. Бывает, что эта дурилка встает на каком-то одном ключе и перестает опрашивать все остальные ключи на хосте, при свободных поллерах. Отличался этим ключ типа ntptime. 2. Подними до приличных цифр обычные поллеры, unreachable поллеры и snmp-трапперы, если используешь. У меня сейчас стартует 100 unreachable на ~20 хостов*30 ключей. 3. Проверь, нет ли пересечений в авторизации у хостов: одинаковые ключи, одинаковые имена, одинаковые SNMP Engine ID. Оно какое-то время работает, потом внезапно помирает при таком мерже. 4. Посмотри, нет ли в логах сообщений про недоступность хостов по SNMP. Если их много, то это косвенно похоже на п.3. Сделай маленький тайм-аут переопроса, помониторь ситуацию.

heilnull ★★
()
Ответ на: комментарий от heilnull

Посмотри очередь.

Я вот смотрю на нее (в первый раз) и не знаю, нормально это или нет, лол. В пиках бывает и по 12к. Но судя по статистике, сейчас с очередью все относительно нормально https://habrastorage.org/webt/7z/bg/ex/7zbgexav1cpbykcpjcuvp1o3dy4.png

У меня сейчас стартует 100 unreachable на ~20 хостов*30 ключей

А есть какая-нибудь методика по расчету количества потоков? В зависимости от железа и количества хостов... Или методом тыка?

  • StartPollers=40
  • StartPollersUnreachable=20
  • StartPingers=50
  • StartDiscoverers=20
  • StartHTTPPollers=20
  • StartTimers=20
  • StartEscalators=20
  • CacheSize=512M
  • HistoryCacheSize=128M
  • HistoryIndexCacheSize=64M
  • TrendCacheSize=32M
  • ValueCacheSize=64M
  • Timeout=30
  • LogSlowQueries=3000

Посмотри, нет ли в логах сообщений про недоступность хостов по SNMP

Просто вагон и маленькая тележка ошибок про несоответствие имени хоста в агенте и на сервере

1927:20180720:101449.560 cannot send list of active checks to «10.46.45.138»: host [VDB2-187700] not found

Я правильно понимаю, что они не особо важны? А про SNMP нет.

mammuthus
() автор топика
Последнее исправление: mammuthus (всего исправлений: 4)
Ответ на: комментарий от mammuthus

NVPS 710 для новичка не мало, это нагрузка на БД. Очереди должны быть почти всегда на нуле, либо запоздание не больше 10 секунд. Тут определённо проблемы с производительностью, с таким NVPS тут нужно железо по приличнее и хороший тюнинг БД.

Ошибки из-за некорректных имён надо исправлять. Лучше использовать авторегистрацию хостов. Для снижения нагрузки на zabbix сервер хорошо использовать активные проверки и прокси.

Выкручивание poller'ов не всегда хорошо. В качестве отправной точки предлагаю посмотреть видео от инженера тех.поддержки zabbix https://www.youtube.com/watch?v=BglZLJQOEa0 где разбираются типичные проблемы.

Deleted
()
Ответ на: комментарий от mammuthus

Я вот смотрю на нее (в первый раз) и не знаю, нормально это или нет, лол

Главное - чтобы не было бесконечно зависающих ключей, по которым не приходят данные. Если увидел какие-то ключи в очереди, проверь приход данных по ним в latest data. Может быть, там и нет ничего.

А есть какая-нибудь методика по расчету количества потоков?

https://blog.zabbix.com/monitoring-how-busy-zabbix-processes-are/457/

И смотри графики zabbix gathering и zabbix perfomance.

Просто вагон и маленькая тележка ошибок про несоответствие имени хоста в агенте и на сервере

Вот они вроде бы и не влияют ни на что, т.к. у тебя не эктивчекс, а snmp, но как показала практика, отнимают время у поллеров. Лучше наведи в этом деле порядок, как верно советуют, через автодискавери.

heilnull ★★
()

В общем, судя по состоянию процессов, Zabbix был изначально сконфигурирован неправильно. Например, unreachable poller были всегда забиты на 100%, обычных поллеров тоже иногда не хватало.

Но потери на графиках возникли относительно недавно. Возможно, дело в том, что количество хостов все-таки увеличивается, а не уменьшается и заббикс достиг некой грани, когда просто стал терять данные.

https://habrastorage.org/webt/a9/iy/ij/a9iyijouordssfmmctr4rb6k_sk.png

В общем, было 20 unreachable poller. При этом, почему-то крайне медленных:

1906  -  S          2:23.27 zabbix_server: unreachable poller #1 [got 1 values in 60.005855 sec, getting values] (zabbix_server)
 1907  -  S          2:23.37 zabbix_server: unreachable poller #2 [got 1 values in 60.041045 sec, getting values] (zabbix_server)
...
 1924  -  S          2:23.48 zabbix_server: unreachable poller #19 [got 1 values in 60.013782 sec, getting values] (zabbix_server)
 1925  -  S          2:25.54 zabbix_server: unreachable poller #20 [got 1 values in 60.018832 sec, getting values] (zabbix_server)

Насколько нормальна ситуация, когда поллер got 1 values in 60 sec?

Я увеличил количество unreachable poller с 20 до 60 (ну да, разогнался) и перезапустил сервис. Нагрузка на ядра заметно возросла. Если раньше в логе не было медленных запросов, то теперь проскакивают. Полагаю, что теперь не справляется база.

Не понимаю одного: почему с измененным количеством unreachable poller, они все равно остаются медленными. Буду рад, если кто-нибудь объяснит логику процесса

89107  -  I          0:00.07 zabbix_server: unreachable poller #1 [got 1 values in 30.007301 sec, getting values] (zabbix_server)
89111  -  I          0:00.05 zabbix_server: unreachable poller #2 [got 1 values in 60.028734 sec, getting values] (zabbix_server)
...
89223  -  I          0:00.06 zabbix_server: unreachable poller #59 [got 2 values in 60.010452 sec, getting values] (zabbix_server)
89224  -  S          0:00.06 zabbix_server: unreachable poller #60 [got 1 values in 60.016955 sec, getting values] (zabbix_server)

И, соответственно, снова я вижу 100% занятых unreachable poller: https://habrastorage.org/webt/xe/cy/lz/xecylzhpvdlrjkxdt9i8ol7mzjw.png

mammuthus
() автор топика

А в dmesg ничего нет? А то видел случаи, когда банально таблица conntrack забивалась у людей.

AlexAT
()
Ответ на: комментарий от mammuthus

Короче, три дня мониторил лог и избавлялся от ошибок. Пофиксил все хосты, где хостнеймы не соответствовали хостнеймам в агенте (основная часть ошибок). Отключил медленные скрипты, которые вываливались по таймауту.

В итоге, средняя очередь сократилась с 5К значений до 500 значений. 10-минутная очередь сократилась с 2к до 0. Графики теперь заполняются, данные не теряются.

Но столкнулся с новой проблемой. Судя по истории, unreachable поллеры всегда были заняты на 100%. А это, насколько я понимаю, ненормально. И после моих оптимизаций все равно висят в 100% busy. Даже не представляю, куда копать. https://habrastorage.org/webt/6l/i0/fe/6li0felw1kzerjzv8q1sq0r9tpq.png

root@main:~ # ps ax | grep unreachable
24596  -  I        0:00.19 zabbix_server: unreachable poller #1 [got 1 values in 60.025091 sec, getting values] (zabbix_server)
24597  -  S        0:00.18 zabbix_server: unreachable poller #2 [got 1 values in 30.001461 sec, getting values] (zabbix_server)
24598  -  I        0:00.16 zabbix_server: unreachable poller #3 [got 1 values in 60.002534 sec, getting values] (zabbix_server)
24599  -  S        0:00.18 zabbix_server: unreachable poller #4 [got 1 values in 60.014772 sec, getting values] (zabbix_server)
24600  -  I        0:00.18 zabbix_server: unreachable poller #5 [got 1 values in 60.044386 sec, getting values] (zabbix_server)
24601  -  I        0:00.19 zabbix_server: unreachable poller #6 [got 1 values in 60.028695 sec, getting values] (zabbix_server)
24602  -  S        0:00.17 zabbix_server: unreachable poller #7 [got 1 values in 60.015391 sec, getting values] (zabbix_server)
24603  -  S        0:00.16 zabbix_server: unreachable poller #8 [got 1 values in 60.032291 sec, getting values] (zabbix_server)
24604  -  S        0:00.17 zabbix_server: unreachable poller #9 [got 1 values in 60.054270 sec, getting values] (zabbix_server)
24605  -  I        0:00.17 zabbix_server: unreachable poller #10 [got 1 values in 60.012196 sec, getting values] (zabbix_server)
тут еще 80 поллеров
24685  -  I        0:00.16 zabbix_server: unreachable poller #90 [got 1 values in 60.039375 sec, getting values] (zabbix_server)
24686  -  S        0:00.16 zabbix_server: unreachable poller #91 [got 1 values in 60.028056 sec, getting values] (zabbix_server)
24687  -  S        0:00.15 zabbix_server: unreachable poller #92 [got 1 values in 60.023186 sec, getting values] (zabbix_server)
24688  -  I        0:00.16 zabbix_server: unreachable poller #93 [got 3 values in 60.130926 sec, getting values] (zabbix_server)
24689  -  I        0:00.17 zabbix_server: unreachable poller #94 [got 1 values in 60.026330 sec, getting values] (zabbix_server)
24690  -  S        0:00.17 zabbix_server: unreachable poller #95 [got 1 values in 30.009217 sec, getting values] (zabbix_server)
24691  -  S        0:00.15 zabbix_server: unreachable poller #96 [got 1 values in 60.005798 sec, getting values] (zabbix_server)
24692  -  I        0:00.15 zabbix_server: unreachable poller #97 [got 1 values in 60.002361 sec, getting values] (zabbix_server)
24693  -  S        0:00.15 zabbix_server: unreachable poller #98 [got 1 values in 60.015217 sec, getting values] (zabbix_server)
24694  -  S        0:00.16 zabbix_server: unreachable poller #99 [got 1 values in 60.031826 sec, getting values] (zabbix_server)
24695  -  I        0:00.16 zabbix_server: unreachable poller #100 [got 1 values in 60.005830 sec, getting values] (zabbix_server)
75638  2  S+       0:00.00 grep unreachable

mammuthus
() автор топика
Ответ на: комментарий от mammuthus

Сформулирую основные вопросы, буду рад, если знатоки Z поделятся сакральным.

1. Должны ли unreachable poller быть заняты под сотку? Изначально их было вообще 20, я повысил число потоков до 150 и ситуация не изменилась.

2. Если не должны, то на что именно тратится их время? В логе остались ошибки типа «network error, wait for 15 seconds», буквально пара штук в минуту (на 1200-то хостов). Т.е. они, по моему разумению, все 150 поллеров занять не могут.

3. Независимо от того, чем заняты эти поллеры, нормально ли то, что они обрабатывают одно значения за 30-60 сек? И где этот таймаут правится, если я хочу его уменьшить чтобы поллер быстрее освобождался? Документацию читал. Не нашел.

mammuthus
() автор топика
Ответ на: комментарий от mammuthus

Должны ли unreachable poller быть заняты под сотку?

Нет, это значит, что есть такие ключи, которые не успевают опроситься вовремя.

В логе остались ошибки типа «network error, wait for 15 seconds

У заббикс-сервера есть несколько тайм-аутов. Для проверки их можно поуменьшать, тогда недоступные хосты будут опрашиваться чаще.

### Option: Timeout Timeout=5 ### Option: UnreachablePeriod # After how many seconds of unreachability treat a host as unavailable. UnreachablePeriod=3600 ### Option: UnreachableDelay # How often host is checked for availability during the unreachability period, in seconds. UnreachableDelay=5

нормально ли то, что они обрабатывают одно значения за 30-60 сек?

Да.

heilnull ★★
()

Решено. Увеличение количества анричблов до 200 дало плоды, их загрузка упала.

mammuthus
() автор топика
30 апреля 2020 г.
Ответ на: комментарий от mammuthus

Так же решилась проблема «рваного графика», решилась изменением двух параметров в конфиге: StartPollers=50 StartPollersUnreachable=50 Всем спасибо!

mr_hak777
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.