- 8. Известные проблемы
- Известные проблемы в 7.4.4
- Обновление
- Шаблоны
- Случайная установка пакетов Zabbix из EPEL
- Пакеты Zabbix для RHEL в средах Red Hat UBI
- Истекший ключ подписи для пакетов RHEL
- Timescale DB: высокое потребление памяти при большом количестве разделов
- Timescale DB 2.5.0: политика сжатия может завершаться сбоем для таблиц, содержащих целые числа
- TLS-подключение к базе данных с MariaDB
- Возможные взаимные блокировки с MySQL/MariaDB
- Глобальная корреляция событий
- Диапазон типа данных числовой (с плавающей точкой) в PostgreSQL 11 и более старых версиях
- 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
8. Известные проблемы
Смотрите также: Проблемы при компиляции.
Известные проблемы в 7.4.4
Не рекомендуется обновляться до этой версии из-за:
- внезапного скачка загрузки CPU, если вы используете плагин MySQL для Zabbix agent 2 (см. ZBX-27156)
- графика для элементов данных активного агента Zabbix, на котором отображается предупреждение "Undefined array key" из-за ошибки неопределенного индекса (см. ZBX-27153)
Обновление
Настройки режима 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-адреса.
Из-за того, что многие операционные системы и DNS-резолверы по умолчанию отдают приоритет IPv6 перед IPv4, шаблоны 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 9 выполните:
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
Затем обновите сведения о репозитории:
dnf update
Дополнительную информацию см. в ZBX-24761.
Timescale DB: высокое потребление памяти при большом количестве разделов
Версии PostgreSQL 9.6-12 используют слишком много памяти при обновлении таблиц с большим количеством разделов. Эта проблема проявляется, когда Zabbix обновляет тренды в системах с TimescaleDB, если тренды разбиты на относительно небольшие фрагменты (например, по 1 дню). Это приводит к тому, что в таблицах трендов при настройках обслуживания по умолчанию присутствуют сотни фрагментов — в такой ситуации 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].
Глобальная корреляция событий
События могут не коррелироваться корректно, если временной интервал между первым и вторым событием очень мал, то есть составляет полсекунды и меньше.
Диапазон типа данных числовой (с плавающей точкой) в 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].
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 = ....). В противном случае элемент данных типа database monitor в 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.
Сбой в процессе 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, может появиться сообщение: "System error occurred. Please contact Zabbix administrator.". Эта проблема затрагивает установки, использующие версии 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.