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:

  • https://support.angie.software

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

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