- Известные проблемы
- Обновление
- Шаблоны
- Случайная установка пакетов Zabbix из EPEL
- Пакеты Zabbix для RHEL в средах Red Hat UBI
- Истёкший ключ подписи для пакетов RHEL
- Timescale DB: высокое потребление памяти при большом количестве партиций
- Timescale DB 2.5.0: политика сжатия может завершаться с ошибкой на таблицах, содержащих целые числа
- TLS-подключение к базе данных с MariaDB
- Возможные взаимные блокировки с MySQL/MariaDB
- Глобальная корреляция событий
- NetBSD 8.0 и новее
- Ограничения регулярных выражений в Zabbix агенте 2
- IPMI проверки
- IPMI — недоверенные узлы сети могут вызвать сбой OpenIPMI
- SSH проверки
- Проверки ODBC
- Некорректный параметр метода запроса в элементах данных
- Веб-мониторинг и HTTP агент
- Простые проверки
- Ошибки при выполнении fping в контейнерах без root-доступа
- SNMP проверки
- Резкие скачки в SNMP данных
- SNMP трапы
- Сбой в процессе alerter в RHEL 7
- Обновление Zabbix агента 2 (6.0.5 или более старого)
- Переключение локалей в веб-интерфейсе
- Графики
- Мониторинг файлов журналов
- Медленные запросы MySQL
- Постоянные настройки фильтра из ссылок
- Проблема с IPv6 адресами в SNMPv3 трапах
- Урезание длинных IP адресов IPv6 в информации о неуспешном входе в систему
- Проверки Zabbix агент на Windows
- Экспорт/импорт YAML
- Мастер установки в SUSE с NGINX и php-fpm
- Перенаправление заголовка Authorization
- Chromium для веб-сервиса Zabbix в Ubuntu 20
- Специальные коды ошибок MySQL
- Ошибочные регулярные выражения после переключения на PCRE2
- Ошибка виджета Geomap
- Предобработка — глобальные переменные небезопасны
- Группы процессоров в Windows
- Ограничения фильтрации с utf8mb4-сопоставлениями
- Доступ к элементам пользовательского интерфейса с MariaDB 10.5.1-10.5.9
- Профилирование чрезмерного использования памяти с помощью tcmalloc
- MySQL 8.0 Group Replication в режиме multi-primary
Известные проблемы
См. также: Проблемы компиляции.
Обновление
Настройки режима 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 может потребоваться отредактировать файл 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 для строки подключения.
Случайная установка пакетов Zabbix из EPEL
Если репозиторий EPEL установлен и активирован, установка пакетов Zabbix может привести к загрузке версий EPEL вместо официальных пакетов Zabbix. Чтобы решить эту проблему:
1. Удалите все пакеты Zabbix, установленные из EPEL:
dnf remove zabbix-server-mysql
2. Исключите пакеты Zabbix из EPEL, добавив следующую строку в файл /etc/yum.repos.d/epel.repo:
[epel]
...
excludepkgs=zabbix*
3. Переустановите официальный пакет сервера Zabbix:
dnf install zabbix-server-mysql
Во время установки официальные пакеты Zabbix включают слово release в строку версии (например, 7.0.0-release1.el8), что отличает их от пакетов EPEL.
Пакеты Zabbix для RHEL в средах Red Hat UBI
При установке Zabbix из пакетов Red Hat Enterprise Linux в средах Red Hat Universal Base Image убедитесь, что есть доступ к необходимым репозиториям и зависимостям.
Пакеты Zabbix зависят от библиотек libOpenIPMI.so и libOpenIPMIposix.so, которые не предоставляются ни одним пакетом в репозиториях менеджера пакетов по умолчанию, включенных в системах UBI, и это приведет к ошибкам установки.
Библиотеки libOpenIPMI.so и libOpenIPMIposix.so доступны в пакете OpenIPMI-libs, который предоставляется репозиторием redhat-#-for-<arch>-appstream-rpms.
Доступ к этому репозиторию определяется подписками, которые в случае сред UBI передаются путем монтирования каталогов конфигурации репозиториев и секретов хоста RHEL в пространство имен файловой системы контейнера.
Дополнительную информацию см. в ZBX-24291.
Истёкший ключ подписи для пакетов RHEL
При обновлении Zabbix на Red Hat Enterprise Linux или его производных вы можете столкнуться с проблемой истечения срока действия ключа подписи пакетов в репозитории Zabbix. Когда срок действия ключа подписи истекает, попытки проверить подписи пакетов приводят к ошибке, указывающей на то, что сертификат или ключ больше недействителен. Например:
error: Verifying a signature using certificate D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (Jul 2022) <[email protected]>):
1. Certificate 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 10 выполните:
rpm -Uvh https://repo.zabbix.com/zabbix/8.0/release/rhel/10/noarch/zabbix-release-latest.el10.noarch.rpm
Затем обновите информацию о репозиториях:
dnf update
Дополнительную информацию см. в ZBX-24761.
Timescale DB: высокое потребление памяти при большом количестве партиций
Версии PostgreSQL 9.6-12 используют слишком много памяти при обновлении таблиц с большим количеством партиций. Эта проблема проявляется, когда Zabbix обновляет тренды в системах с TimescaleDB, если тренды разделены на относительно небольшие чанки (например, по 1 дню). Это приводит к наличию сотен чанков в таблицах трендов при настройках housekeeper по умолчанию — в условиях, когда PostgreSQL с высокой вероятностью может исчерпать память.
Проблема была решена начиная с Zabbix 5.0.1 для новых установок с TimescaleDB, однако если TimescaleDB был настроен с Zabbix до этого, ознакомьтесь с примечаниями по миграции в ZBX-16347.
Timescale DB 2.5.0: политика сжатия может завершаться с ошибкой на таблицах, содержащих целые числа
Эта проблема проявляется при использовании TimescaleDB 2.5.0/2.5.1. Она была решена начиная с TimescaleDB 2.5.2.
Для получения дополнительной информации см. TimescaleDB Issue #3773.
TLS-подключение к базе данных с MariaDB
TLS-подключение к базе данных не поддерживается с опцией 'verify_ca' для параметра DBTLSConnect, если используется MariaDB.
Возможные взаимные блокировки с MySQL/MariaDB
При работе под высокой нагрузкой и использовании более одного процесса LLD worker возможно возникновение взаимных блокировок (deadlocks), вызванных ошибкой InnoDB, относящейся к стратегии блокировок строк (см. upstream bug [en]). Ошибка была исправлена в MySQL, начиная с версии 8.0.29, но не в MariaDB. Для более подробной информации, обратитесь к ZBX-21506 [en].
Глобальная корреляция событий
События могут не коррелироваться должным образом, если промежуток времени между первым и вторым событием очень мал, то есть полсекунды и менее.
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].
IPMI — недоверенные узлы сети могут вызвать сбой OpenIPMI
В библиотеке OpenIPMI, используемой Zabbix для опроса данных IPMI, обнаружена ошибка, которую можно вызвать специально сформированными ответами от недоверенного устройства.
Недоверенное устройство IPMI может отправить специально сформированные данные, из-за которых библиотека OpenIPMI завершится сбоем, что, в свою очередь, может привести к завершению процесса сервера Zabbix, выполняющего опрос IPMI.
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
-
Драйвер MySQL unixODBC не следует использовать с сервером Zabbix или прокси Zabbix, собранными с библиотекой MariaDB connector, и наоборот; если возможно, также лучше избегать использования того же connector, что и драйвер, из-за ошибки upstream. Рекомендуемая настройка:
PostgreSQL, SQLite или Oracle connector → драйвер MariaDB или MySQL unixODBC
MariaDB connector → драйвер MariaDB unixODBC
MySQL connector → драйвер MySQL unixODBCСм. ZBX-7665 для получения дополнительной информации и доступных обходных решений.
-
XML-данные, запрашиваемые из Microsoft SQL Server, могут обрезаться различными способами в системах Linux и UNIX.
-
Было замечено, что использование проверок ODBC для мониторинга баз данных Oracle с различными версиями Oracle Instant Client для Linux приводит к аварийному завершению работы сервера Zabbix.
См. также: ZBX-18402, ZBX-20803. -
При использовании драйвера FreeTDS UnixODBC необходимо добавить оператор 'SET NOCOUNT ON' в начало SQL-запроса (например,
SET NOCOUNT ON DECLARE @strsql NVARCHAR(max) SET @strsql = ....). В противном случае элемент данных мониторинга базы данных в Zabbix не сможет получить информацию и вернет ошибку "SQL query returned empty result".
См. ZBX-19917 для получения дополнительной информации.
Некорректный параметр метода запроса в элементах данных
Параметр метода запроса, используемый только в 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)
Графики
Проблемы с графиками (классическими)
Если у вас возникли проблемы с классическими графиками, рекомендуется обновить библиотеку GD (libgd) до версии 2.3.3-13 или выше, а PHP — до версии 8.0.19, 8.1.33, 8.2.29, 8.3.25, 8.4.12 или выше.
Летнее время
Переходы на летнее время (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. Обратите внимание, однако, что такой обходной путь может исправить не все проблемы, относящиеся к медленным запросам.
Постоянные настройки фильтра из ссылок
При открытии ссылки на страницу веб-интерфейса 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.
Перенаправление заголовка Authorization
В некоторых случаях Apache или NGINX могут препятствовать тому, чтобы заголовок Authorization в API-запросах доходил до Zabbix. Это может вызывать проблемы с аутентификацией при использовании Zabbix API или служб единого входа (SSO), таких как SAML с Okta.
Чтобы устранить это, обновите конфигурацию вашего веб-сервера.
Для Apache, если вы используете его как обратный прокси (не CGI-конфигурация), добавьте следующую директиву в /etc/httpd/conf/httpd.conf (в системах на базе RHEL) или /etc/apache2/apache2.conf (в Debian/Ubuntu):
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
Если Apache напрямую выполняет скрипты для обработки запросов (например, с помощью mod_cgi), вместо этого добавьте следующую директиву:
CGIPassAuth On
В отличие от этого, NGINX обрабатывает заголовок Authorization автоматически.
Однако, если NGINX работает как обратный прокси, вы можете явно перенаправить заголовок Authorization, добавив следующие директивы в /etc/nginx/nginx.conf (для расположения веб-интерфейса Zabbix):
...
location / {
...
proxy_set_header Authorization $http_authorization;
proxy_pass http://backend_server;
...
}
После обновления конфигурации перезапустите ваш веб-сервер.
Для получения дополнительных сведений см.:
- ZBX-22952
- Apache 2.4 + PHP-FPM and Authorization headers
- директивы SetEnvIfNoCase и CGIPassAuth
- NGINX Reverse Proxy
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 эти распознаваемые коды ошибок включают:
- CR_CONN_HOST_ERROR
- CR_SERVER_GONE_ERROR
- CR_CONNECTION_ERROR
- CR_SERVER_LOST
- CR_UNKNOWN_HOST
- ER_SERVER_SHUTDOWN
- ER_ACCESS_DENIED_ERROR
- ER_ILLEGAL_GRANT_FOR_TABLE
- ER_TABLEACCESS_DENIED_ERROR
- ER_UNKNOWN_ERROR
Кроме того, если 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 рассматривает знак минуса в качестве разделителя, создавая диапазон внутри класса символов.
Ошибка виджета Geomap
Карты в виджете Geomap могут загружаться некорректно, если вы обновились с более старой версии Zabbix с NGINX и не переключились на новый файл конфигурации NGINX во время обновления.
Чтобы исправить проблему, можно удалить старый файл конфигурации, использовать файл конфигурации из пакета текущей версии и перенастроить его, как описано в инструкции по загрузке в разделе 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;
}
Предобработка — глобальные переменные небезопасны
JavaScript в предобработке выполняется для каждого запроса, но присваивания не объявленным идентификаторам (например, secret = value) создают неявные глобальные переменные, которые могут сохраняться дольше текущего выполнения.
Хранение конфиденциальных данных (токенов, паролей и т. д.) в неявных глобальных переменных повышает риск случайного раскрытия или повторного использования при последующих запусках предобработки либо другими интеграциями, выполняющимися в той же среде.
Не полагайтесь на неявные глобальные переменные.
Всегда объявляйте переменные с помощью var или const и не привязывайте секреты к глобальным объектам (например, globalThis или window).
В рамках предобработки не предусмотрен поддерживаемый способ переопределить встроенные глобальные объекты.
Безопасный пример:
var apiToken = payload.token;
var count = 1;
return JSON.stringify({ token: apiToken, calls: count });
Группы процессоров в Windows
В документации Microsoft указано, что системы с менее чем 64 логическими процессорами всегда имеют одну группу процессоров, Group 0. Однако пользователи Zabbix сообщили о редкой ошибке ZBX-20260, когда на системах с 64 или менее логическими процессорами присутствуют две группы процессоров. В результате счетчики производительности "\Processor(n)" были доступны только для одной из двух групп процессоров. Фактическая первопричина этой ошибки неизвестна. Однако похожий случай был описан на stackoverflow.com, и там первопричина заключалась во взаимодействии между BIOS и Windows.
Ограничения фильтрации с utf8mb4-сопоставлениями
Фильтры (например, в Сбор данных > Обслуживание) могут работать некорректно при применении к сущностям, содержащим определенные символы Unicode (например, ȼ, ɇ). Эта проблема возникает из-за того, как сопоставление utf8mb4_bin по умолчанию для баз данных MySQL или MariaDB обрабатывает сортировку и сравнение символов Unicode.
Чтобы обойти это ограничение, пользователи могут изменить сопоставление столбцов базы данных на альтернативы, такие как utf8mb4_0900_bin, utf8mb4_0900_ai_ci или utf8mb4_unicode_520_ci. Однако следует учитывать, что изменение сопоставления может привести к неожиданному поведению при обработке пустых пробелов, а также при сортировке и фильтрации других символов.
Дополнительную информацию об изменении сопоставлений см. в документации MySQL или документации MariaDB. Подробности о различиях между сопоставлениями см. в разделе Unicode Character Sets в документации MySQL.
Доступ к элементам пользовательского интерфейса с MariaDB 10.5.1-10.5.9
При доступе к веб-интерфейсу Zabbix с ролью, отличной от Super Admin, может появиться сообщение: "Произошла системная ошибка. Пожалуйста, свяжитесь с администратором Zabbix.". Эта проблема затрагивает установки, использующие версии MariaDB с 10.5.1 по 10.5.9.
Чтобы избежать этой проблемы, обновите MariaDB до версии выше 10.5.9. Подробнее см. ZBX-25746.
Профилирование чрезмерного использования памяти с помощью tcmalloc
Если вы подозреваете, что ваша установка Zabbix использует слишком много памяти, вы можете воспользоваться функцией профилирования памяти tcmalloc, чтобы исследовать потребление памяти сервером/прокси Zabbix.
1. При установке Zabbix из исходного кода укажите дополнительные флаги:
export CFLAGS="-std=gnu99 -g -O0"
Флаг -std=gnu99 требуется для сборки сервера Zabbix, прокси Zabbix или агента Zabbix.
Флаг -g добавляет дополнительную отладочную информацию, а -O0 отключает оптимизации, которые могут мешать профилированию tcmalloc.
2. Перед запуском сервера Zabbix задайте следующие переменные окружения. Эти переменные указывают tcmalloc, как отслеживать использование памяти и формировать отчёты:
LD_PRELOAD="/usr/lib/aarch64-linux-gnu/libtcmalloc.so" \
HEAPPROFILE=./heap_profile \
HEAP_PROFILE_ALLOCATION_INTERVAL=0 \
HEAP_PROFILE_INUSE_INTERVAL=4294967296 \
HEAPPROFILESIGNAL=5 \
MALLOCSTATS=1 \
./sbin/zabbix_server -f -c /etc/zabbix/zabbix_server.conf
3. Вызовите дамп профиля, отправив сигнал 5 целевому процессу. Замените 1234 на фактический идентификатор процесса (PID):
kill -5 1234
4. Выведите созданный профиль:
pprof-symbolize -text ./sbin/zabbix_server ./heap_profile.0001.heap
Using local file ./sbin/zabbix_server.
Using local file ./heap_profile.0001.heap.
Total: 1078.1 MB
1076.8 99.9% 99.9% 1076.8 99.9% zbx_malloc2
1.0 0.1% 100.0% 1.0 0.1% __GI___strdup
0.2 0.0% 100.0% 0.2 0.0% CRYPTO_zalloc@@OPENSSL_3.0.0
0.1 0.0% 100.0% 0.1 0.0% OPENSSL_LH_insert@@OPENSSL_3.0.0
0.0 0.0% 100.0% 0.0 0.0% zbx_realloc2
0.0 0.0% 100.0% 0.1 0.0% PKCS7_decrypt@@OPENSSL_3.0.0
0.0 0.0% 100.0% 0.0 0.0% find_best_tree_node
0.0 0.0% 100.0% 0.0 0.0% CRYPTO_strndup@@OPENSSL_3.0.0
...
0.0 0.0% 100.0% 0.0 0.0% preprocessing_flush_value
0.0 0.0% 100.0% 1074.0 99.6% preprocessor_add_request
В этом примере zbx_malloc2 отвечает почти за все выделения памяти.
См. также:
- ZBX-25050 и ZBX-25584 для связанных отчётов о проблемах.
- GCC Option Summary о параметрах компиляции (
-std=gnu99,-g,-O0и т. д.). - Документацию Gperftools Heap Profiler о переменных окружения для профилирования tcmalloc.
MySQL 8.0 Group Replication в режиме multi-primary
При использовании MySQL 8.0 Group Replication в режиме multi-primary во время фиксации транзакций может возникать ошибка, похожая на следующую:
1531697:20250128:064734.697 query [txnlev:1] [update alerts set status=1,retries=0,error='' where alertid=154618;
1531697:20250128:064734.713 query [txnlev:1] [commit;]
1531697:20250128:064734.753 [Z3005] query failed: [3101] Plugin instructed the server to rollback the current transaction. [commit;]
Похоже, эта ошибка вызывается проблемами с операциями отката, связанными с ограничениями внешнего ключа.
См. также:
- ZBX-26060 — связанный отчет о проблеме.
- MySQL Bug #96758 "Rollbacks with Foreign Keys on single node" — соответствующая проблема в upstream.