12.23. Логирование

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

ADC поддерживает лог-профили (vlb log-profile) и HTTP access log. Лог-профили позволяют создать именованную конфигурацию логирования и привязать её к конкретному Сервису через команду log-profile NAME в настройках Сервиса. HTTP access log записывает информацию о каждом HTTP-запросе, обрабатываемом Сервисом.

Настройка

Для начала логирования информации о соединениях на внешние серверы необходимо включить требуемые типы логов, настроить хотя бы один сервер и включить логирование глобально.

Можно настроить несколько серверов логирования одновременно, использующих один и тот же или разные протоколы. Сообщения будут дублироваться на все настроенные серверы.

При добавлении сервера можно настроить IP-адрес отправителя и VRF, который будет использоваться для маршрутизации пакетов логов. По умолчанию пакеты маршрутизируются в рамках VRF по умолчанию, а адрес отправителя — это адрес интерфейса, с которого отправляются пакеты.

[no] vlb log type <vlb-session|vlb-session-ipv6|http-request> enable

Включить соответствующий тип логирования:

  • vlb-session — логирование L4-сессий IPv4

  • vlb-session-ipv6 — логирование L4-сессий IPv6

  • http-request — логирование HTTP-запросов (HTTP access log)

Примечание

Перед включением необходимо настроить хотя бы один сервер логов.

[no] vlb log server (0-27) type <syslog|netflow|ipfix|radius> ip A.B.C.D port (1-65535) [{vrf NAME|source-ip A.B.C.D}]

Добавить сервер логов. Если сервер с указанным идентификатором (0-27) уже существует, его настройки будут перезаписаны.

vlb log server (0-27) type syslog hostname NAME

Задать системное имя при отправке сообщений по протоколу Syslog.

vlb log server (0-27) type syslog timestamp enable

Добавить метку времени при отправке сообщений по протоколу Syslog.

vlb log server (0-27) type syslog log-type <vlb-session|vlb-session-ipv6> facility FACILITY

Задать параметр Facility поля PRI при отправке сообщений по протоколу Syslog.

vlb log server (0-27) type syslog log-type <vlb-session|vlb-session-ipv6> level LEVEL

Задать параметр Severity поля PRI при отправке сообщений по протоколу Syslog.

vlb log server (0-27) type syslog format enable

Включить пользовательский формат для сообщений Syslog.

vlb log server (0-27) type syslog format add-event VALUE

Задать текст для события создания сессии.

vlb log server (0-27) type syslog format del-event VALUE

Задать текст для события удаления сессии.

vlb log server (0-27) type syslog format field (0-31) name NAME type <int-ip|ext-ip|dst-ip|nat-dst-ip|int-port|ext-port|dst-port|nat-dst-port|proto|service-vrf|worker-vrf|event>

Задать пользовательское поле для указанного сервера Syslog. Поле может включать следующие типы данных:

  • int-ip — внутренний (со стороны клиента) IP-адрес

  • ext-ip — внешний (транслированный) IP-адрес

  • dst-ip — IP-адрес назначения

  • nat-dst-ip — NAT-транслированный IP-адрес назначения

  • int-port — внутренний (со стороны клиента) порт

  • ext-port — внешний (транслированный) порт

  • dst-port — порт назначения

  • nat-dst-port — NAT-транслированный порт назначения

  • proto — транспортный протокол (например, TCP, UDP)

  • service-vrf — VRF виртуального сервиса

  • worker-vrf — VRF выбранного backend (Worker)

  • event — событие сессии (например, создание, завершение)

Пример:

vlb log server 0 type syslog format field 0 name client-ip type int-ip
vlb log server 0 type syslog format field 1 name protocol type proto
vlb log server 0 type syslog format field 2 name dst-port type dst-port

Данная конфигурация формирует строки логов, содержащие внутренний IP-адрес клиента, используемый протокол и порт назначения с соответствующими именами полей.

vlb log server (0-27) type <netflow|ipfix> template-resend-pkts (1-1440)

