Table of Contents

11. Заметки по обновлению для 7.0.0

Эти заметки относятся к обновлению Zabbix с версии 6.4.x до Zabbix 7.0.0.

Все заметки сгруппированы в:

  • Критические изменения — изменения, которые могут привести к поломке существующих установок, и другая важная информация, связанная с процессом обновления
  • Другое — вся оставшаяся информация, описывающая изменения в функциональности Zabbix

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

Процесс обновления

Чтобы завершить успешное обновление сервера Zabbix с использованием MySQL/MariaDB, вам может потребоваться установить GLOBAL log_bin_trust_function_creators = 1 в MySQL, если ведение бинарного журнала включено, нет привилегий суперпользователя и log_bin_trust_function_creators = 1 не установлено в файле конфигурации MySQL.

Чтобы установить переменную с помощью консоли MySQL, запустите:

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

После успешного завершения обновления эту опцию можно отключить:

mysql> SET GLOBAL log_bin_trust_function_creators = 0;

Критические изменения

Сбой сервера с PostgreSQL/TimescaleDB после обновления на 7.0.1 с версии 7.0.0

Обновление до Zabbix 7.0.1 (или более поздней версии) с Zabbix 7.0.0 с PostgreSQL/TimescaleDB приводит к сбою сервера. Эта проблема вызвана обходным решением проблемы задания сжатия в таблице журнала аудита в Zabbix 7.0, которая необратимо изменила политику сжатия таблицы журнала аудита.

Смотрите известные проблемы для получения подробной информации об исправлении таблицы журнала аудита вручную.

Если вы еще не обновились до Zabbix 7.0.0, обратите внимание, что таких проблем не должно быть при обновлении до 7.0.1 с версий Zabbix, более ранних, чем 7.0. Инструкции по обновлению смотрите в разделе Обновление схемы TimescaleDB.

Ошибка восстановления базы данных с PostgreSQL/TimescaleDB после обновления с 7.0.0-7.0.4

Использование pg_restore [en] для восстановления резервной копии PostgreSQL/TimescaleDB, созданной в Zabbix 7.0.0-7.0.4, выдаст ошибку отсутствующей функции base36_decode, что приведёт к сбою восстановления. Эта ошибка возникает при восстановлении резервной копии, созданной с помощью pg_dump [en].

Смотрите известные проблемы для получения подробной информации об исправлении этой проблемы вручную перед созданием резервной копии.

Если вы еще не обновились до Zabbix 7.0.0, обратите внимание, что таких проблем не должно быть при обновлении до 7.0.5 с версий Zabbix, более ранних, чем 7.0. Инструкции по обновлению смотрите в Обновление схемы TimescaleDB.

Расположение по умолчанию для файла конфигурации агента Windows

Расположение по умолчанию, в котором агент Zabbix в Windows ищет файл конфигурации, было изменено. Теперь агент ищет его в каталоге, где находится бинарный файл агента zabbix_agentd.exe (вместо C:\zabbix_agentd.conf, как раньше).

Zabbix агент 2 в Windows уже искал файл конфигурации по умолчанию в каталоге, где находится бинарный файл zabbix_agent2.exe. Однако в новой версии агент 2 ожидает, что файл конфигурации будет называться zabbix_agent2.conf (вместо zabbix_agent2.win.conf).

См. также: Установка агента Zabbix в Windows.

В конфигурации плагина агента 2 разрешены пустые значения.

Теперь в параметрах конфигурации, связанных с плагином, в Zabbix агенте 2 разрешены пустые значения.

TimescaleDB 1.x более не поддерживается

Поддержка TimescaleDB 1.x прекращена.

Типы данных с двойной точностью в TimescaleDB

Перед обновлением до Zabbix 7.0.0 необходимо вручную обновить TimescaleDB для использования типов данных с двойной точностью, если TimescaleDB используется со сжатием. Вы можете определить, что TimescaleDB не использует типы данных с двойной точностью, по предупреждению в разделе веб-интерфейса Информация о системе или в журнале сервера Zabbix: "Database is not upgraded to use double precision values. Support for the old numeric type will be removed in future versions" («База данных не обновлена для использования значений с двойной точностью. Поддержка старого числового типа будет убрана в будущих версиях»).

Для получения дополнительной информации см. Обновление до числовых значений с расширенным диапазоном.

