Solución de problemas#
Si encuentra un problema técnico y no puede encontrar una solución en otras secciones, haga una pregunta en el foro de la comunidad o en el canal de Telegram.
Soporte técnico para clientes:
Registro de depuración#
El registro de depuración debe estar habilitado antes de realizar autodiagnósticos o según lo recomendado por el soporte técnico.
Para hacer esto, ejecute Angie utilizando el ejecutable con soporte de depuración:
En los paquetes precompilados para Linux,
el archivo angie-debug
está compilado con el registro de depuración habilitado:
$ ls -l /usr/sbin/ | grep angie
lrwxrwxrwx 1 root root 13 Sep 21 18:58 angie -> angie-nodebug
-rwxr-xr-x 1 root root 1561224 Sep 21 18:58 angie-debug
-rwxr-xr-x 1 root root 1426056 Sep 21 18:58 angie-nodebug
Configure la ejecución de angie-debug
:
$ sudo ln -fs angie-debug /usr/sbin/angie
$ sudo angie -t && sudo service angie upgrade
Esto iniciará una actualización del ejecutable en vivo.
Para volver al ejecutable normal después de la depuración:
$ sudo ln -fs angie-nodebug /usr/sbin/angie
$ sudo angie -t && sudo service angie upgrade
En los paquetes precompilados para FreeBSD,
el archivo angie-debug
está compilado con el registro de depuración habilitado:
$ ls -l /usr/local/sbin/ | grep angie
lrwxrwxrwx 1 root root 13 Sep 21 18:58 angie -> angie-nodebug
-rwxr-xr-x 1 root root 1561224 Sep 21 18:58 angie-debug
-rwxr-xr-x 1 root root 1426056 Sep 21 18:58 angie-nodebug
Configure la ejecución de angie-debug
:
$ sudo ln -fs angie-debug /usr/local/sbin/angie
$ sudo angie -t && sudo service angie upgrade
Esto iniciará una actualización del ejecutable en vivo.
Para volver al ejecutable normal después de la depuración:
$ sudo ln -fs angie-nodebug /usr/local/sbin/angie
$ sudo angie -t && sudo service angie upgrade
En las imágenes Docker con plantillas,
puede cambiar a la versión de depuración
anulando la variable de entorno ANGIE_BINARY
:
$ docker run -it --rm -e ANGIE_BINARY="angie-debug" \
docker.angie.software/angie:templated
Al compilar Angie desde el código fuente, habilite la depuración antes de la compilación:
$ ./configure --with-debug ...
Después de la instalación, angie -V permite verificar que el registro de depuración está habilitado:
$ angie -V
...
configure arguments: --with-debug ...
Nota
El uso del ejecutable con soporte de depuración puede reducir ligeramente el rendimiento; habilitar el registro de depuración puede reducirlo significativamente y aumentar el uso de espacio en disco.
Para habilitar el registro de depuración,
establezca el nivel debug
en la configuración
utilizando la directiva error_log:
error_log /path/to/log debug;
Y recargue la configuración:
$ sudo angie -t && sudo service angie reload
En las imágenes Docker con plantillas
con el registro de depuración habilitado,
también puede usar la variable de entorno ANGIE_ERROR_LOG_SEVERITY
:
$ docker run -it --rm -e ANGIE_BINARY="angie-debug" \
-e ANGIE_ERROR_LOG_SEVERITY="debug" \
docker.angie.software/angie:templated
Si cambia al ejecutable sin soporte de depuración
pero deja el nivel debug
en la directiva error_log,
Angie registrará entradas en el nivel info
.
Anular error_log en la configuración
sin especificar el nivel debug
deshabilita el registro de depuración.
Aquí, anular el registro en el nivel server
deshabilita el registro de depuración para un servidor individual:
error_log /path/to/log debug;
http {
server {
error_log /path/to/log;
# ...
Para evitar esto, elimine la línea que anula error_log,
o establezca el nivel debug
en ella:
error_log /path/to/log debug;
http {
server {
error_log /path/to/log debug;
# ...
Ubicación de la directiva#
La ubicación de la directiva error_log afecta a la integridad de la información de depuración recopilada.
Una directiva especificada en un nivel de configuración inferior
(por ejemplo, dentro de un bloque server
o location
)
anula la configuración de registro especificada en un nivel superior
(por ejemplo, en el nivel de configuración principal o dentro de un bloque http
).
Registro de depuración deshabilitado para un servidor específico
Si el registro de depuración está habilitado globalmente
pero error_log se especifica para un servidor individual sin el nivel debug
,
no se recopilará información de depuración para ese servidor.
error_log /var/log/angie/error.log debug; # Registro de depuración global
http {
server {
listen 80;
server_name example.com;
error_log /var/log/angie/example.com.error.log;
# El registro de depuración para example.com está deshabilitado, el archivo contiene nivel info
# ...
}
server {
listen 80;
server_name another.com;
# Este servidor utilizará el registro de depuración global
# ...
}
}
Preservando el registro de depuración a nivel de servidor
Para preservar la recopilación de información de depuración para un servidor específico
pero dirigirla a un archivo diferente,
también debe especificar el nivel debug
:
error_log /path/to/log debug;
http {
server {
listen 80;
server_name example.com;
error_log /path/to/example.com.error.log debug;
# Depuración para example.com se registra en un archivo separado
}
server {
listen 80;
server_name another.com;
# Este servidor seguirá utilizando el registro de depuración global
}
}
Preservación del registro de depuración a nivel de servidor
Para preservar la recopilación de información de depuración para un servidor específico
pero dirigirla a un archivo diferente,
también debe especificar el nivel debug
:
error_log /var/log/angie/error.log debug; # Global debug log
http {
server {
listen 80;
server_name example.com;
error_log /var/log/angie/example.com.error.log debug;
# Debug log for example.com is enabled but written to a separate file
# ...
}
}
Por lo tanto, para habilitar el registro de depuración a nivel global
pero anular el archivo de registro para bloques individuales,
también especifique el nivel debug
en esas anulaciones.
De lo contrario, si no se especifica ningún nivel de registro en la directiva error_log,
se utilizará el nivel error
por defecto
y se perderá la información de depuración para esos bloques.
Registro de direcciones específicas#
Puede habilitar el registro de depuración solo para direcciones de cliente especificadas:
error_log /path/to/log;
events {
debug_connection 192.168.1.1;
debug_connection 192.168.10.0/24;
}
Búfer de Memoria Cíclico#
El registro de depuración puede escribirse en un búfer de memoria cíclico:
error_log memory:32m debug;
Escribir en el búfer de memoria en el nivel debug
no afectará significativamente al rendimiento incluso bajo carga alta.
En este caso, el registro puede extraerse utilizando un script de GDB, por ejemplo:
set $log = ngx_cycle->log
while $log->writer != ngx_log_memory_writer
set $log = $log->next
end
set $buf = (ngx_log_memory_buf_t *) $log->wdata
dump binary memory debug_log.txt $buf->start $buf->end
Volcados de Memoria (Core Dumps)#
Los volcados de memoria ayudan a investigar fallos.
Inclúyalos al contactar con soporte.
Para compilaciones de nuestros repositorios,
proporcionamos símbolos de depuración en paquetes especiales.
Tienen los mismos nombres que los paquetes originales
con el sufijo -dbg
añadido, por ejemplo angie-dbg
.
Nota
Esta sección asume
que está ejecutando Angie como el usuario root
(recomendado).
Linux: systemd#
Para habilitar el guardado de volcados de memoria cuando Angie se ejecuta como servicio systemd
(por ejemplo, cuando se instala desde paquetes),
modifique la configuración del servicio
en el archivo /lib/systemd/system/angie.service
:
[Service]
...
LimitCORE=infinity
LimitNOFILE=65535
O actualice la configuración global
en el archivo /etc/systemd/system.conf
:
[Manager]
...
DefaultLimitCORE=infinity
DefaultLimitNOFILE=65535
Luego recargue la configuración del servicio y reinicie Angie para reproducir las condiciones del fallo:
$ sudo systemctl daemon-reload
$ sudo systemctl restart angie.service
Después del fallo, encuentre el archivo de volcado de memoria:
$ sudo coredumpctl -1 # opcional
TIME PID UID GID SIG COREFILE EXE
--- 2025-08-21 11:05:40 GMT 1157 0 0 11 present /usr/sbin/angie
$ sudo ls -al /var/lib/systemd/coredump/ # por defecto, ver también /etc/systemd/coredump.conf y /etc/systemd/coredump.conf.d/*.conf
...
-rw-r----- 1 root root 177662 Jul 27 11:05 core.angie.0.6135489c850b4fb4a74795ebbc1e382a.1157.1590577472000000.lz4
Linux: Configuración Manual#
Compruebe la configuración de volcados de memoria
en el archivo /etc/security/limits.conf
, modifíquelas si es necesario:
root soft core 0 # por defecto desactiva los volcados de memoria
root hard core unlimited # permite aumentar el límite de tamaño
Luego aumente el límite de tamaño de volcado de memoria usando ulimit, después reinicie Angie para reproducir las condiciones del fallo:
$ sudo ulimit -c unlimited
$ sudo cd <ruta al directorio de instalación de Angie>
$ sudo sbin/angie # o sbin/angie-debug
Después del fallo, encuentre el archivo de volcado de memoria:
$ sudo ls -al <ruta al directorio de trabajo de Angie> # por defecto, ver /proc/sys/kernel/core_pattern
...
-rw-r----- 1 root root 177662 Jul 27 11:05 core.1157
FreeBSD#
Compruebe la configuración de volcados de memoria en el archivo /etc/sysctl.conf
y modifíquela si es necesario:
kern.coredump=1 # debe ser 1
kern.corefile=/ruta/a/core/files/%N.core # necesita ruta correcta
O actualice la configuración en tiempo de ejecución:
$ sudo sysctl kern.coredump=1
$ sudo sysctl kern.corefile=/ruta/a/core/files/%N.core
Luego reinicie Angie para reproducir las condiciones del fallo. Si Angie está instalado como servicio:
$ sudo service angie restart
Si Angie está instalado manualmente:
$ sudo cd <ruta al directorio de instalación de Angie>
$ sudo sbin/angie
Después del fallo, encuentre el archivo de volcado de memoria:
$ sudo ls -al <ruta a los archivos de volcado de memoria>
...
-rw------- 1 root root 9912320 Jul 27 11:05 angie.core
Contenido del segundo archivo: .. code-block:: console
$ sudo ulimit -c unlimited $ sudo cd <ruta al directorio de instalación de Angie> $ sudo sbin/angie # o sbin/angie-debug
Después del fallo, encuentre el archivo de volcado de memoria:
$ sudo ls -al <ruta al directorio de trabajo de Angie> # por defecto, ver /proc/sys/kernel/core_pattern
...
-rw-r----- 1 root root 177662 Jul 27 11:05 core.1157
FreeBSD#
Compruebe la configuración de volcados de memoria
en el archivo /etc/sysctl.conf
, modifíquelas si es necesario:
kern.coredump=1 # debe ser 1
kern.corefile=/ruta/a/archivos/core/%N.core # necesita ruta correcta
O actualice la configuración en tiempo de ejecución:
$ sudo sysctl kern.coredump=1
$ sudo sysctl kern.corefile=/ruta/a/archivos/core/%N.core
Luego reinicie Angie para reproducir las condiciones del fallo. Si Angie está instalado como servicio:
$ sudo service angie restart
Si Angie está instalado manualmente:
$ sudo cd <ruta al directorio de instalación de Angie>
$ sudo sbin/angie
Después del fallo, encuentre el archivo de volcado de memoria:
$ sudo ls -al <ruta a los archivos de volcado de memoria>
...
-rw------- 1 root root 9912320 Jul 27 11:05 angie.core