Table of Contents

8. Известные проблемы

Смотрите также: Проблемы при компиляции.

Запуск прокси с MySQL 8.0.0-8.0.17

zabbix_proxy на версиях MySQL 8.0.0-8.0.17 завершается со следующей ошибкой «access denied»:

[Z3001] connection to database 'zabbix' failed: [1227] Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation

Такое поведение связано с тем, что MySQL 8.0.0 начал применять специальные права доступа к установке переменных сессий. Однако, в 8.0.18 версии такой подход отменён: Начиная с MySQL 8.0.18, установка переменной сессий с этой системной переменной более не является запрещённой операцией. [en]

Временное решение основывается на предоставлении дополнительных привилегий пользователю zabbix:

Для версий MySQL 8.0.14 — 8.0.17:

grant SESSION_VARIABLES_ADMIN on *.* to 'zabbix'@'localhost';

Для версий MySQL 8.0.0 — 8.0.13:

grant SYSTEM_VARIABLES_ADMIN on *.* to 'zabbix'@'localhost';

Обновление

Настройки режима SQL для успешного обновления

Параметр sql_mode в MySQL/MariaDB должен быть выставлен в режим «STRICT_TRANS_TABLES». Если он отсутствует, обновление базы данных Zabbix завершится неудачей (смотрите также ZBX-19435 [en]).

Обновление с MariaDB 10.2.1 и старше

Обновление Zabbix может завершится с ошибкой, если таблицы базы данных были созданы с MariaDB версии 10.2.1 и старше, так как в этих версиях по умолчанию используется компактный формат строк. Такая проблема исправляется изменением формата строк на динамический формат (смотрите также ZBX-17690 [en]).

Шаблоны

Совместимость шаблонов в средах с двумя стеками (IPv4/IPv6)

В средах с двумя стеками (системы, настроенные для поддержки как IPv4, так и IPv6) имя хоста localhost обычно разрешается как в адреса IPv4, так и в IPv6. Из-за общепринятого приоритета IPv6 над IPv4 во многих операционных системах и резолверах DNS, шаблоны Zabbix могут работать неправильно, если отслеживаемая служба настроена на прослушивание только IPv4.

Службы, которые не настроены на прослушивание адресов IPv6, могут стать недоступными, что приведёт к сбоям в мониторинге. Пользователи могут правильно настроить доступ для IPv4, но по-прежнему сталкиваться с проблемами подключения из-за приоритета IPv6 по умолчанию.

Обходной путь для этого — убедиться, что службы (Nginx, Apache, PostgreSQL и т. д.) настроены на прослушивание адресов IPv4 и IPv6, а серверу/агенту Zabbix разрешён доступ через IPv6. Кроме того, в шаблонах и настройках Zabbix явно используйте localhost вместо 127.0.0.1, чтобы обеспечить совместимость как с IPv4, так и с IPv6.

Например, при мониторинге PostgreSQL с помощью шаблона PostgreSQL by Zabbix agent 2 [en] вам может потребоваться отредактировать файл pg_hba.conf, чтобы разрешить соединения для пользователя zbx_monitor. Если среда с двойным стеком отдаёт приоритет IPv6 (система разрешает localhost в ::1), а вы настраиваете localhost, но добавляете только запись IPv4 (127.0.0.1/32), то установить соединение не получится, поскольку нет соответствия для адреса IPv6.

Следующий пример файла pg_hba.conf гарантирует, что пользователь zbx_monitor может подключиться к любой базе данных с локального компьютера, используя адреса IPv4 и IPv6 с разными методами аутентификации:

# TYPE     DATABASE     USER            ADDRESS          METHOD
         host     all          zbx_monitor     localhost        trust
         host     all          zbx_monitor     127.0.0.1/32     md5
         host     all          zbx_monitor     ::1/128          scram-sha-256

При необходимости вы также можете использовать адрес IPv4 (127.0.0.1) непосредственно при настройке макроса для строки подключения в шаблоне PostgreSQL by Zabbix agent 2 [en].

