Ad Widget

Collapse

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

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

    #1

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

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

    #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

    Working...