Auditlog преобразован в гипертаблицу на TimescaleDB

На новых инсталляциях таблица auditlog была преобразована в гипертаблицу на TimescaleDB, чтобы использовать преимущества автоматического партиционирования по времени (по умолчанию 1 день) и повышения производительности.

Для успешного обновления существующих инсталляций смотрите Обновление схемы TimescaleDB.

Смотрите также: Поддерживаемые версии TimescaleDB.

Отдельная таблица базы данных для прокси

Записи прокси были перемещены из таблицы hosts и теперь хранятся в новой таблице proxy.

Кроме того, рабочие данные прокси (такие как время последнего доступа, версия, совместимость) были перемещены из таблицы host_rtdata и теперь хранятся в новой таблице proxy_rtdata.

Также в API есть новый объект proxy. Все операции с прокси должны быть обновлены, чтобы производиться через этот новый объект прокси.

Время ожидания выполнения запроса для элементов данных «Монитор баз данных»

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

Параллелизм в сетевом обнаружении

В новой версии процесс сетевого обнаружения был переработан, чтобы обеспечить параллелизм между проверками сервисов. Был добавлен новый процесс менеджера обнаружения вместе с настраиваемым количеством рабочих процессов обнаружения (или потоков). Менеджер обнаружения (discovery manager) обрабатывает правила обнаружения и для каждого правила создаёт задание обнаружения с задачами (проверками сервисов). Проверки служб выбираются и выполняются рабочими процессами обнаружения (discovery workers).

Параметр StartDiscoverers теперь определяет общее количество рабочих процессов обнаружения, доступных для обнаружения. Количество StartDiscoverers по умолчанию было увеличено с 1 до 5, а диапазон — от 0-250 до 0-1000. Процессы discoverer из предыдущих версий Zabbix были убраны.

Кроме того, количество доступных рабочих процессов для каждого правила теперь можно настраивать в веб-интерфейсе. Этот параметр необязателен. Во время обновления он будет выставлен в значение «Один», как в предыдущих версиях Zabbix.

Изменения в API

Смотрите список изменений в API в Zabbix 7.0.0.

Минимальная необходимая версия PHP

Минимальная необходимая версия PHP повышена с 7.4.0 до 8.0.0.

Увеличены максимальный размер и количество виджетов панели

Ширина по умолчанию была увеличена в 3 раза для всех виджетов. Обратите внимание, что если вы используете пользовательские виджеты, вам может потребоваться обновить соответствующие параметры файла manifest.json (например, при настройке пользовательского виджета Clock width необходимо изменить с 4 на 12).

Виджет теперь может иметь до 72 столбцов в ширину (ранее 24) и от 1 до 64 строк в высоту (ранее 2–32). Таким образом, панель теперь может содержать до 72 виджетов по горизонтали.

Виджеты «История элементов данных» и «Простой текст»

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

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

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

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