Непреднамеренная установка пакетов EPEL Zabbix

Если установлен и подключён репозиторий EPEL, установка Zabbix из пакетов приведёт к установке пакетов EPEL Zabbix, а не официальных пакетов Zabbix.

В этом случае деинсталируйте пакеты Zabbix из EPEL, т.е.:

dnf remove zabbix-server-mysql

Заблокируйте пакеты Zabbix из EPEL. Добавьте следующую строку в файл /etc/yum.conf:

exclude=zabbix7.0*

Установите сервер Zabbix заново:

dnf install zabbix-server-mysql

Обратите внимание, что официальные пакеты Zabbix имеют слово release в строке версии:

7.0.0-release1.el8

Пакеты Zabbix для RHEL в средах Red Hat UBI

При установке Zabbix из пакетов Red Hat Enterprise Linux в средах Red Hat Universal Base Image [en] обеспечьте доступ к необходимым репозиториям и зависимостям. Пакеты Zabbix зависят от библиотек libOpenIPMI.so и libOpenIPMIposix.so, которые не предоставляются ни одним пакетом в репозиториях менеджера пакетов, включённых по умолчанию в системах UBI, что приведёт к сбоям при установке.

Библиотеки libOpenIPMI.so и libOpenIPMIposix.so доступны в пакете OpenIPMI-libs, который предоставляется репозиторием redhat-#-for-<arch>-appstream-rpms. Доступ к этому репозиторию регулируется подписками, которые в случае сред UBI распространяются путём монтирования каталогов конфигурации репозитория и секретов хоста RHEL в пространство имён файловой системы контейнера.

Для получения дополнительной информации смотрите ZBX-24291 [en].

Истекший срок действия ключа подписи для пакетов RHEL

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

error: Verifying a signature using certificate D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (Jul 2022) <[email protected]>):
         1. Certificiate 19F2475308EFA7DD invalid: certificate is not alive
             because: The primary key is not live
             because: Expired on 2024-07-04T11:41:23Z
         2. Key 19F2475308EFA7DD invalid: key is not alive
             because: The primary key is not live
             because: Expired on 2024-07-04T11:41:23Z

Чтобы решить такие проблемы, переустановите вручную последний пакет zabbix-release для вашего конкретного варианта RHEL (замените ссылку ниже на правильную из репозитория Zabbix).

Например, на RHEL 9 выполните:

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest.el9.noarch.rpm

Затем обновите информацию о репозитории:

dnf update

Для получения дополнительной информации смотрите ZBX-24761 [en].

TLS подключение к базе данных с MariaDB

При использовании MariaDB подключение TLS к базе данных не поддерживается с опцией «verify_ca» для параметра DBTLSConnect.

Возможные взаимные блокировки с MySQL/MariaDB

При работе под высокой нагрузкой и использовании более одного процесса LLD worker возможно возникновение взаимных блокировок (deadlocks), вызванных ошибкой InnoDB, относящейся к стратегии блокировок строк (см. upstream bug [en]). Ошибка была исправлена в MySQL, начиная с версии 8.0.29, но не в MariaDB. Для более подробной информации, обратитесь к ZBX-21506 [en].

Глобальная корреляция событий

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

Диапазон типа данных числовой (с плавающей точкой) в PostgreSQL 11 и более старых версиях

PostgreSQL версии 11 и старше поддерживают значения с плавающей точкой только в диапазоне приблизительно от -1.34E-154 до 1.34E+154.

NetBSD 8.0 и новее

Различные процессы Zabbix могут случайным образом аварийно завершать работу при запуске на NetBSD версий 8.X и 9.X. Такое поведение связано со слишком малым размером стека по умолчанию (4МБ), который необходимо увеличить, выполнив:

ulimit -s 10240

Для получения более подробной информации, пожалуйста, обратитесь к соответствующему отчёту о проблеме: ZBX-18275 [en].

Ограничения регулярных выражений в Zabbix агенте 2

