Table of Contents

9 Заметки по обновлению для 4.0.0

Эти заметки относятся к обновлению с Zabbix 3.4.x до Zabbix 4.0.0. Все заметки сгруппированы в:

  • Критические - наиболее критическая информация относящаяся к процессу обновления и изменения в функциональности Zabbix
  • Информационные - вся оставшаяся информация, описывающая изменения в функциональности Zabbix

Имеется возможность обновления до Zabbix 4.0.0 с версий до 3.4.0. Обратите анимание на раздел процедуры обновления для получения соответствующих сведений об обновлении с предыдущих версий Zabbix.

Критические

Дополнительные зависимости

  • libpthread - библиотека POSIX потоков теперь обязательна при компиляции Zabbix сервера и Zabbix прокси. Она требуется для разделяемых между процессами мьютексов (process-shared mutex) и чтения-записи блокировок (read-write lock). Если мьютексы доступны, но не могут быть разделяемыми между процессами, тогда Zabbix вернётся к использованию семафоров, как и до обновления.
  • zlib - библиотека сжатия теперь обязательна при компиляции Zabbix сервера и Zabbix прокси.

Сжатие обмена данными сервера-прокси

Обмен данными между Zabbix сервером и Zabbix прокси теперь использует сжатие, чтобы уменьшить нагрузку на сеть и увеличить производительность на сетевых каналах с низкой пропускной способностью.

Обратите внимание, что заголовок запросов/ответов Zabbix был также изменен как часть этой разработки.

Если у вас в вашей сети используются устройства сетевой безопасности, такие как IDS/IPS или NGFW, и вы используете Zabbix прокси, убедитесь, что определения вашего приложения обновлены и готовы для нового протокола Zabbix прокси при обновлении до 4.0.x, поскольку были сообщения об этих устройствах, что они не пропускали трафик при обнаружении сжатия в сетевом потоке. Пожалуйста, обратитесь к вашему поставщику средств безопасности для получения более подробной информации о том как получить обновленные определения или возможные пути решения, если вы столкнетесь с этой проблемой.

Параметр сервера для пассивных прокси обязателен

Параметр Server в конфигурации пассивного прокси, который ранее игнорировался, теперь обязателен. Пассивный прокси отклонит подключения с адреса, который не перечислен в списке параметра Server.

Убрана поддержка протокола в виде простого текста

Поддержка протокола в виде простого текста убрана и заголовок теперь обязателен. Заголовок добавляется к запросам Zabbix get, к запросам пассивных проверок Zabbix сервера/прокси и к запросам веб-интерфейса к Zabbix серверу.

Как следствие, Zabbix агенты старше 1.4 версии более не поддерживаются. Также, сообщения с самописных senders будут отклоняться, если отсутствует заголовок. Если ранее Zabbix трапперы могли принимать сообщения без заголовков, так и с заголовками, теперь они будут принимать сообщения только с заголовком протокола.

Запросы от старых версий Zabbix get к новому агенту завершатся с ошибкой. Обратите внимание, что в этом случае отобразится следующее сообщение об ошибке:

Check access restrictions in Zabbix agent configuration

Подгружаемые модули

Экспорт истории через модуль более не поддерживается на стороне Zabbix прокси.

Удалён раздел Мониторинг → Триггеры

Теперь раздел Мониторинг → Триггеры удалён. Связанные с этим разделом параметры "Отображать события не старше чем" и "Макс. количество отображаемых событий у триггера" соответственно также удалены.

Запрещенный синтаксис параметров в ключах элементов данных

Следующий синтексис параметров в ключах элементов данных более неподдерживается:

  • Многоуровневые массивы параметров, например [a,[b,[c,d]],e]
  • Параметры в стиле Zapcat, например [a][b]

Обратите внимание, такой синтаксис никогда не использовался в официальных ключах Zabbix элементов данных, и он никогда официально не подтверждался документально что поддерживается. Он существовал только для обратной совместимости с такими решениями как Zapcat JMX Zabbix Bridge [en].

Поддержка MySQL 8.0

Чтобы добавить поддержку MySQL 8.0 в этой версии, сделаны два изменения в базе данных:

  • таблица 'groups' переименована на 'hstgrp'
  • поле 'function' в таблице 'functions' переименовано на 'name'

Функции триггеров