В версии Zabbix 7.0.4 поведение раскрытия макросов {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {EVENT.CAUSE.*}, {EVENT.TAGS.*} и {EVENT.SYMPTOMS} было исправлено для согласованности с другими встроенными макросами. Теперь они будут раскрываться в *UNKNOWN*, если при вычислении их значения возникнет ошибка.

В результате этого изменения, для обеспечения надлежащей функциональности, необходимо обновить способы оповещений для следующих интеграций: iTop, Jira Service Desk, ManageEngine ServiceDesk, SolarWinds Service Desk.

Это изменение может также повлиять на любые пользовательские скрипты или интеграции, использующие вышеупомянутые макросы.

Другое

Асинхронные поллеры

После обновления все проверки агента, HTTP-агента и walk[OID] SNMP будут перенесены в асинхронные поллеры.

Обнаружение функций библиотеки cURL во время выполнения

Ранее функции библиотеки cURL определялись во время сборки сервера Zabbix, прокси или агента. Если функции cURL обновлялись, для их использования требовалось перекомпилировать соответствующий компонент Zabbix.

Теперь для того, чтобы обновлённые функции библиотеки cURL стали доступны в Zabbix, требуется только перезапуск. Перекомпиляция больше не требуется. Это справедливо для сервера Zabbix, прокси или агента.

Кроме того:

  • Минимальная требуемая во время сборки версия cURL была повышена до 7.19.1;
  • При сборке Zabbix просто проверяет, доступна ли библиотека cURL (если запрошено) и удовлетворяет ли требованиям версии;
  • При выдаче ошибки библиотеки cURL во время выполнения будет добавлена используемая версия (например: «cURL library does not support SSL/TLS (using version 7.88.1)»/«библиотека cURL не поддерживает SSL/TLS (используется версия 7.88.1)»);
  • При запуске сервера Zabbix и регистрации аутентификации SMTP в журнале будет записана доступность аутентификации SMTP в используемой библиотеке cURL.

База данных Oracle устарела

Поддержка Oracle в качестве внутренней базы данных устарела, начиная с Zabbix 7.0, и ожидается, что она будет полностью убрана в будущих версиях.

Проверка обновлений программного обеспечения

Теперь по умолчанию к новым и существующим установкам добавлена проверка обновлений программного обеспечения — веб-интерфейс Zabbix будет связываться с общедоступной конечной точкой Zabbix для проверки наличия обновлений.

Вы можете отключить эту проверку, установив AllowSoftwareUpdateCheck=0 в настройках сервера.

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

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

Американский формат времени

Отображение даты и времени в веб-интерфейсе теперь соответствует стандартному для США отображению даты/времени, когда используется язык интерфейса по умолчанию (en_US).

Ранее Теперь

Значки заменены шрифтами

Все значки в веб-интерфейсе были переключены с листов изображений значков на шрифты.

Фильтр последних данных

В МониторингПоследние данные подфильтр и данные больше не отображаются по умолчанию, если фильтр не установлен. Однако, следует отметить, что ранее сохранённые фильтры, которые были установлены с использованием только подфильтра, остаются неизменными. В таких случаях подфильтр останется видимым, и данные будут отображаться даже без установки основного фильтра.

Параметры конфигурации

Изменены значения по умолчанию для нескольких параметров конфигурации:

  • Параметр конфигурации BufferSize для Zabbix агента 2 увеличен со 100 до 1000;
  • Параметр конфигурации Plugins.<ИмяПлагина>.System.Capacity для Zabbix агента 2 увеличен со 100 до 1000 (максимум). Обратите внимание, что параметр Plugins.<ИмяПлагина>.Capacity, устаревший в Zabbix 6.0, был полностью убран;
  • Параметр конфигурации StartAgents для агента Zabbix был увеличен с 3 до 10. Обратите внимание, что в пакетах для малых систем (например, Raspberry Pi) значение по умолчанию может оставаться 3.

Эти изменения не влияют на существующие установки, где эти параметры заданы явно.

Агрегированные вычисления

Обновлены несколько функций агрегации. Теперь:

  • Функции агрегации теперь также поддерживают нечисловые типы для вычислений. Это может быть полезно, например, с функциями count и count_foreach.
  • Функции агрегации count и count_foreach поддерживают необязательные параметры оператор и шаблон, которые можно использовать для тонкой настройки фильтрации элементов данных и подсчёта только тех значений, которые соответствуют заданным критериям.
  • Все функции foreach больше не включают в подсчёт неподдерживаемые элементы данных.
  • Функция last_foreach, ранее настроенная на игнорирование аргумента периода времени, принимает его как необязательный параметр.

Старый числовой (с плавающей точкой) тип значения убран

Начиная с версии Zabbix 5.0, числовой (с плавающей точкой) тип данных поддерживает точность около 15 цифр и диапазон приблизительно от -1.79E+308 до 1.79E+308. Старый числовой тип был отключён, но все еще поддерживался. Начиная с Zabbix 6.4, он был объявлен устаревшим, а начиная с Zabbix 7.0, он был полностью убран.

Если ваша инсталляция не была обновлена для использования числовых значений с расширенным диапазоном, в разделе ОтчётыИнформация о системе отображается следующее предупреждение: "Database history tables upgraded: No. Support for the old numeric type is deprecated. Please upgrade to numeric values of extended range" («Таблицы истории базы данных обновлены: Нет. Поддержка старого числового типа устарела. Пожалуйста, обновите до числовых значений с расширенным диапазоном»).

При обновлении до Zabbix 7.0 следующие базы данных обновляются автоматически:

  • MySQL
  • PostgreSQL/TimescaleDB (без сжатия)
  • Oracle

Однако, для Oracle, более старых версий MySQL и больших установок рекомендуется перед обновлением до Zabbix 7.0 обновить тип данных вручную.

Для TimescaleDB со сжатием базу данных необходимо обновить вручную.

Более подробную информацию об обновлении смотрите на странице Обновление до числовых значений с расширенным диапазоном.

Настройка типа запуска службы агента Windows

Добавлена опция для установки типа запуска службы Windows Zabbix агента/агента 2 (-S --startup-type). Эта опция позволяет настроить службу агента/агента 2 на автоматический запуск при старте Windows (automatic), после завершения запуска автоматически запускаемых служб (delayed), при ручном запуске пользователем или приложением (manual) или для полного отключения службы (disabled).

При выполнении установки агента Windows из MSI тип запуска по умолчанию в Windows Server 2008/Vista и более поздних версиях теперь delayed, если не указано иное в параметре командной строки STARTUPTYPE. Это повышает надёжность и производительность службы Windows Zabbix агента/агента 2, особенно во время перезагрузок системы.

Шаблоны

Информацию о новых шаблонах и изменениях в существующих шаблонах смотрите на странице Изменения шаблонов.

Новая структура каталогов для файлов, относящихся к базам данных

При установке Zabbix из пакетов и подготовке схемы базы данных расположение файлов, относящихся к базам данных, изменилось, чтобы лучше соответствовать структуре файлов в исходниках:

  • Файлы инициализации базы данных (schema.sql, data.sql, images.sql) находятся в корне каталога базы данных.
  • Необязательные файлы/патчи для обновления таблиц базы данных находятся в каталоге option-patches.
  • Расширения и дополнения базы данных теперь являются подкаталогами, названными по расширению и расположенными в каталоге соответствующей базы данных.
  • Изменения, специфичные для TimescaleDB:
    • Сокращение tsdb было заменено на timescaledb.
    • Каталог option-patches включает подкаталоги with-compression и without-compression; они содержат необязательные файлы/патчи для обновления таблиц базы данных в зависимости от настроек сжатия TimescaleDB.
    • Файл создания схемы гипертаблиц для TimescaleDB был перемещён в database/postgresql/timescaledb/schema.sql.

Кроме того, обратите внимание на следующие изменения:

Ниже приведено сравнение предыдущей и текущей структуры каталогов для баз данных MySQL и PostgreSQL.

# Предыдущая:                                     # Текущая:
       
       database                                            database
       ├── mysql                                           ├── mysql
       │  ├── data.sql                                     │  ├── option-patches
       │  ├── double.sql                                   │  │  ├── double.sql
       │  ├── history_pk_prepare.sql                       │  │  └── history_pk_prepare.sql
       │  ├── images.sql                                   │  ├── data.sql
       │  └── schema.sql                                   │  ├── images.sql
       │                                                   │  └── schema.sql
       │                                                   │
       ├── postgresql                                      ├── postgresql
       │  ├── tsdb_history_pk_upgrade_no_compression       │  ├── option-patches
       │  │  ├── history_pk.sql                            │  │  ├── double.sql
       │  │  ├── history_pk_log.sql                        │  │  └── history_pk_prepare.sql
       │  │  ├── history_pk_str.sql                        │  ├── timescaledb
       │  │  ├── history_pk_text.sql                       │  │  ├── option-patches
       │  │  └── history_pk_uint.sql                       │  │  │  ├── with-compression
       │  ├── tsdb_history_pk_upgrade_with_compression     │  │  │  │  ├── history_pk.sql
       │  │  ├── history_pk.sql                            │  │  │  │  ├── history_pk_log.sql
       │  │  ├── history_pk_log.sql                        │  │  │  │  ├── history_pk_str.sql
       │  │  ├── history_pk_str.sql                        │  │  │  │  ├── history_pk_text.sql
       │  │  ├── history_pk_text.sql                       │  │  │  │  └── history_pk_uint.sql
       │  │  └── history_pk_uint.sql                       │  │  │  └── without-compression
       │  ├── data.sql                                     │  │  │     ├── history_pk.sql
       │  ├── double.sql                                   │  │  │     ├── history_pk_log.sql
       │  ├── history_pk_prepare.sql                       │  │  │     ├── history_pk_str.sql
       │  ├── images.sql                                   │  │  │     ├── history_pk_text.sql
       │  ├── schema.sql                                   │  │  │     └── history_pk_uint.sql
       │  └── timescaledb.sql                              │  │  └── schema.sql
       │                                                   │  ├── data.sql
       │                                                   │  ├── images.sql
       │                                                   │  └── schema.sql
       ├── ...                                             ├── ...

Пожалуйста, обновите свои скрипты, если таковые имеются, содержащие ссылки на предыдущую структуру каталогов или файлы.

Протокол JSON для пассивных проверок агента

Был реализован протокол на основе JSON для пассивных проверок агента.

Для совместимости со старыми агентами добавлено переключение на старый протокол простого текста. Если агент возвращает "ZBX_NOTSUPPORTED", Zabbix кэширует интерфейс как старый протокол и повторяет проверку, отправляя только ключ элемента данных в виде простого текста.

Zabbix get теперь можно запустить с новой опцией -P --protocol <значение>, где «значение» может быть:

  • auto — подключиться с использованием протокола JSON, вернуться и повторить попытку с использованием протокола простого текста (по умолчанию);
  • json — подключиться с использованием ключа протокола JSON;
  • plaintext — подключиться с использованием протокола простого текста, при котором отправляется только ключ элемента данных.

Если ключ элемента данных не поддерживается, Zabbix get теперь будет возвращать код завершения 1 вместо 0.

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

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

При использовании обновлённого сервера (версии 7.0.0 или новее) с более старым прокси или агентом прокси или агент будут работать как прежде:

  • прокси будет использовать параметр Timeout из файла конфигурации прокси;
  • агент будет использовать параметр Timeout из файла конфигурации агента.

Параметры тайм-аута были убраны из файлов конфигурации плагинов Modbus и MQTT. Теперь тайм-ауты выполнения запроса можно задать с помощью диалога настроек элемента данных.

Элементы данных «Браузер»

В Zabbix добавлен новый тип элементов данных — элемент данных «Браузер», позволяющий осуществлять мониторинг сложных веб-сайтов и веб-приложений с помощью браузера. Элементы данных «Браузер» позволяют выполнять пользовательский код JavaScript для имитации действий, связанных с браузером, таких как щелчок мышью, ввод текста, навигация по веб-страницам и т. д.

Кроме того, эта функция добавляет следующие изменения:

  • Шаблон Website by Browser был добавлен к готовым шаблонам;
  • Тип элемента данных ITEM_TYPE_BROWSER (22) добавлен в экспорт/импорт конфигурации элемента данных, правила низкоуровневого обнаружения и прототипа элемента данных шаблона или узла сети;
  • Добавлены параметры файла конфигурации Zabbix сервера/прокси StartBrowserPollers и WebDriverURL;
  • Тайм-аут браузерного элемента данных был добавлен в тайм-ауты прокси или глобальные тайм-ауты (если прокси не используется);
  • В утилиту командной строки zabbix_js был добавлен параметр командной строки -w <url веб-драйвера> для активации браузерного мониторинга.

Обновлённые элементы данных агента/агента2

  • wmi.get и wmi.getall, при использовании с агентом Zabbix 2 теперь возвращают JSON с логическими значениями, представленными в виде строк (например, "RealTimeProtectionEnabled": "True" вместо "RealTimeProtectionEnabled": true, возвращаемого ранее), чтобы соответствовать формату вывода этих элементов данных в агенте Zabbix;
  • oracle.ts.stats имеет новый параметр conname для указания имени целевого контейнера. Формат JSON возвращаемых данных был обновлён. Если в параметрах ключа не указано tablespace, тип или conname, возвращаемые данные будут включать дополнительный уровень JSON с именем контейнера, что позволяет различать контейнеры.
  • элементы данных net.dns.* больше не могут быть настроены без параметра имя. Хотя он всегда был указан как обязательный, параметр имя, если был опущен, ранее разрешался в значение по умолчанию (zabbix.com), что более не так.

Список изменений элементов данных, которые не нарушают совместимость, см. в разделе Что нового в Zabbix 7.0.0.

SNMP трапы с высокой доступностью Zabbix

В инсталляциях высокой доступности теперь в случае переключения активного узла Zabbix может читать файлы трапов SNMP из правильного места .

Однако, для работы этой функции требуется обновить формат времени в любых скриптах bash, perl и SNMPTT на "%Y-%m-%dT%H:%M:%S%z" (т. е. 2024-01-10T11:56:14+0300).