Агент Zabbix 2 не поддерживает просмотр вперед и назад в регулярных выражениях из-за ограничений стандартной библиотеки регулярных выражений Go.

IPMI проверки

IPMI проверки не будут работать со стандартным пакетом библиотеки OpenIPMI на Debian до версии 9 (stretch) и Ubuntu до 16.04 (xenial). Чтобы исправить проблему, пересоберите OpenIPMI библиотеку с включённым OpenSSL, как обсуждалось в ZBX-6139 [en].

SSH проверки

  • Некоторые дистрибутивы Linux, такие как Debian и Ubuntu, не поддерживают зашифрованные закрытые (private) ключи (с парольной фразой), если библиотека libssh2 установлена из пакетов. Пожалуйста, обратитесь к ZBX-4850 [en] для получения более подробных сведений.

  • При использовании libssh 0.9.x на некоторых дистрибутивах Linux с OpenSSH 8 проверки SSH могут иногда сообщать: «Cannot read data from SSH server». Такое поведение вызвано проблемой [en](более подробный отчёт [en]) libssh. Ожидается, что эта ошибка исправлена в стабильном выпуске libssh 0.9.5. Смотрите также ZBX-17756 [en] для получения подробной информации.

  • Использование вертикальной черты "|" в SSH скрипте может привести к ошибке «Cannot read data from SSH server». В этом случае рекомендуется обновить версию библиотеки libssh. Смотрите также ZBX-21337 [en] для получения подробной информации.

ODBC проверки

  • Драйвер unixODBC MySQL лучше не использовать с Zabbix сервером или Zabbix прокси, скомпилированными с библиотекой MariaDB, и наоборот, по возможности лучше избегать использование того же коннектора, что и драйвер, по причине зарегистрированной проблемы [en]. Предлагаемая установка:

    PostgreSQL, SQLite или Oracle коннекторы → MariaDB или MySQL unixODBC драйвер
    MariaDB коннектор → MariaDB unixODBC драйвер
    MySQL коннектор → MySQL unixODBC драйвер

Пожалуйста, обратитесь к ZBX-7665 [en] для получения более подробных сведений и вариантов обходных решений.

  • Данные XML, запрошенные с Microsoft SQL Server, могут обрезаться различными способами на Linux и UNIX системах.

  • Было замечено, что использование ODBC проверок для мониторинга баз данных Oracle с использованием различных версий Oracle Instant Client for Linux приводит к аварийной остановке Zabbix сервера. Смотрите также: ZBX-18402 [en], ZBX-20803 [en].

  • При использовании драйвера UnixODBC FreeTDS нужно SQL-запрос предварить утверждением «SET NOCOUNT ON» (например: SET NOCOUNT ON DECLARE @strsql NVARCHAR(max) SET @strsql = ....). В противном случае элемент данных с типом «Монитор баз данных» в Zabbix при получении информации завершится ошибкой: «SQL query returned empty result».
    Обратитесь к ZBX-19917 [en] для получения более подробной информации.

Некорректный параметр метода запроса в элементах данных

Параметр метода запроса, используемый только в HTTP проверках, может быть некорректным образом задан значением '1', значением не по умолчанию для всех элементов данных, в результате обновления с версии Zabbix pre-4.0. Для получения более подробных сведений по устранению данной ситуации смотрите ZBX-19308 [en].

Веб-мониторинг и HTTP агент

Zabbix сервер имеет утечку памяти на некоторых дистрибутивах Linux по причине ошибки в библиотеке [en] при включённой опции «Проверка SSL узла» в веб-сценариях или HTTP агенте. Пожалуйста, обратитесь к ZBX-10486 [en] для получения более подробной информации и возможных вариантов решения.

Простые проверки

Имеется проблема в утилите fping версий до v3.10, которые некорректно обрабатывают дубликаты ответных echo пакетов. Такое поведение может вызывать непредвиденные результаты в элементах данных icmpping, icmppingloss, icmppingsec. Рекомендуется использовать последнюю версию fping. Пожалуйста, обратитесь к ZBX-11726 [en] для получения более подробной информации.

