Работа с логами фильтрующего узла

Расположение лог-файлов фильтрующего узла

Фильтрующий узел хранит следующие лог-файлы в директории /var/log/wallarm:

  • brute-detect.log и sync-brute-clusters.log: логи получения данных по счетчикам bruteforce-атак в кластере фильтрующих узлов.
  • export-attacks.log: лог экспорта информации об атаках из модуля постаналитики в облако Валарм.
  • export-clusterization-data.log: лог выгрузки данных кластера фильтрующих узлов.
  • export-counters.log: лог выгрузки данных счетчиков (см. «Мониторинг фильтрующего узла»).
  • export-spots.log: лог выгрузки метрик запросов.
  • sync-markers.log: лог получения маркеров из облака Валарм.
  • syncnode.log: лог синхронизации фильтрующего узла с облаком Валарм (включая получение файлов ЛОМ и proton.db из облака).
  • tarantool.log: лог работы модуля постаналитики.

Настройка расширенного логирования для фильтрующего узла на основе NGINX

NGINX записывает логи обработанных запросов (англ. «access logs») в отдельный лог-файл.

По умолчанию NGINX использует предопределенный формат логирования combined:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $request_id $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

Вы можете определить и использовать собственный формат логирования, включив в него одну или несколько переменных фильтрующего узла (а также другие переменные NGINX, если это необходимо). Это позволит проводить более быструю диагностику состояния фильтрующего узла, основываясь на содержимом лог-файла NGINX.

Переменные фильтрующего узла

При определении формата логирования NGINX могут быть использованы следующие переменные фильтрующего узла:

Имя Тип Значение
request_id Строка Идентификатор запроса
Имеет значение вида a79199bcea606040cc79f913325401fb
wallarm_request_time Число с плавающей точкой Время выполнения запроса в секундах
wallarm_serialized_size Целое число Размер сериализованного запроса в байтах
wallarm_is_input_valid Целое число Валидность запроса
0: запрос валиден. Запрос проверен фильтрующим узлом и соответствует правилам ЛОМ.
1: запрос невалиден. Запрос проверен фильтрующим узлом и не соответствует правилам ЛОМ.
wallarm_attack_type Целое число Типы атак, представленные в запросе в виде битовой строки
0x00000000: отсутствие атаки: "0"
0x00000001: флаг агрессивного режима: "1"
0x00000002: xss: "2"
0x00000004: sqli: "4"
0x00000008: rce: "8"
0x00000010: xxe: "16"
0x00000020: ptrav: "32"
0x00000040: crlf: "64"
0x00000080: redir: "128"
0x00000100: nosqli: "256"
0x00000200: infoleak: "512"
0x00001000: marker: "4096"
0x20000000: overlimit_res: "536870912"
0x40000000: zip_bomb: "1073741824"
0x80000000: vpatch: "2147483648"

Пример настройки

Пусть необходимо задать расширенный формат логирования с именем wallarm_combined, включающий в себя:

  • все переменные, используемые в формате combined;
  • все переменные фильтрующего узла.

Чтобы это сделать, выполните следующие действия:

  1. Добавьте в блок http файла конфигурации NGINX следующие строки, описывающие формат логирования:

    log_format wallarm_combined '$remote_addr - $remote_user [$time_local] '
                                '"$request" $request_id $status $body_bytes_sent '
                                '"$http_referer" "$http_user_agent"'
                                '$wallarm_request_time $wallarm_serialized_size $wallarm_is_input_valid $wallarm_attack_type';
    
  2. Включите логирование в расширенном формате, добавив в тот же блок директиву:

    access_log /var/log/nginx/access.log wallarm_combined;

    Логи обработанных запросов будут записываться в формате wallarm_combined в файл /var/log/nginx/access.log

  3. Перезапустите NGINX, выполнив одну из следующих команд в зависимости от используемой операционной системы:

    Debian 8.x (jessie)
    Debian 9.x (stretch)
    Debian 10.x (buster)
    Ubuntu 14.04 LTS (trusty)
    Ubuntu 16.04 LTS (xenial)
    Ubuntu 18.04 LTS (bionic)
    CentOS 6.x
    CentOS 7.x
    Amazon Linux 2
    # systemctl restart nginx
    
    # systemctl restart nginx
    
    # systemctl restart nginx
    
    # service nginx restart
    
    # service nginx restart
    
    # service nginx restart
    
    # service nginx restart
    
    # systemctl restart nginx
    
    # systemctl restart nginx
    

Дополнительная информация

Подробная информация о настройке логирования в NGINX доступна здесь.

results matching ""

    No results matching ""