Table of Contents

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

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

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

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

Критические

Прекращена поддержка SQLite для сервера/веб-интерфейса

База данных SQLite более не поддерживается для Zabbix сервера и веб-интерфейса. Однако, по-прежнему поддерживается для Zabbix прокси.

Прекращена поддержка IE9 и IE10

Поддержка браузеров Microsoft Internet Explorer 9 и Explorer 10 более не осуществляется.

Очистка cookies/кэша в веб-браузере

После обновления вам, возможно, потребуется очистить cookies веб-браузера и кэш веб-браузера, чтобы Zabbix веб-интерфейс работал правильно.

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

  • libpcre - библиотека PRCE теперь обязательна при компиляции Zabbix сервера. Она необходима для поддержки Perl совместимых регулярных выражений (PCRE). Наименование может отличаться в зависимости от дистрибутива GNU/Linux, например, 'libpcre3' или 'libpcre1'. Обратите внимание необходима именно PCRE (v8.x); PCRE2 (v10.x) библиотека не используется;
  • libevent (версия 1.4 или выше) библиотека теперь обязательна:
    • всегда для Zabbix сервера;
    • для Zabbix прокси, если он компилируется с IPMI мониторингом.

Регистрозависимая база данных MySQL

Регистрозависимая база данных MySQL требует для корректной работы сервера. Рекомендуется создавать регистрозависимую базу данных MySQL во время установки. Если вы создали базу данных MySQL с набором символов utf8 изначально, для поддержки регистрозависимых хранимых данных, вам небоходимо сконвертировать c поддержкой collation utf8_bin.

PCRE библиотека для регулярных выражений

Поддержка регулярных выражений в 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 в веб-сценариях

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

  • переместите переменные запроса из URL в Поля запроса
  • переместите post переменные из Сырые данные в Данные формы

Если у вас уже имеются вручную кодированные значения URL, они останутся как есть, двойное URL кодирование не произойдет.

Обновление Java gateway

Zabbix Java gateway необходимо обновить, чтобы появилась поддержка новых возможностей:

Изменения в протоколе JMX элементов данных

Пример нового протокола:

{"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 раздел панели претерпел крупную реконструкцию, что привело к ряду взаимосвязанных изменений:

  • Удален виджет Последние 20 событий, он был заменён виджетом Проблемы, который аналогичен разметке раздела МониторингПроблема. По этой причине, DEFAULT_LATEST_ISSUES_CNT определение веб-интерфейса более не требуется и оно было удалено.
  • Виджеты Проблемы и Состояние системы более не отображают триггеры в состоянии ПРОБЛЕМА, если соответствующее событие отсутствует (например, событие удалено)

Изменения в правах доступа к картам сети

Карты сети более не скрыты, если пользователь не имеет прав чтения на все элементы карты сети. Вместо этого карта отображается, если у пользователя имеются права на чтение как минимум одного элемента карты. Элементы к которым у пользователя нет прав чтения отображаются серой иконкой и без текстовой информации к ней (исключения для триггеров имеющих надписи).

Смотрите также: Настройка карты сети

Использование шаблонов для сетевых устройств

Если вы импортируете новые готовые шаблоны для сетевых устройств, вы возможно захотите обновить глобальное регулярное выражение @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", переименованы в "Сервисы", дабы отразить тот факт, что измерять можно более широкий спектр сервисов, а не только IT.

Опции предварительной обработки значений элементов данных

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

  • Поля Тип данных, Использовать пользоватьельский множитель и Хранение значения
  • Поля data_type, multiplier и delta в API
  • Теги data_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}. Эти макросы изменены и теперь возвращают (для событий по триггерам и внутренним событиям):

  • Значение 'Проблема', если первоначальное событие всё еще в состоянии проблема;
  • Значение 'OK', если первоначальное событие решено.

Синтаксис выбора вложенных групп узлов сети

Если вы обновляетесь с 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 сесси (токен аутентификации) и используется для проверки прав доступа пользователя на выполнение скриптов. Также в этот запрос добавлена дополнительная проверка прав доступа к узлу сети (ЧТЕНИЕ/ЗАПИСЬ, ЧТЕНИЕ и ЗАПРЕЩЕНО). Если необходимых прав доступа к узлу сети не имеется, тогда сервер вернёт ответ с информацией о том, что доступ к выполнению скрипта запрещён.

Изменения в API

  • Удалены устаревшие методы isreadable() и iswritable(), а также proxy.interfaces параметр.
  • Добавлена проверка поля "period", которая запрещает использование точки с запятой в конце строки периода. Все существующие точки с запятой в конце строк удалятся прокси/сервером в процессе обновления.

Изменения умолчаний очистки истории

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

Возможные проблемы с SELinux

В Zabbix 3.4 между процессами добавлена коммуникация на основе сокетов. В системах, где SELinux включен, такое поведение может потребовать добавление правил SELinux на разрешение Zabbix создавать/использовать сокеты UNIX домена в SocketDir директории. В настоящее время файлы сокетов используются сервером (процессом оповещений, предварительной обработкой, IPMI) и прокси (IPMI). Файлы сокетов постоянны, то есть присутствуют в течении всего времени пока процесс запущен.

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