Ошибки при выполнении fping в контейнерах без root-доступа

Когда контейнеры работают в режиме без root-доступа или в среде со специальными ограничениями, вы можете столкнуться с ошибками, связанными с работой fping при выполнении проверок ICMP, такими как: «fping: Operation not permitted», — или потерей всех пакетов ко всем ресурсам.

Для исправления этой проблемы добавьте --cap-add=net_raw к командам «docker run» или «podman run».

В дополнение к этому, выполнение fping в средах без root-доступа может потребовать модификации sysctl, то есть:

sudo sysctl -w "net.ipv4.ping_group_range=0 1995"

где «1995» — это GID zabbix. Для дополнительной информации обратитесь к ZBX-22833 [en].

SNMP проверки

При использовании операционной системы OpenBSD, проблема «использование памяти после её освобождения» в библиотеке Net-SNMP вплоть до версии 5.7.3 может привести к аварийной остановке сервера Zabbix, если в файле конфигурации сервера Zabbix указан параметр SourceIP. Как временное решение, пожалуйста, не задавайте параметр SourceIP. Эта проблема также применима и к Linux, но она не приводит к остановке работы сервера Zabbix. К пакету net-snmp применен локальный патч на OpenBSD и будет выпущен с версией OpenBSD 6.3.

Резкие скачки в SNMP данных

Наблюдались резкие скачки в SNMP данных, которые могут быть связаны с определёнными физическими факторами, такими как скачки напряжения в сети. Обратитесь к ZBX-14318 [en] для получения более подробной информации.

SNMP трапы

Пакет «net-snmp-perl», требуемый для SNMP трапов, удалён в RHEL 8.0-8.2; добавлен повторно в RHEL 8.3.

Таким образом, если вы используете RHEL 8.0-8.2, лучшим решением будет обновление до RHEL 8.3.

Пожалуйста, также просмотрите ZBX-17192 [en] для получения более подробной информации.

Сбой в процессе alerter в RHEL 7

В RHEL 7 обнаружены случаи сбоя в процессах alerter сервера Zabbix. Пожалуйста, обратитесь к ZBX-10461 [en] для получения более подробной информации.

Обновление Zabbix агента 2 (6.0.5 или более старого)

При обновлении Zabbix агента 2 (версии 6.0.5 или старше) из пакетов может возникнуть ошибка конфликта файлов, связанных с плагином. Чтобы исправить ошибку, сделайте резервную копию конфигурации агента 2 (если необходимо), деинсталлируйте агент 2 и установите заново.

На системах на базе RHEL выполните:

dnf remove zabbix-agent2
       dnf install zabbix-agent2

На системах на базе Debian выполните:

apt remove zabbix-agent2
       apt install zabbix-agent2

Для более подробной информации обратитесь к ZBX-23250 [en].

Переключение локалей в веб-интерфейсе

Было замечено, что локали в веб-интерфейсе могут переключаться без какой-либо явной логики, то есть некоторые страницы (или части страниц) отображаются на одном языке, тогда как другие страницы (или части страниц) — на другом. Обычно такая проблема может возникнуть, когда имеется несколько пользователей, некоторые из которых используют одну локаль, в то время как другие используют другую локаль.

Известный вариант решения такой проблемы — отключение многопоточности в PHP и Apache.

Эта проблема связана с тем, как локали работают в PHP [en]: информация о локали сохраняется по каждому процессу, а не по потоку. Поэтому в многопоточной среде, где несколько проектов выполняются одним и тем же процессом Apache, имеется вероятность, что локаль меняется в другом потоке, что меняет способ обработки данных в потоке Zabbix.

Для получения более подробной информации смотрите соответствующие отчёты о проблеме:

  • ZBX-10911 [en] (Проблема с переключением локалей в веб-интерфейсе)
  • ZBX-16297 [en] (Проблема с обработкой чисел в графиках с использованием функции bcdiv из функций BC Math)

Графики

Летнее время

