Эти заметки относятся к обновлению с Zabbix 3.2.x до Zabbix 3.4.0. Все заметки сгруппированы в:
Критические
- наиболее критическая информация относящаяся к процессу обновления и изменения в функциональности ZabbixИнформационные
- вся оставшаяся информация, описывающая изменения в функциональности ZabbixИмеется возможность обновления до Zabbix 3.4.0 с версий до 3.2.0. Обратите анимание на раздел процедуры обновления для получения соответствующих сведений об обновлении с предыдущих версий Zabbix.
База данных SQLite более не поддерживается для Zabbix сервера и веб-интерфейса. Однако, по-прежнему поддерживается для Zabbix прокси.
Поддержка браузеров Microsoft Internet Explorer 9 и Explorer 10 более не осуществляется.
После обновления вам, возможно, потребуется очистить cookies веб-браузера и кэш веб-браузера, чтобы Zabbix веб-интерфейс работал правильно.
Регистрозависимая база данных MySQL требует для корректной работы сервера. Рекомендуется создавать регистрозависимую базу данных MySQL во время установки. Если вы создали базу данных MySQL с набором символов utf8 изначально, для поддержки регистрозависимых хранимых данных, вам небоходимо сконвертировать c поддержкой collation utf8_bin.
Поддержка регулярных выражений в Zabbix переключена с расширенных POSIX регулярных выражений на Perl совместимые регулярные выражения (PCRE) для расширения возможностей регулярных выражений и согласованности с веб-интерфейсом. Хотя PCRE в большинстве случаев совместим с POSIX, всё же существуют некоторые отличия, такие как POSIX функции поиска самого длинного из самого левого совпадения, но PCRE останавливается на первом корректном совпадении. Классы эквивалентности POSIX и сопоставления элементов не поддерживаются.
Поскольку некоторые регулярные выражения могут привести к отличным результатам после обновления, до обновления вам необходимо проверить используемые регулярные выражения в поддерживаемых местах. Выражения, в которых предыдущий синтаксис может привести к отличному результату, после обновления необходимо вручную сконвертировать в синтаксис PCRE регулярных выражений, чтобы результат был таким же как и до обновления.
Смотрите также: Различия между [en] регулярными выражениями POSIX расширенные и PCRE.
Утилита GNU grep поддерживает как расширенные POSIX регулярные выражения (с '-E' аргументом), так и PCRE регулярные выражения (с '-P' аргументом). Вы можете сначала выполнить утилиту с '-E' аргументом, затем '-P' аргументом с одинаковым регулярным выражением и проанализировать тестовый файл. Если оба вывода не совпадают с ожидаемым, тогда необходимо модифицировать регулярные выражения, чтобы они работали корректно после обновления.
Обратите внимание что, если вы обновляете только сервер и прокси, но некоторые узлы сети продолжают использовать старые Zabbix агенты (до v3.4), эти агенты всё еще "понимают" только POSIX регулярные выражения. Регулярные выражения, используемые в их элементах данных log[], logrt[] и так далее не следует менять на PCRE синтаксис пока не обновите и агенты.
Из-за появления проверки кода ответа в командах/скриптах в Zabbix 3.4, скрипты оповещения могут быть выполнены несколько раз, если их код ответа отличается от 0. Ранее настроенные элементы данных с пользовательскими параметрами, которые выполнялись Zabbix сервером, элементы данных внешних проверок и system.run элементы данных код которых отличается от 0 могут стать "Неподдерживаемыми", по причине дополнительных проверок кода выхода; тем не менее поведение элементов данных с флагом "nowait" не изменилось.
Параметр конфигурации SenderFrequency
удален. При обновлении его необходимо удалить из конфигурации сервера версии 3.4, иначе вы получите ошибку и сервер не запустится. Частоту повторных попыток ошибочных оповещений теперь можно найти в настройке способа оповещений (параметр Интервал попыток) и по умолчанию он равен 10 секундам. Значением параметра SenderFrequency по умолчанию было 30 секунд.
Тогда как автоматическая кодировка URL поддерживается начиная с Zabbix 3.4, значения в существующих сценариях не будут автоматически сконвертированы в URL кодирование. Если вы хотите, чтобы эти значения были URL кодированными, вам необходимо изменить сценарии вручную, используя новые поля:
Если у вас уже имеются вручную кодированные значения URL, они останутся как есть, двойное URL кодирование не произойдет.
Zabbix Java gateway необходимо обновить, чтобы появилась поддержка новых возможностей:
Пример нового протокола:
{"request":"java gateway jmx","jmx_endpoint":"service:jmx:rmi:///jndi/rmi://127.0.0.1:12345/jmxrmi","keys":["jmx[\"java.lang:type={#FSNAME}\",\"HeapMemoryUsage.used\"]"]}
В конфигурации Zabbix сервера и прокси добавлен новый параметр конфигурации SocketDir
. Этот параметр указывает на директорию, где Zabbix хранит внутренние сокет файлы (по умолчанию /tmp). Сервер и прокси используют разные имена сокет файлов, таким образом вполне безопасно указывать одну и ту же директорию SocketDir
для сервера и прокси, которые запускаются на одной системе. Тем не менее запуск нескольких серверов или прокси на одной системе требует разных значений параметра SocketDir
.
В Zabbix 3.4 раздел панели претерпел крупную реконструкцию, что привело к ряду взаимосвязанных изменений:
Карты сети более не скрыты, если пользователь не имеет прав чтения на все элементы карты сети. Вместо этого карта отображается, если у пользователя имеются права на чтение как минимум одного элемента карты. Элементы к которым у пользователя нет прав чтения отображаются серой иконкой и без текстовой информации к ней (исключения для триггеров имеющих надписи).
Смотрите также: Настройка карты сети
Если вы импортируете новые готовые шаблоны для сетевых устройств, вы возможно захотите обновить глобальное регулярное выражение @Network interfaces for discovery
на:
Результат ЛОЖЬ: ^Software Loopback Interface
Результат ЛОЖЬ: ^(In)?[lL]oop[bB]ack[0-9._]*$
Результат ЛОЖЬ: ^NULL[0-9.]*$
Результат ЛОЖЬ: ^[lL]o[0-9.]*$
Результат ЛОЖЬ: ^[sS]ystem$
Результат ЛОЖЬ: ^Nu[0-9.]*$
для фильтрации loopback и нулевых интерфейсов с большинства систем.
Для того, чтобы обеспечить поддержку расширенных макросов и суффиксов времени несколько полей, которые ранее хранили свои значения в днях, сконвертированы для хранения этих значений в секундах, например:
Хотя числовые значения корректируются автоматически в процессе обновления, существует другой случай, если до обновления опция Хранение потерянных ресурсов содержит макрос. Его значение (в днях) более недействительно и его нельзя скорректировать простым добавлением 'd' к макросу, так как такая запись не будет допустимым синтаксисом макросов. Также значение макроса нельзя просто изменить, так как он может использоваться и в других местах. Поэтому в данном случае во время обновления опция Хранение потерянных ресурсов автоматически сконвертируется в максимальное значение равное 25 годам. Такой подход позволяет позаботиться о подобных ситуациях вручную после обновления.
В предыдущих версиях все оповещения о проблемах обрабатывались только одним процессом отправки оповещений. В новой версии реализована параллельная обработка оповещений. Появился новый процесс - менеджер оповещений, который может распределять оповещения по нескольким "worker" процессам. Способы оповещений обрабатываются параллельно. Максимальное количество параллельных сессий можно настроить по каждому способу оповещений, но общее количество процессов оповещений на сервере можно ограничить только новым параметром StartAlerters.
В процессе обновляния количество параллельных сессий задается значением '1' по каждому способу оповещения, в то время как значением по умолчанию StartAlerters является '3'. Для способа оповещения через e-mail, вы возможно захотите вручную увеличить количество параллельных сессий или задать это количество значением '0' (без ограничений) для более быстрой обработки оповещений.
Менеджер оповещений теперь также не выполнит скрипты оповещений без наличия прав доступа, без повторных попыток.
Удалён процесс наблюдения за базой данных (db watchdog) и его задачи теперь обрабатываются процессом оповещений. Если вы мониторите ваш Zabbix сервер при помощи шаблона Template App Zabbix Server, вы можете получить неподдерживаемый элемент данных 'Zabbix busy db watchdog processes, in %'. В этом случае просто удалите или деактивируйте этот элемент данных в этом шаблоне.
Разделы настройки и мониторинга, которые ранее назывались "Услуги IT", переименованы в "Сервисы", дабы отразить тот факт, что измерять можно более широкий спектр сервисов, а не только IT.
Опции предварительной обработки значений элементов данных унифицированы и получили отдельную вкладку в настройках элемента данных. В результате, несколько ранее самостоятельных параметров предварительной обработки в элементах данных/прототипах элементов данных удалены:
data_type
, multiplier
и delta
в APIdata_type
, multiplier
и delta
в XML экспортеВ процессе обновления все эти свойства у существующих элементов данных/прототипов элементов данных автоматически преобразуются к новым опциям предварительной обработки. Аналогично, при импорте XML со старых версий, эти опции будут преобразованы к новым опциям предварительной обработки.
Кроме того, опции предварительной обработки Дельта (простое изменение) и Дельта (скорость в секунду) переименованы на Простое изменение и Изменение в секунду.
Слишком большое количество процессов сбора данных (поллеры, поллеры недоступных устройств, HTTP поллеры, Java поллеры, пингеры, трапперы, прокси поллеры), а также IPMI менеджер, SNMP траппер и worker предварительной обработки, могут исчерпать ограничение количества файловых дескрипторов по отдельным процессам для менеджера предварительной обработки. Что заставит Zabbix сервер остановиться (обычно в течении короткого периода времени после запуска, но иногда может занять более длительное время). Файл конфигурации необходимо пересмотреть или лимит должен быть увеличен, чтобы избежать подобной ситуации.
Ранее sleep параметр proc.num элемента данных агента на платформах FreeBSD, OpenBSD и NetBSD некорректно подсчитывал процессы как в спящем режиме, так и в режиме непрерывного сна. Теперь, эта проблема исправлена и sleep параметр считает процессы только в спящем режиме, тогда как для подсчёта количества процессов в непрерывном сне можно использовать новый параметр disk.
Посколько корреляция событий была введена в Zabbix 3.2.0, на макрос {TRIGGER.STATUS} больше нельзя полагаться для точного отображения состояния проблемы - проблема может быть уже решена, тогда как исходный триггер всё ещё может находиться в состоянии 'Проблема'. Поэтому {TRIGGER.STATUS} теперь удалён из сообщений оповещений по умолчанию.
Вместо него получить точное состояние проблемы можно при помощи макросов {EVENT.VALUE} и {EVENT.STATUS}. Эти макросы изменены и теперь возвращают (для событий по триггерам и внутренним событиям):
Если вы обновляетесь с Zabbix 3.2.0 и 3.2.1, обратите внимание, что синтаксис выбора вложенных групп изменился.
В Zabbix 3.2.0 и 3.2.1 вложенные группы выбирались с родительской группой узлов сети, если родительская группа узлов сети указывалась как hostgroup/*
. Начиная с Zabbix 3.2.2 и в Zabbix 3.4.0, '/*' синтаксис убран. Вместо него, вложенные группы узлов сети выбираются, если попросту родительская группа узлов сети указана как есть. Такой подход означает, что группа узлов сети, которая указана, например, в условиях действий, теперь молчаливо включает в себя все вложенные группы узлов сети.
Изменился протокол коммуникации между веб-интерфейсом и сервером. При выполнении скрипта к запросу от веб-интерфейса к серверу добавлен новый параметр "sid". Этот параметр берет ID сесси (токен аутентификации) и используется для проверки прав доступа пользователя на выполнение скриптов. Также в этот запрос добавлена дополнительная проверка прав доступа к узлу сети (ЧТЕНИЕ/ЗАПИСЬ, ЧТЕНИЕ и ЗАПРЕЩЕНО). Если необходимых прав доступа к узлу сети не имеется, тогда сервер вернёт ответ с информацией о том, что доступ к выполнению скрипта запрещён.
isreadable()
и iswritable()
, а также proxy.interfaces
параметр.Период хранения по умолчанию внутренних событий, событий обнаружения, событий авторегистрации агентов уменьшился с 365 дней до 1 дня. При обновлении с предыдущих версий рекомендуется уменьшить эти значения на значение до 1 дня вручную, так как это изменение может улучшить производительность Zabbix сервера.
В Zabbix 3.4 между процессами добавлена коммуникация на основе сокетов. В системах, где SELinux включен, такое поведение может потребовать добавление правил SELinux на разрешение Zabbix создавать/использовать сокеты UNIX домена в SocketDir
директории. В настоящее время файлы сокетов используются сервером (процессом оповещений, предварительной обработкой, IPMI) и прокси (IPMI). Файлы сокетов постоянны, то есть присутствуют в течении всего времени пока процесс запущен.