В процессе обновления значения параметра logsource функции триггеров будут сконвертированы, чтобы обеспечить работу с добавленной поддержкой регулярных выражений и глобальных регулярных выражений. Имеется вероятность, что существующие параметры содержат обширное количество специальных символов регулярного выражения или их длина приближается к максимально разрешенному лимиту и в процессе конвертации этот лимит будет превышен, который равен 255 символам. В таких случаях изменения по этим параметрам не будут выполнены и детали обо всех подобных случаях будут добавлены в файл журнала. Если по этой причине появятся проблемы с производительностью триггеров, параметры, которые не были изменены, необходимо будет отредактировать вручную.

Более не поддерживаются макросы $1-$9 в именах элементов данных, которые использовались ссылкой на параметры ключа элемента данных.

HTTP аутентификация

Когда аутентификация системы по умолчанию была ранее задана значением 'HTTP аутентификация', в процессе обновления она будет изменена на 'Внутренняя' с активированным 'HTTP Аутентификация' по умолчанию. Для таких конфигураций необходимо очистить значений существующих паролей пользователей по умолчанию в базе данных выполнив следующий запрос:

UPDATE users SET passwd="" WHERE passwd=md5('zabbix')
Изменения связанные с API

Отдельный код для простой аутентификации HTTP удален с API, поэтому поле password теперь обязательно для API действия user.login.

Информационные

Устаревшие макросы в именах элементов данных

Использование макросов позиции ($1, $2, ...$9) и пользовательских макросов в именах элементов данных и прототипах элементов данных теперь устарело. Вследствие чего, макросы позиций удалены с имен элементов данных в стандартных шаблонах, которые поставляются с Zabbix 4.0.

Если вы продолжаете использовать макросы позиции, вы столкнётесь со следующими трудностями при использовании нового виджета графика:

  • Отсутствие возможности добавления на график каких-либо элементов данных индивидуально с именами наподобие CPU $2 time, используя их раскрытое имя (например такое, CPU user time)
  • Отсутствие возможности добавления на график всех элементов данных с именами наподобие CPU $2 time (например, CPU user time, CPU system time, CPU idle time и т.д.)

Если вы используете макросы позиции в именах прототипов элементов данных, предлагается обновить правила обнаружения вручную, заменив макросы позиции на соответствующие макросы низкоуровневого обнаружения, например:

|<| |<| |-| |<|

Можно будет использовать элементы данных сгенерированные подобным образом в виджете графика без каких либо ограничений.

Коррекция штампа времени

Zabbix сервер более не выполняет коррекцию штампов времени в случае, когда время Zabbix прокси / активного агента / sender отличается от времени Zabbix сервера.

Триггеры времени обрабатываются процессами синхронизации истории

Обработка функций триггеров связанных со временем таких как nodata(), date(), dayofmonth(), dayofweek(), time() и now() перенесена с процессов таймер на процессы синхронизации истории.

Если ранее все триггера связанные со временем вычислялись в одно и то же время, создавая этим пиковые нагрузки каждые 30 секунд, то теперь обработка триггеров связанных со временем распределяется равномерно в течении этих 30 секунд.

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

Влияние обслуживание узлов сети на уровне триггеров

Когда узел сети входит в режим обслуживания, процессы таймер Zabbix сервера теперь будут перечитывать все открытые проблемы для проверки требуется ли их подавить. Такое поведение может повлиять на производительность, если имеется большое количество проблем. Zabbix сервер будет также читать все открытые проблемы при запуске процесса, даже если на это время отсутствуют настроенные обслуживания.

Если период обслуживания, узлы сети, группы или теги изменяются пользователем, то такие изменения вступят в силу только после синхронизации кэша конфигурации.

Изменения в авторегистрации

Поведение авторегистрации изменилось следующим образом:

  • Действия на авторегистрацию активных агентов будут запускаться повторно, если изменятся метаданные узла сети;
  • Так как метаданные добавляются только в процессе авторегистрации, у вручную созданных узлах сети будут отсутствовать метаданные и авторегистрация запустится повторно;
  • Если узел сети будет вручную обновлен на наблюдение через другой Zabbix прокси, тогда авторегистрация запустится повторно.

Как и ранее, если авторегистрация по одному и тому же узлу сети прийдет с нового Zabbix прокси, тогда авторегистрация запустится повторно.

Генерация имени проблемы

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

Обновление базы данных в процессе первичного запуска сервера может занять продолжительное время, если имеется большое количество старых проблем и в именах триггерах используются {ITEM.VALUE}, {ITEM.LASTVALUE} макросы.

Значения полей, которыми заполняются имена событий и проблем:

  • Для событий на триггера - имя триггера со всеми раскрытыми макросами
  • Для событий на внутренние проблемы:
    • Cannot obtain item value (Не удалось получить значение элемента данных) - для неподдерживаемых элементов данных
    • Cannot calculate trigger expression​ (Не удалось вычислить выражение триггера) - для неизвестных триггеров
  • Для остальных событий имя останется пустым