Переходы на летнее время (DST) приводят к нарушению отображения подписей к оси X (дублирование даты, отсутствие даты и т.п.).

Агрегирование в виде суммы

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

Наложение текста

Для некоторых языков веб-интерфейса (например, японского), местные шрифты могут приводить к наложению текста в легенде графика. Чтобы избежать этого, используйте версию 2.3.0 (или более позднюю) расширения PHP GD.

Мониторинг файлов журналов

Элементы данных log[] и logrt[] многократно перечитывают файл журнала с самого начала, если файловая система заполнена на 100% и файл журнала продолжает заполняться (обратитесь к ZBX-10884 [en] для получения более подробной информации).

Медленные запросы MySQL

Zabbix сервер генерирует медленные запросы SELECT в случае несуществующих значений у элементов данных. Это обусловлено известной проблемой [en] в MySQL версий 5.6/5.7 (для её обсуждения обратитесь к ZBX-10652 [en]), а также, в некоторых случаях, может происходить и в более поздних версиях MySQL. Чтобы обойти эту проблему, отключите параметр index_condition_pushdown [en] или prefer_ordering_index [en] оптимизатора в MySQL. Обратите внимание, однако, что такой обходной путь может исправить не все проблемы, относящиеся к медленным запросам.

Медленная синхронизация конфигурации с Oracle

В инсталяциях Zabbix с базой данных Oracle, имеющих большое количество элементов данных и шагов предобрабротки элементов данных, синхронизация конфигурации может быть медленной. Причиной этого является скорость обработки полей типа nclob механизмом СУБД Oracle.

Для улучшения производительности Вы можете сконвертировать типы полей из nclob в nvarchar2 путём применения вручную патча для базы данных items_nvarchar_prepare.sql. Обратите внимание, что такое преобразование сократит ограничение максимального размера поля с 65535 байт до 4000 байт для параметров предобработки элементов данных и параметров элементов данных — таких как Описание, поле Скрипт у элементов данных типа «Скрипт», поля Тело запроса и Заголовки у элементов данных типа «HTTP агент», поле SQL запрос у элемента данных типа «Монитор баз данных». Запросы для определения имён шаблонов, которые нужно удалить перед применением патча, представлены в патче в виде комментария. Как альтернатива, если выставлено MAX_STRING_SIZE, Вы можете поменять nvarchar2(4000) на nvarchar2(32767) в запросах патча, чтобы выставить ограничение размера поля 32767 байт.

Для подробного обсуждения смотрите ZBX-22363 [en].

API login

У пользователя может быть создано большое количество открытых сессий при использовании пользовательских скриптов с методом user.login без последующего использования user.logout.

Постоянные настройки фильтра из ссылок

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

Проблема с IPv6 адресами в SNMPv3 трапах

По причине проблемы в net-snmp, в SNMP трапах IPv6 адреса могут некорректно отображаться при использовании SNMPv3. Для получения более подробной информации и возможных вариантах решения смотрите ZBX-14541 [en].

Урезание длинных IP адресов IPv6 в информации о неуспешном входе в систему

Сообщение об ошибочном входе в систему отобразит только первые 39 символов сохранённого IP адреса, так как это ограничение длины поля базы данных. Это означает, что IP адреса IPv6 длиннее 39 символов будут отображаться не полностью.

Проверки Zabbix агент на Windows

Несуществующие записи DNS в параметре Server в файле конфигурации Zabbix агента (zabbix_agentd.conf) могут повысить время ответа Zabbix агента на Windows. Такое случается по причине того, что демон Windows DNS кэширования не кэширует отрицательные ответы по IPv4 адресам. Однако, для IPv6 адресов отрицательные ответы кэшируются; таким образом, возможным вариантом решения будет отключение IPv4 на хосте.

Экспорт/импорт YAML

Имеются несколько известных проблем, связанных с экспортом/импортом YAML:

  • Сообщения об ошибках не поддаются переводу;
  • Валидный JSON с расширением файла .yaml иногда не удаётся импортировать;
  • Не заключённые в кавычки привычные человеку даты автоматически конвертируются в штампы времени в формате Unix.

