Эти заметки относятся к обновлению с Zabbix 3.4.x до Zabbix 4.0.0. Все заметки сгруппированы в:
Критические
- наиболее критическая информация относящаяся к процессу обновления и изменения в функциональности ZabbixИнформационные
- вся оставшаяся информация, описывающая изменения в функциональности ZabbixИмеется возможность обновления до Zabbix 4.0.0 с версий до 3.4.0. Обратите анимание на раздел процедуры обновления для получения соответствующих сведений об обновлении с предыдущих версий 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 к новому агенту завершатся с ошибкой. Обратите внимание, что в этом случае отобразится следующее сообщение об ошибке:
Экспорт истории через модуль более не поддерживается на стороне Zabbix прокси.
Теперь раздел Мониторинг → Триггеры удалён. Связанные с этим разделом параметры "Отображать события не старше чем" и "Макс. количество отображаемых событий у триггера" соответственно также удалены.
Следующий синтексис параметров в ключах элементов данных более неподдерживается:
[a,[b,[c,d]],e]
[a][b]
Обратите внимание, такой синтаксис никогда не использовался в официальных ключах Zabbix элементов данных, и он никогда официально не подтверждался документально что поддерживается. Он существовал только для обратной совместимости с такими решениями как Zapcat JMX Zabbix Bridge [en].
Чтобы добавить поддержку MySQL 8.0 в этой версии, сделаны два изменения в базе данных:
В процессе обновления значения параметра logsource функции триггеров будут сконвертированы, чтобы обеспечить работу с добавленной поддержкой регулярных выражений и глобальных регулярных выражений. Имеется вероятность, что существующие параметры содержат обширное количество специальных символов регулярного выражения или их длина приближается к максимально разрешенному лимиту и в процессе конвертации этот лимит будет превышен, который равен 255 символам. В таких случаях изменения по этим параметрам не будут выполнены и детали обо всех подобных случаях будут добавлены в файл журнала. Если по этой причине появятся проблемы с производительностью триггеров, параметры, которые не были изменены, необходимо будет отредактировать вручную.
Более не поддерживаются макросы $1-$9 в именах элементов данных, которые использовались ссылкой на параметры ключа элемента данных.
Когда аутентификация системы по умолчанию была ранее задана значением 'HTTP аутентификация', в процессе обновления она будет изменена на 'Внутренняя' с активированным 'HTTP Аутентификация' по умолчанию. Для таких конфигураций необходимо очистить значений существующих паролей пользователей по умолчанию в базе данных выполнив следующий запрос:
Отдельный код для простой аутентификации 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 прокси, тогда авторегистрация запустится повторно.
Имена проблем и событий теперь записываются напрямую в таблицы событий и проблем в момент, когда генерируется событие, вместо формирования этих имен во время работы как ранее. Патч к базе данных заполнит новые поля имени проблемы и имени события без раскрытых макросов. Обратите внимание, что эти изменения потребуют больше свободного места на диске.
Обновление базы данных в процессе первичного запуска сервера может занять продолжительное время, если имеется большое количество старых проблем и в именах триггерах используются {ITEM.VALUE}, {ITEM.LASTVALUE} макросы.
Значения полей, которыми заполняются имена событий и проблем:
В связи с тем, что имена проблем более не генерируются в режиме реального времени на основании текущего имени триггера, а, вместо этого, генерируются во время появления события, имеются соответствующие изменения макросов:
Смотрите также: известные проблемы
Сделаны несколько изменений в работе с проблемами, включая изменения в макросах. Для получения более подробных сведений смотрите запись в что нового.
Методы problem.get
и event.get
изменились таким образом, что входной параметр поиска/фильтра с объектом {'name': '...'} в виде значения используется для поиска соответствующих результатов (по полю "name") в соответствующей таблице ("problem" или "events").
Методы problem.get
и event.get
расширены добавлением получаемого параметра, которое называется "name". В обоих методах новый параметр содержит значения из недавно добавленного поля "name" в таблицы базы данных "problem" или "events".
Изменился кэш конфигурации сервера и теперь вся информация об инвентарных данных узлов сети хранится в этом кэше. Если вы используете функцию инвентарных данных с узлами сети, соответственно увеличьте для сервера память выделяемую на кэш конфигурации.
При выполнении скрипта внешней проверки аргументы заключаются в одинарные кавычки '
вместо двойных кавычек "
. Это изменение позволяет Zabbix принимать больше символов в именах параметров внешних проверках. Например, символ $
более не игнорируется.
Начиная с текущего момента состояние доступности Zabbix Java gateway не меняется на красный цвет каждый раз, когда какой-либо из элементов данных становится неподдерживаемым. Иконка доступности JMX станет красной только в случае сетевых ошибок - когда недоступен Java gateway или когда имеются проблемы связи между Zabbix сервером и Zabbix Java gateway.
Если вы наблюдаете за журналами Java gateway, имейте в виду, что трассировка стека исключений более недоступна на уровнях сообщений Java gateway об ошибках и предупреждений.
Выражение (Пример) | Результат вычисления | |
---|---|---|
До | После | |
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 панели: некоторые типы свойств виджетов панели теперь переименованы.
Колонка узла сети теперь всегда отображается, даже если выбран только один узел сети, в:
Такое изменение привело к более широкой странице чем ранее, с данными по одному узлу сети. Для получения более подробной информации смотрите раздел Что нового.
Так как 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. |
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. |