Изменения в связанных макросах

В связи с тем, что имена проблем более не генерируются в режиме реального времени на основании текущего имени триггера, а, вместо этого, генерируются во время появления события, имеются соответствующие изменения макросов:

  • Во всех сообщениях по умолчанию - {TRIGGER.NAME} заменен на {EVENT.NAME};
  • Во всех действиях на основе триггеров - {TRIGGER.NAME} заменится на {EVENT.NAME} при обновлении.

Смотрите также: известные проблемы

Работа с проблемами

Сделаны несколько изменений в работе с проблемами, включая изменения в макросах. Для получения более подробных сведений смотрите запись в что нового.

Связанные изменения в API

Методы ​problem.get​ и ​event.get​ изменились таким образом, что входной параметр поиска/фильтра с объектом {'​name':​ '​...'​} в виде значения используется для поиска соответствующих результатов (по полю "​name"​) в соответствующей таблице ("​problem"​ или "​events"​).

Методы ​problem.get​ и ​event.get​ расширены добавлением получаемого параметра, которое называется "​name"​. В обоих методах новый параметр содержит значения из недавно добавленного поля "​name"​ в таблицы базы данных "​problem"​ или "​events"​.

Использование кэша конфигурации сервера

Изменился кэш конфигурации сервера и теперь вся информация об инвентарных данных узлов сети хранится в этом кэше. Если вы используете функцию инвентарных данных с узлами сети, соответственно увеличьте для сервера память выделяемую на кэш конфигурации.

Выполнение скрипта внешней проверки

При выполнении скрипта внешней проверки аргументы заключаются в одинарные кавычки ' вместо двойных кавычек ". Это изменение позволяет Zabbix принимать больше символов в именах параметров внешних проверках. Например, символ $ более не игнорируется.

Доступность Zabbix Java gateway

Начиная с текущего момента состояние доступности Zabbix Java gateway не меняется на красный цвет каждый раз, когда какой-либо из элементов данных становится неподдерживаемым. Иконка доступности JMX станет красной только в случае сетевых ошибок - когда недоступен Java gateway или когда имеются проблемы связи между Zabbix сервером и Zabbix Java gateway.

Изменены журналы Zabbix Java gateway

Если вы наблюдаете за журналами Java gateway, имейте в виду, что трассировка стека исключений более недоступна на уровнях сообщений Java gateway об ошибках и предупреждений.

Изменения в триггерах

  • Изменилось поведение выражений триггеров относительно чисел, отличающихся на 0.000001. Поскольку логические операторы определены с точки зрения равенства нулю, их результат для 0.000001 также влияет:
Выражение (Пример) Результат вычисления
До После
1.000001 > 1 1 0
1.000001 <= 1 0 1
0 >= 0.000001 0 1
0.000001 <> 0 1 0
0.000001 = 0 0 1
0 or (1/1000000) 1 0
not (1/1000000) 0 1
1 and 1/1000000 1 0

Переименованы виджеты, элементы комплексных экранов и отчеты ​

Переименованы следующие элементы:

Ранее В Zabbix 4.0
Состояние системы Проблемы по важности
Состояние узлов сети Узлы сети с проблемами
Состояние Zabbix Информация о системе

Также затронут API панели: некоторые типы свойств виджетов панели теперь переименованы.

Постоянное отображение колонки узла сети

Колонка узла сети теперь всегда отображается, даже если выбран только один узел сети, в:

  • МониторингПоследние данные
  • МониторингВеб
  • ОтчетыДоступность

Такое изменение привело к более широкой странице чем ранее, с данными по одному узлу сети. Для получения более подробной информации смотрите раздел Что нового.

Сообщение об ошибке в JMX мониторинге

Так как Zabbix Java gateway теперь поддерживает работу с пользовательскими MBean, которые возвращают непримитивные типы данных, которые переопределяют метод toString(), возможное сообщение об ошибке изменилось следующим образом:

Ранее: data object type is not primitive: xxx
В Zabbix 4.0: Data object type cannot be converted to string.

Изменения в журналировании

Сообщение, которое записывается в файлы журналов, о заполненном кэше истории изменилось следующим образом:

Ранее: History buffer is full. Sleeping for 1 second.
В Zabbix 4.0: History cache is full. Sleeping for 1 second.

Смотрите также

Logging changes

The message printed to the log files about a full history cache has been changed the following way:

Previously: History buffer is full. Sleeping for 1 second.
In Zabbix 4.0: History cache is full. Sleeping for 1 second.

See also