Мастер установки в SUSE с NGINX и php-fpm

Мастер установки веб-интерфейса не в состоянии сохранить файл конфигурации в SUSE с NGINX + php-fpm. Эта проблема вызвана настройкой в /usr/lib/systemd/system/php-fpm.service юните, который не позволяет Zabbix выполнять запись в /etc. (введено в PHP 7.4 [en]).

Доступно два варианта решения:

  • Задать опции ProtectSystem [en] значение «true» вместо «full» в php-fpm юните systemd.
  • Вручную сохранить файл /etc/zabbix/web/zabbix.conf.php.

Chromium для веб-сервиса Zabbix в Ubuntu 20

Хотя в большинстве случаев веб-сервис Zabbix может работать с Chromium, в Ubuntu 20.04 использование Chromium приводит к следующей ошибке:

Cannot fetch data: chrome failed to start:cmd_run.go:994:
       WARNING: cannot create user data directory: cannot create 
       "/var/lib/zabbix/snap/chromium/1564": mkdir /var/lib/zabbix: permission denied
       Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details.

Эта ошибка возникает из-за того, что в качестве домашней директории пользователя «zabbix» используется /var/lib/zabbix.

Специальные коды ошибок MySQL

Если Zabbix используется с MySQL инсталляцией в Azure, в журналах Zabbix может появиться расплывчатое сообщение об ошибке [9002] Some errors occurred. Этот общий текст ошибки отправляется Zabbix серверу или прокси со стороны базы данных. Для получения более подробных сведений о причине возникновения такой ошибки обратитесь к журналам Azure.

Ошибочные регулярные выражения после переключения на PCRE2

В Zabbix 6.0 была добавлена поддержка PCRE2. Хотя PCRE по-прежнему поддерживается, установочные пакеты Zabbix для RHEL 7 и новее, SLES (всех версий), Debian 9 и новее, Ubuntu 16.04 и новее были обновлены и теперь используют PCRE2. Несмотря на множество преимуществ, переход на PCRE2 может привести к тому, что существующие шаблоны регулярных выражений PCRE станут ошибочными или изменят свое поведение. В частности, это изменение затрагивает шаблон ^[\w-\.]. Чтобы сделать это регулярное выражение снова корректным, не затрагивая семантику, измените выражение на ^[-\w\.] . Такая проблема происходит из-за того, что PCRE2 рассматривает знак минуса в качестве разделителя, создавая диапазон внутри класса символов.

Ошибка виджета геокарты

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

Чтобы исправить эту проблемы, вы можете выбросить старый файл конфигурации, использовать файл конфигурации из текущей версии пакета и перенастроить его, как описано в инструкциях по загрузке в разделе e. Настройте PHP для веб-интерфейса (e. Configure PHP for Zabbix frontend).

Как альтернатива, вы можете вручную изменить существующий файл конфигурации NGINX (обычно, /etc/zabbix/nginx.conf). Чтобы это сделать, откройте файл и найдите следующий блок:

location ~ /(api\/|conf[^\.]|include|locale|vendor) {
               deny            all;
               return          404;
       }

Затем, замените этот блок следующим:

location ~ /(api\/|conf[^\.]|include|locale) {
               deny            all;
               return          404;
       }
       
       location /vendor {
               deny            all;
               return          404;
       }

Сценарий с глобальными переменными, общими для вызовов вебхуков

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

try 
       {
          aa = aa + 1;
       }
       catch(e)
       {
          aa = 0;
       }

       result = {
               'tags': {
                   'endpoint': aa
               }
           };
       return JSON.stringify(result);

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

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

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

Чтобы исправить проблему, выполните ручное перестроение таблицы журнала аудита. Ошибочную таблицу журнала аудита можно обнаружить с помощью этого запроса:

SELECT config FROM timescaledb_information.jobs WHERE application_name LIKE 'Compression%' AND hypertable_schema='public' AND hypertable_name='auditlog';.