Задать частоту обновления шаблона в количестве пакетов для протоколов NetFlow/IPFIX. По умолчанию шаблон обновляется каждые 20 пакетов.

vlb log server (0-27) type <netflow|ipfix> template-resend-timeout (1-1440)

Задать частоту обновления шаблона в минутах для протоколов NetFlow/IPFIX. По умолчанию шаблон обновляется каждые 10 минут.

vlb log server (0-27) type radius secret [encrypted] SECRET

Задать Shared Secret для отправки сообщений по протоколу RADIUS. Параметр encrypted указывает, что значение передаётся в зашифрованном виде.

vlb log enable

Включить логирование.

Show-команды

show vlb log counters

Показать счётчики логов ADC.

clear vlb log counters

Сбросить счётчики логов ADC.

Счётчик

Описание

Generated

Количество сгенерированных сообщений логов

Sent

Количество отправленных сообщений логов (если настроено несколько серверов, то sent = generated × количество серверов)

No Memory

Количество сообщений логов, не поставленных в очередь из-за нехватки памяти

No Server

Количество сообщений логов, не отправленных из-за отсутствия настроенного сервера логов

No VRF

Количество сообщений логов, не отправленных из-за отсутствия VRF, к которому привязан сервер логов

No Packet

Количество сообщений логов, не отправленных из-за невозможности выделить пакет из пула

show vlb log queues

Показать очереди логов ADC. Пример вывода:

trafficsoft# show vlb log queues
NAT-log task id 0 (socket 0):
NAT-log ring-size: 16384
            Free-space          Processed      Loading
    Ring id 0 : 16384               0              0  %
    Ring id 1 : 16384               0              0  %

Название

Описание

NAT-log task id

ID задачи логирования, привязанной к ядру и сокету. Количество задач настраивается в параметрах платформы

NAT-log ring-size: 16384

Максимальный размер очереди сообщений, ожидающих отправки на сервер логов

Ring id 0

Очередь control plane

Ring id 1

Очередь data plane

Processed

Общее количество обработанных сообщений логов

show vlb log servers

Показать все серверы логов и их конфигурацию. Сервер может находиться в одном из трёх состояний:

Состояние

Описание

Active

Сервер логов настроен, сообщения логов ADC отправляются на него

Inactive

Сервер логов настроен с VRF, который не существует

Not Configured

IP-адрес и порт не настроены

Балансировка логов ADC

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

Примечание

Отдельные серверы (не входящие в группу) настраиваются как описано выше. Механизм балансировки к ним не применяется — логи всех пользователей дублируются на каждый такой сервер.

[no] vlb log group (1-8)

Создать группу серверов. В каждой группе может быть до 24 серверов; нумерация серверов в разных группах независима. Нумерация отдельных серверов также независима от групп. Общее количество серверов, включая отдельные и серверы во всех группах, не должно превышать 63. Внутри группы серверы добавляются и настраиваются стандартными командами vlb log server.

Лог-профили

Лог-профили — это именованные конфигурации логирования, которые можно привязать к конкретному Сервису. Это позволяет настраивать различные параметры логирования для разных Сервисов.

[no] vlb log-profile NAME

Создать лог-профиль. Настройки серверов и типов логов внутри лог-профиля выполняются теми же командами, что и для глобального логирования (vlb log server, vlb log type), но в контексте данного профиля.

Чтобы привязать лог-профиль к Сервису, используйте команду log-profile NAME в настройках Сервиса (см. CLI).

Пример конфигурации лог-профиля:

! Создать лог-профиль
vlb log-profile my-log-profile
!
! Настроить сервер логов внутри профиля
vlb log server 0 type syslog ip 10.0.0.100 port 514
vlb log server 0 type syslog hostname adc-node-1
vlb log server 0 type syslog timestamp enable
!
! Включить тип логирования
vlb log type http-request enable
!
! Активировать логирование в профиле
vlb log enable
exit
!
! Привязать профиль к Сервису
vlb service default/my-service
log-profile my-log-profile