Consulte también: Problemas de compilación.
zabbix_proxy en las versiones 8.0.0-8.0.17 de MySQL falla con el siguiente error "acceso denegado":
[Z3001] Falló la conexión a la base de datos 'zabbix': [1227] Acceso denegado; necesita (al menos uno de) los privilegios SUPER, SYSTEM_VARIABLES_ADMIN o SESSION_VARIABLES_ADMIN para esta operación
Eso se debe a que MySQL 8.0.0 comenzó a aplicar permisos especiales para establecer variables de sesión. Sin embargo, en 8.0.18 se eliminó este comportamiento: A partir de MySQL 8.0.18, establecer el valor de sesión de esta variable del sistema ya no es una operación restringida.
La solución temporal se basa en otorgar privilegios adicionales al usuario zabbix
:
Para las versiones de MySQL 8.0.14 - 8.0.17:
Para las versiones de MySQL 8.0.0 - 8.0.13:
La configuración sql_mode
en MySQL/MariaDB debe tener configurado el modo "STRICT_TRANS_TABLES". Si está ausente, la actualización de la base de datos Zabbix fallará (ver también ZBX-19435).
La actualización de Zabbix puede fallar si las tablas de la base de datos se crearon con MariaDB 10.2.1 y anteriores, porque en esas versiones el formato de fila predeterminado es compacto. Esto se puede arreglar cambiando el formato de fila a dinámico (ver también ZBX-17690).
En entornos de doble pila (sistemas configurados para admitir IPv4 e IPv6), el nombre de host "localhost" generalmente se resuelve en direcciones IPv4 e IPv6. Debido a la priorización común de IPv6 sobre IPv4 por parte de muchos sistemas operativos y solucionadores de DNS, es posible que las plantillas de Zabbix no funcionen correctamente si el servicio que se está monitoreando está configurado para escuchar solo en IPv4.
Los servicios que no están configurados para escuchar en direcciones IPv6 pueden volverse inaccesibles, lo que provoca fallas de monitoreo. Los usuarios pueden configurar el acceso correctamente para IPv4 pero aún enfrentan problemas de conectividad debido al comportamiento predeterminado de priorizar IPv6.
Una solución alternativa para esto es garantizar que los servicios (Nginx, Apache, PostgreSQL, etc.) estén configurados para escuchar en direcciones IPv4 e IPv6, y que el servidor/agente Zabbix tenga acceso a través de IPv6. Además, en las plantillas y configuraciones de Zabbix, use localhost
explícitamente en lugar de 127.0.0.1
para garantizar la compatibilidad tanto con IPv4 como con IPv6.
Por ejemplo, al monitorear PostgreSQL con PostgreSQL by Zabbix Agent 2, es posible que necesite editar el archivo pg_hba.conf
para permitir conexiones para el usuario zbx_monitor
. Si el entorno de doble pila prioriza IPv6 (el sistema resuelve localhost en ::1
) y usted configura localhost
pero solo agrega una entrada IPv4 (127.0.0.1/32
), la conexión fallará porque no hay coincidencias Entrada IPv6.
El siguiente ejemplo de archivo pg_hba.conf
garantiza que el usuario zbx_monitor
pueda conectarse a cualquier base de datos desde la máquina local utilizando direcciones IPv4 e IPv6 con diferentes métodos de autenticación:
# 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
Si es necesario, también puede utilizar la dirección IPv4 (127.0.0.1
) directamente al configurar PostgreSQL by Zabbix agent 2 macro de plantilla para la cadena de conexión.
Con el repositorio EPEL instalado y habilitado, la instalación de Zabbix desde paquetes hará que se instalen paquetes EPEL Zabbix en lugar de paquetes oficiales de Zabbix.
En este caso, desinstale los paquetes de Zabbix de EPEL, es decir:
Bloquee paquetes Zabbix de EPEL. Agregue la siguiente línea en el archivo /etc/yum.conf
:
Instale el servidor Zabbix nuevamente:
Observe que los paquetes oficiales de Zabbix tienen la palabra "release" en su cadena de versión:
Al instalar Zabbix desde paquetes de Red Hat Enterprise Linux en entornos Red Hat Universal Base Image, asegúrese de tener acceso a los repositorios y dependencias necesarios. Los paquetes de Zabbix dependen de las bibliotecas libOpenIPMI.so
y libOpenIPMIposix.so
, que no son proporcionadas por ningún paquete en los repositorios predeterminados del administrador de paquetes habilitados en los sistemas UBI y provocarán fallas en la instalación.
Las bibliotecas libOpenIPMI.so
y libOpenIPMIposix.so
están disponibles en el paquete OpenIPMI-libs
, que es proporcionado por el repositorio redhat-#-for-<arch>-appstream-rpms
. El acceso a este repositorio se gestiona mediante suscripciones que, en el caso de entornos UBI, se propagan montando la configuración del repositorio y los directorios secretos del host RHEL en el espacio de nombres del sistema de archivos del contenedor.
Para obtener más información, consulte ZBX-24291.
Al actualizar Zabbix en Red Hat Enterprise Linux o sus derivados, es posible que encuentre un problema con la clave de firma caducada para los paquetes en el repositorio de Zabbix. Cuando una clave de firma caduca, los intentos de verificar las firmas del paquete generarán un error que indica que el certificado o la clave ya no son válidos. Por ejemplo:
error: Verificación de una firma mediante el certificado D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (julio de 2022) <[email protected]>):
1. Certificado 19F2475308EFA7DD no válido: el certificado no está activo
porque: La clave principal no está activa
porque: Caducó el 2024-07-04T11:41:23Z
2. La clave 19F2475308EFA7DD no es válida: la clave no está activa
porque: La clave principal no está activa
porque: Caducó el 2024-07-04T11:41:23Z
Para resolver estos problemas, reinstale manualmente el último paquete zabbix-release
para su variante específica de RHEL. (reemplace el enlace a continuación por el correcto del repositorio de Zabbix).
Por ejemplo, en RHEL 9, ejecute:
Luego, actualice la información del repositorio:
Para obtener más información, consulte ZBX-24761.
La conexión TLS de la base de datos no es compatible con la opción 'verify_ca' para DBTLSConnect parámetro si se utiliza MariaDB.
When running under high load, and with more than one LLD worker involved, it is possible to run into a deadlock caused by an InnoDB error related to the row-locking strategy (see upstream bug). The error has been fixed in MySQL since 8.0.29, but not in MariaDB. For more details, see ZBX-21506.
Es posible que los eventos no se correlacionen correctamente si el intervalo de tiempo entre el primer y segundo evento es muy pequeño, es decir, medio segundo y menos.
PostgreSQL 11 y versiones anteriores solo admiten valores de punto flotante rango de aproximadamente -1.34E-154 a 1.34E+154.
Varios procesos de Zabbix pueden bloquearse aleatoriamente al iniciarse en NetBSD versiones 8.X y 9.X. Eso se debe al tamaño de pila predeterminado demasiado pequeño. (4 MB), que debe aumentarse ejecutando:
Para obtener más información, consulte el informe de problemas relacionado: ZBX-18275.
Zabbix Agent 2 no admite búsquedas hacia adelante y hacia atrás en expresiones regulares debido a las limitaciones de la biblioteca estándar de expresiones regulares de Go.
Las comprobaciones de IPMI no funcionarán con el paquete de biblioteca OpenIPMI estándar en Debian anterior a 9 (stretch) y Ubuntu anterior a 16.04 (xenial). Para arreglar eso, vuelva a compilar la biblioteca OpenIPMI con OpenSSL habilitado como se explica en ZBX-6139.
Algunas distribuciones de Linux como Debian y Ubuntu no admiten cifrado de claves privadas (con frase de contraseña) si la biblioteca libssh2 está instalada desde los paquetes. Consulte ZBX-4850 para obtener más detalles.
Cuando se utiliza libssh 0.9.x en algunas distribuciones de Linux con OpenSSH 8, las comprobaciones de SSH pueden ocasionalmente informar "No se pueden leer datos del servidor SSH". esto está causado por un [problema] (https://gitlab.com/libssh/libssh-mirror/-/merge_requests/101) en libssh (informe más detallado). Se espera el error haber sido solucionado por una versión estable de libssh 0.9.5. Ver también ZBX-17756 para obtener más detalles.
Usando la tubería "|" en el script SSH puede provocar un error "No se pueden leer datos del servidor SSH". En este caso se recomienda actualizar la versión de la biblioteca libssh. Véase también ZBX-21337 para más detalles.
Conector PostgreSQL, SQLite u Oracle → Controlador MariaDB o MySQL unixODBC
Conector MariaDB → Controlador MariaDB unixODBC
Conector MySQL → controlador MySQL unixODBC
Consulte ZBX-7665 para más información y soluciones disponibles.
El parámetro del método de solicitud, utilizado solo en comprobaciones HTTP, puede ser configurado incorrectamente en '1', un valor no predeterminado para todos los elementos como resultado de actualizar desde una versión Zabbix anterior a 4.0. Para obtener detalles sobre cómo solucionar este problema , consulte ZBX-19308.
El servidor Zabbix pierde memoria en algunas distribuciones Linux debido a un error upstream cuando "SSL¶ verify peer" está habilitado en escenarios web o agente HTTP. Consulte ZBX-10486 para más información y soluciones disponibles.
Hay un error en las versiones de fping anteriores a v3.10 que maneja mal los paquetes de repetición de eco duplicados. Esto puede causar resultados inesperados para Elementos icmpping
, icmppingloss
, icmppingsec
. Se recomienda usar la última versión de fping. Por favor mira ZBX-11726 para más detalles.
Cuando los contenedores se ejecutan en modo sin root o en un entorno con restricciones específicas, es posible que se produzcan errores relacionados con la ejecución de fping al realizar comprobaciones ICMP, como "fping: Operación no permitida" o que se pierdan todos los paquetes de todos los recursos.
Para solucionar este problema, agregue --cap-add=net_raw
a los comandos "docker run" o "podman run".
Además, la ejecución de fping en entornos no root puede requerir una modificación de sysctl, es decir:
donde "1995" es el GID de zabbix. Para obtener más detalles, consulte ZBX-22833.
Si se utiliza el sistema operativo OpenBSD, un error use-after-free en la biblioteca Net-SNMP hasta la versión 5.7.3 puede causar un bloqueo del servidor Zabbix si el parámetro SourceIP está configurado en el archivo de configuración del servidor Zabbix. Como solución alternativa, no configure el parámetro SourceIP. El mismo problema se aplica también a Linux, pero no hace que el servidor Zabbix deje de funcionar. Un parche local para net-snmp Se aplicó el paquete en OpenBSD y se lanzará con OpenBSD 6.3.
Se han observado picos en los datos de SNMP que pueden estar relacionados con ciertos factores físicos como picos de tensión en la red eléctrica. Ver ZBX-14318 más detalles.
El paquete "net-snmp-perl", necesario para los capturadores SNMP, se eliminó en RHEL 8.0-8.2; agregado nuevamente en RHEL 8.3.
Entonces, si está utilizando RHEL 8.0-8.2, la mejor solución es actualizar a RHEL 8.3.
Consulte también ZBX-17192 para más información.
Se han encontrado casos de fallas en el proceso de alerta del servidor Zabbix en RHEL 7. Consulte ZBX-10461 para obtener más detalles.
Al actualizar Zabbix Agent 2 (versión 6.0.5 o anterior) desde paquetes, puede ocurrir un error de conflicto de archivos relacionado con el complemento. Para corregir el error, haga una copia de seguridad de la configuración del agente 2 (si es necesario), desinstale el agente 2 e instálelo nuevamente.
En sistemas basados en RHEL, ejecute:
En sistemas basados en Debian, ejecute:
Para obtener más información, consulte ZBX-23250.
Se ha observado que las configuraciones regionales del frontend pueden cambiar sin lógica aparente, p.e. algunas páginas (o partes de páginas) se muestran en un idioma mientras que otras páginas (o partes de páginas) están en un idioma diferente. Normalmente el problema puede aparecer cuando hay varios usuarios, algunos de ellos quienes usan una configuración regional, mientras que otros usan otra.
Una solución conocida para esto es deshabilitar el subproceso múltiple en PHP y Apache.
El problema está relacionado con cómo funciona la configuración regional en PHP: configuración regional La información se mantiene por proceso, no por hilo. Entonces en un entorno multiproceso, cuando hay varios proyectos ejecutados por el mismo proceso Apache, es posible que la configuración regional se cambie en otro hilo y eso cambia la forma en que se pueden procesar los datos en el hilo Zabbix.
Para obtener más información, consulte los informes de problemas relacionados:
bcdiv
de BC funciones matemáticas)Los cambios al horario de verano (DST) provocan irregularidades cuando se muestran etiquetas del eje X (duplicación de fecha, fecha faltante, etc.).
Cuando se utiliza la agregación de suma en un gráfico para un período inferior a una hora, los gráficos muestran valores incorrectos (multiplicados) cuando los datos provienen de tendencias.
Para algunos idiomas de interfaz (por ejemplo, japonés), las fuentes locales pueden provocar que el texto se superponga en la leyenda del gráfico. Para evitar esto, utilice la versión 2.3.0 (o posterior) de la extensión PHP GD.
Los elementos log[]
y logrt[]
vuelven a leer repetidamente el archivo de registro del comenzo si el sistema de archivos está 100% lleno y el archivo de registro se está agregando (ver ZBX-10884 para más información).
El servidor Zabbix genera consultas SELECT
lentas en caso de que los valores de las métricas no existan. Se sabe que este problema ocurre en las versiones MySQL 5.6/5.7 (para una discusión más amplia, consulte ZBX-10652), y, en casos específicos, también puede ocurrir en versiones posteriores de MySQL. Una solución alternativa a esto es deshabilitar index_condition_pushdown
u optimizar prefer_ordering_index
en MySQL. Sin embargo, tenga en cuenta que es posible que esta solución no resuelva todos los problemas relacionados con consultas lentas.
La sincronización de la configuración puede ser lenta en instalaciones de Zabbix con Oracle DB que tienen una gran cantidad de métricas y pasos de preprocesamiento de métricas. Esto se debe a la velocidad del motor de la base de datos Oracle que procesa campos de tipo nclob.
Para mejorar el rendimiento, puede convertir los tipos de campo de nclob a nvarchar2 aplicando manualmente el parche de la base de datos items_nvarchar_prepare.sql. Tenga en cuenta que esta conversión reducirá el límite máximo de tamaño de campo de 65535 bytes a 4000 bytes para los parámetros de preprocesamiento de métricas y los parámetros de métricas como Descripción, campo de script de la métrica Script, campos de lamétrica del agente HTTP Cuerpo de la solicitud y Encabezados, campo de la métrica del monitor de base de datos Consulta SQL. Las consultas para determinar los nombres de las plantillas que deben eliminarse antes de aplicar el parche se proporcionan en el parche como comentario. Alternativamente, si se establece MAX_STRING_SIZE, puede cambiar nvarchar2(4000) a nvarchar2(32767) en las consultas de parche para establecer el límite de tamaño de campo de 32767 bytes.
Para obtener una discusión ampliada, consulte ZBX-22363.
Se puede crear una gran cantidad de sesiones de usuario abiertas cuando se usa scripts con user.login
método sin su correspondiente user.logout
.
Debido a un error net-snmp, es posible que la dirección IPv6 no se muestre correctamente cuando utilizando SNMPv3 en trampas SNMP. Para obtener más detalles y una posible solución, consulte ZBX-14541.
Un mensaje de intento de inicio de sesión fallido mostrará solo los primeros 39 caracteres de una dirección IP almacenada ya que ese es el límite de caracteres en el campo de la base de datos. Eso significa que las direcciones IP IPv6 de más de 39 caracteres se mostraran de forma incompleta.
Entradas DNS no existentes en un parámetro Servidor
del agente Zabbix archivo de configuración (zabbix_agentd.conf) puede aumentar el agente Zabbix tiempo de respuesta en Windows. Esto sucede porque el almacenamiento en caché de DNS en Windows no almacena en caché las respuestas negativas para las direcciones IPv4. Sin embargo, las respuestas negativas de direcciones IPv6 se almacenan en caché, por lo que una posible solución esto es deshabilitar IPv4 en el host.
Hay algunos problemas conocidos con YAML exportar/importar:
El asistente de configuración de frontend no puede guardar el archivo de configuración en SUSE con NGINX + php-fpm. Esto es causado por un ajuste en /usr/lib/systemd/system/php-fpm.service unit, que evita que Zabbix escribir en /etc. (introducido en PHP 7.4).
Hay dos opciones de solución disponibles:
Aunque en la mayoría de los casos, el Zabbix web service puede ejecutarse con Chromium, en Ubuntu 20.04 usando Chromium provoca el siguiente error:
No se pueden obtener datos: Chrome no pudo iniciarse: cmd_run.go:994:
ADVERTENCIA: no se puede crear el directorio de datos de usuario: no se puede crear
"/var/lib/zabbix/snap/chromium/1564": mkdir /var/lib/zabbix: permiso denegado
Lo sentimos, actualmente no se admiten los directorios de inicio fuera de /home. Consulte https://forum.snapcraft.io/t/11209 para obtener más detalles.
Este error ocurre porque /var/lib/zabbix
se usa como directorio de inicio del usuario 'zabbix'.
Si Zabbix se usa con la instalación de MySQL en Azure, un error poco claro El mensaje [9002] Ocurrieron algunos errores puede aparecer en los registros de Zabbix. Este texto de error genérico es enviado al servidor Zabbix o al proxy por la base de datos. Para obtener más información sobre la causa del error, consulte los registros de Azure.
En Zabbix 6.0 se ha agregado soporte para PCRE2. Aunque PCRE todavía es compatible, los paquetes de instalación de Zabbix para RHEL 7 y posteriores, SLES (todas las versiones), Debian 9 y posteriores, Ubuntu 16.04 y posteriores se han actualizado para usar PCRE2. Si bien proporciona muchos beneficios, cambiar a PCRE2 puede hacer que ciertos patrones de expresiones regulares de PCRE existentes dejen de ser válidos o se comporten de manera diferente. En particular, esto afecta al patrón ^[\w-\.]. Para que esta expresión regular vuelva a ser válida sin afectar la semántica, cambie la expresión a ^[-\w\.] . Esto sucede debido al hecho de que PCRE2 trata el signo del guión como un delimitador, creando un rango dentro de una clase de carácter.
Es posible que los mapas en el widget Geomap no se carguen correctamente si actualizó desde una versión anterior de Zabbix con NGINX y no cambió al nuevo archivo de configuración de NGINX durante la actualización.
Para solucionar el problema, puede descartar el archivo de configuración anterior, utilizar el archivo de configuración del paquete de la versión actual y reconfigurarlo como se describe en las instrucciones de descarga en la sección e. Configure PHP para la interfaz de Zabbix.
Alternativamente, puede editar manualmente un archivo de configuración NGINX existente (normalmente, /etc/zabbix/nginx.conf). Para hacerlo, abra el archivo y localice el siguiente bloque:
Luego, reemplace este bloque con:
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
A medida que las variables globales se comparten entre diferentes llamadas de webhook, el siguiente código hará que el contador del valor de la etiqueta aumente gradualmente:
try
{
aa = aa + 1;
}
catch (e)
{
aa = 0;
}
result = {
'tags': {
'endpoint': aa
}
};
return JSON.stringify(result);
Se recomienda utilizar variables locales en lugar de globales para asegurarse de que cada script opere con sus propios datos y que no haya colisiones entre llamadas simultáneas.
La actualización a Zabbix 7.0.1 (o posterior) desde Zabbix 7.0.0 con PostgreSQL/TimescaleDB da como resultado un fallo del servidor. Este problema se debe a una solución alternativa a un problema de trabajo de compresión en la tabla de registro de auditoría en Zabbix 7.0 que cambió irreversiblemente la política de compresión de la tabla de registro de auditoría.
Para solucionar el problema, realice una reconstrucción manual de la tabla de registro de auditoría. La tabla de registro de auditoría con errores se puede detectar mediante esta consulta:
SELECT config FROM timescaledb_information.jobs WHERE application_name LIKE 'Compression%' AND hypertable_schema='public' AND hypertable_name='auditlog';
Si devuelve un objeto JSON que contiene la propiedad compress_after
(como {"hypertable_id": 14, "compress_after": 612000}), entonces debe reconstruir la tabla.
Asegúrese de que el servidor Zabbix tenga al menos la versión 7.0.1rc2 (o posterior); de lo contrario, volverá a configurar la política de compresión incorrecta. Además, detenga el servidor Zabbix antes de ejecutar el script y confirme que auditlog
sea propiedad del usuario zabbix.
La forma más sencilla de reconstruir la tabla auditlog es:
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;
Consulte también la documentación de TimescaleDB para conocer formas más optimizadas de migrar datos.
Dado que la marca de tiempo necesaria para la partición se extrae del campo auditid
con una función personalizada, los procedimientos auxiliares utilizados para la migración de datos desde timescaledb-extras no funcionarán.
El uso de pg_restore
para restaurar una copia de seguridad de PostgreSQL/TimescaleDB creada en Zabbix 7.0.0-7.0.4 dará como resultado un error de función base36_decode
faltante, lo que hará que la restauración falle:
ERROR: la función base36_decode(text) no existe
LÍNEA 1: CAST(base36_decode(substring(cuid FROM 2 FOR 8))/1000 AS int...
^
SUGERENCIA: Ninguna función coincide con el nombre y los tipos de argumentos indicados. Es posible que deba agregar conversiones de tipo explícitas.
Este error se produce al restaurar una copia de seguridad creada con pg_dump
.
Para solucionar este problema, reemplace la función cuid_timestamp
en su base de datos Zabbix antes de crear la copia de seguridad (se recomienda detener PostgreSQL/TimescaleDB antes de ejecutar el script):
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);
Consulte también ZBX-24955 (para obtener más detalles sobre el error) y la documentación de TimescaleDB (para obtener opciones adicionales de copia de seguridad y restauración).