Режим отладки#

Режим отладки следует включать перед самостоятельной диагностикой или по рекомендации технической поддержки. Чтобы включить режим отладки, выполните команду angie debug в CLI. Для отключения режима отладки выполните команду no angie debug.

Примечание

Использование режима отладки может снизить производительность, а также увеличить расход места на диске.

Отладочный лог#

Чтобы включить отладочный лог, задайте в конфигурации уровень debug с помощью директивы error_log:

error_log /path/to/log debug;

Если выключить режим отладки, но оставить уровень debug в директиве error_log, Angie ADC будет добавлять записи в лог на уровне info.

Если переопределить error_log в конфигурации, но не указать в ней уровень debug, отладочный лог будет отключен. Здесь переопределение лога на уровне server отключает отладочный лог для отдельного сервера:

error_log /path/to/log debug;

http {
   server {
     error_log /path/to/log;
    # ...

Во избежание этого уберите строку, переопределяющую error_log, либо задайте в ней уровень debug:

error_log /path/to/log debug;

http {
   server {
     error_log /path/to/log debug;
   #  ...

Расположение директивы#

Расположение директивы error_log влияет на полноту собираемой отладочной информации.

Директива, указанная на более низком уровне конфигурации (например, внутри блока server или location), заменяет настройки логирования, заданные на более высоком уровне (например, на основном уровне конфигурации или внутри блока http).

Отключение отладочного лога для конкретного сервера

Если глобально отладочный лог включен, но для отдельного сервера error_log указан без уровня debug, то для этого сервера отладочная информация собираться не будет.

error_log /var/log/angie-lb/error.log debug; # Глобальный отладочный лог

http {

    server {

        listen 80;
        server_name example.com;

        error_log /var/log/angie-lb/example.com.error.log;
        # Отладочный лог для example.com отключен, в файле - уровень info

        # ...
    }

    server {

        listen 80;
        server_name another.com;

        # Для этого сервера будет использоваться глобальный отладочный лог
        # ...
    }
}

Сохранение отладочного лога для сервера

Чтобы сохранить сбор отладочной информации для конкретного сервера, но направить ее в другой файл, необходимо также указать уровень debug:

error_log /var/log/angie-lb/error.log debug; # Глобальный отладочный лог

http {

    server {

        listen 80;
        server_name example.com;

        error_log /var/log/angie-lb/example.com.error.log debug;
        # Отладочный лог для example.com включен, но пишется в отдельный файл

        # ...
    }
}

Таким образом, чтобы включить отладочный лог глобально, но переопределить файл лога для отдельных блоков, также укажите уровень debug в этих переопределениях. Иначе, если в директиве error_log не указан уровень логирования, по умолчанию будет использоваться уровень error и отладочная информация для этих блоков будет потеряна.

Лог для отдельных адресов#

Можно включить отладочный лог только для указанных клиентских адресов:

error_log /path/to/log;

events {
  debug_connection 192.168.1.1;
  debug_connection 192.168.10.0/24;
}