Если он возвращает объект JSON, содержащий свойство compress_after (например, {"hypertable_id": 14, "compress_after": 612000}), то вам следует перестроить таблицу.

Убедитесь, что версия сервера Zabbix как минимум 7.0.1rc2 (или выше); в противном случае он снова установит неправильную политику сжатия. Кроме того, остановите сервер Zabbix перед запуском скрипта и убедитесь, что auditlog принадлежит пользователю zabbix.

Самый простой способ перестроить таблицу журнала аудита:

CREATE TABLE auditlog_tmp (
           LIKE auditlog INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES
       );
       
       SELECT create_hypertable('auditlog_tmp', 'auditid', chunk_time_interval => 604800,
       time_partitioning_func => 'cuid_timestamp', migrate_data => true, if_not_exists => true);
       
       WITH moved_rows AS (
           DELETE FROM auditlog
           RETURNING *
       )
       INSERT INTO auditlog_tmp
       SELECT * FROM moved_rows;
       
       DROP TABLE auditlog;
       ALTER TABLE auditlog_tmp RENAME TO auditlog;

Смотрите также документацию TimescaleDB [en] для более оптимизированных способов миграции данных.

Поскольку метка времени, необходимая для партиционирования, извлекается из поля auditid с помощью специальной функции, вспомогательные процедуры, используемые для миграции данных из timescaledb-extras, работать не будут.

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

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

ERROR:  function base36_decode(text) does not exist
       LINE 1: CAST(base36_decode(substring(cuid FROM 2 FOR 8))/1000 AS int...
                    ^
       HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Эта ошибка возникает при восстановлении резервной копии, созданной с помощью pg_dump [en].

Чтобы исправить эту проблему, замените функцию cuid_timestamp в вашей базе данных Zabbix перед созданием резервной копии (рекомендуется остановить PostgreSQL/TimescaleDB перед запуском скрипта):

CREATE OR REPLACE FUNCTION cuid_timestamp(cuid varchar(25)) RETURNS integer AS $$
       DECLARE
           base36 varchar;
           a char[];
           ret bigint;
           i int;
           val int;
           chars varchar;
       BEGIN
           base36 := substring(cuid FROM 2 FOR 8);
       
           chars := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
       
           FOR i IN REVERSE char_length(base36)..1 LOOP
               a := a || substring(upper(base36) FROM i FOR 1)::char;
           END LOOP;
           i := 0;
           ret := 0;
           WHILE i < (array_length(a, 1)) LOOP
               val := position(a[i + 1] IN chars) - 1;
               ret := ret + (val * (36 ^ i));
               i := i + 1;
           END LOOP;
       
           RETURN CAST(ret/1000 AS integer);
       END;
       $$ LANGUAGE 'plpgsql' IMMUTABLE;
       DROP FUNCTION IF EXISTS base36_decode(character varying);

Смотрите также ZBX-24955 [en] (для получения дополнительных сведений об ошибке) и документацию TimescaleDB [en] (для ознакомления с дополнительными возможностями резервного копирования и восстановления).

Группы процессоров в Windows

В документации Microsoft указано, что системы с количеством логических процессоров менее 64 всегда имеют одну группу процессоров, Group 0. Однако пользователи Zabbix сообщили о редкой ошибке ZBX-20260 [en], когда в системах с количеством логических процессоров 64 или менее есть две группы процессоров. Это приводило к появлению счётчиков производительности "(n)" только для одной группы процессоров из двух. Фактическая первопричина этой ошибки неизвестна. Однако аналогичный случай был описан на stackoverflow.com [en], и первопричина там была во взаимодействии BIOS и Windows.

Неисправные замещения правил LLD в 7.0.7

В версии 7.0.7 сервер Zabbix аварийно завершает работу при обработке замещений правил низкоуровневого обнаружения. В качестве временного решения отключите правила LLD, содержащие замещения. Проблема была исправлена в Zabbix 7.0.8rc2.