Ad Widget

Collapse

Timeout и все что с ним связанно

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Kicum
    Member
    • Dec 2019
    • 33

    #1

    Timeout и все что с ним связанно

    Доброго времени суток хотел бы разобраться во всех Timeout которые есть в системе. Zabbix 7.0
    Timeout есть глобальный через GUI, в конфигах server,proxy,agent и agent2.
    Как они взаимодействуют ? кто имеет наивысший приоритет.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3410

    #2
    Попробую ответить. Обычно я стараюсь отвечать со ссылками на русский перевод документации, но последние дни сайт с документацией изрядно сбоит и многие страницы там, мягко говоря, не совсем актуальны; поэтому сейчас я дам ссылки на оригинальную (т.е. английскую) версию.

    Раньше (до версии Zabbix 7.0) практически все тайм-ауты задавались в конфиг-файлах (сервера, прокси, агентов). По умолчанию в зависимости от версии Zabbix это была величина 3 или 4 секунды. Для подавляющего большинства проверок это вполне адекватное значение, но иногда этого не хватало. Например, метрика vfs.dir.count (ссылка), изначально появившаяся в версии Zabbix 4.0, при обходе большого дерева подкаталогов на загруженном сервере может работать дольше. Поэтому в конфиг-файле Zabbix агента на этом сервере приходилось параметр "Timeout=" увеличивать. Но это ещё не всё: даже если его повысить на агенте (скажем, до 8 секунд), но опрашивать эту метрику, используя пассивный режим работы агента, то срабатывал уже тайм-аут на стороне Zabbix сервера: он со своими 3-4 секундами по умолчанию просто не дожидался, когда от агента придёт ответ. В итоге стандартной практикой была рекомендация иметь параметр "Timeout=" на сервере Zabbix не меньше, а лучше - на секунду-другую больше, чем максимальный тайм-аут на агентах (в данном примере разумно было бы поставить секунд десять).

    То же самое было со скриптами, запускаемыми на агентах с помощью конфигурационного параметра "UserParameter=": в зависимости от логики скрипта, он мог работать и дольше - скажем, на платформе Windows один только запуск какого-нибудь PowerShell'а занимает несколько секунд.
    Это было не очень удобно, поскольку из-за какого-нибудь одного долгоиграющего скрипта приходилось задирать значение тайм-аута на сервере для всех опрашиваемых параметров.
    Поэтому в версии 7.0 была сделана важная доработка: теперь тайм-ауты для опрашиваемых параметров стало можно задавать для каждого параметра отдельно.
    Для тех типов параметров, для которых поддерживаются конфигурируемые тайм-ауты (а это большинство типов), значения по умолчанию теперь можно задать централизованно через веб-интерфейс Zabbix в разделе Administration -> General -> Timeouts (ссылка), при этом в настройках конкретного параметра это значение можно переопределить.
    То есть, сейчас для конкретного параметра приоритетным будет являться тот тайм-аут, который задан в настройках этого параметра (если он там указан явно), иначе будет использован тайм-аут по умолчанию, заданный для данного типа на уровне Zabbix сервера либо Zabbix прокси (если хост наблюдается через Zabbix прокси).
    Те же тайм-ауты, которые заданы в конфиг-файле агентов, теперь определяют лишь коммуникационные параметры (ссылка) - как долго ждать установления соединения с сервером либо подтверждения того, что данные отосланы. О, кстати (сам только что обратил внимание, давая последнюю ссылку): я был неточен, конкретно для серии метрик "vfs.*" тайм-аут тоже берётся из конфига.

    Важный момент: это всё работает только в том случае, если и Zabbix агенты, и Zabbix сервер/прокси тоже имеют версию минимум 7.0 - в этой версии был доработан коммуникационный протокол, по которому Zabbix агент общается с Zabbix сервером или прокси. В противном случае агенты работать будут, но по-прежнему будут использовать только те тайм-ауты, которые указаны в их конфиг-файлах.

    Надеюсь, понятно рассказал

    Comment

    • Kicum
      Member
      • Dec 2019
      • 33

      #3
      если я все верно понял то получается такая картина:

      | Параметр | Тайм-аут в item | Тайм-аут прокси | Тайм-аут сервера | Итоговый тайм-аут |
      | SNMP-устройство A | 30s | 15s | 10s | 30s |
      | SNMP-устройство B | Не задан | 15s | 10s | 15s (прокси) |
      | CPU load | Не задан | 15s | 10s | 15s | 15s |
      | CPU Util | Не задан | Не задан | Не задан | Не задан | глобальный |​

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3410

        #4
        Originally posted by Kicum
        если я все верно понял то получается такая картина:
        Параметр Тайм-аут в item Тайм-аут прокси Тайм-аут сервера Итоговый тайм-аут
        SNMP-устройство A 30s 15s 10s 30s
        SNMP-устройство B Не задан 15s 10s 15s (прокси)
        CPU load Не задан 10s 15s 15s
        CPU Util Не задан Не задан Не задан глобальный
        С вашего позволения, я подкорректировал вашу таблицу, чтобы она выглядела как таблица, заодно поправив количество столбцов в последних двух строчках.
        Примерно так, с небольшими поправками.
        "Глобальный" - это и есть тайм-аут сервера либо прокси, заданный в веб-интерфейсе: для сервера, как я и говорил, в разделе Administration -> General -> Timeouts (Администрирование -> Общие -> Время ожидания), для прокси аналогичные настройки в настройках прокси: Administration -> Proxies (Администрирование -> Прокси) -> выбираем нужный прокси -> вкладка "Timeouts (Время ожидания)".
        Тайм-ауты, заданные в конфигах сервера/агента/прокси, в данном случае будут неважны.
        И никакие тайм-ауты, кроме тех, которые указаны в настройках самого айтема, не могут быть "не заданы" - они всегда имеют какие-то значения (возможно, значения по умолчанию).

        Comment

        Working...