Перейти к содержанию

Глава 33. Логирование

Действия логирования управляют записью информации о транзакциях в access log.

Статус реализации. Реально работают label() и notlog. Действия log(), access_log(<имя>) (выбор именованного лога), log.rewrite(), log.suppress() сейчас принимаются, но не применяются (молча ничего не делают) — это в планах.

33.1. log(yes/no) — включить/выключить лог

Управляет записью текущей транзакции в access log.

Синтаксис:

log(yes|no)

where: yes — записать транзакцию в access log; no — пропустить запись.

Тип: Нетерминальное.

Слои и транзакции: Proxy, Admin. Применяется к HTTP-транзакциям.

Пример:

<Proxy>
    url.path=/health log(no)
    log(yes)

См. также: access_log, label


33.2. access_log(name) — файл лога

Направляет запись транзакции в конкретный именованный лог. Позволяет разделять логи по назначению (аудит, безопасность, отладка).

Синтаксис:

access_log(<name>)

where: name — имя лога, определённое в конфигурации прокси.

Тип: Нетерминальное.

Слои и транзакции: Proxy.

Пример:

<Proxy>
    url.path=/admin access_log(audit_log)
    category=Malware access_log(security_log)

См. также: log(yes/no)


33.3. label=name — метка правила

Присваивает метку совпавшему правилу для идентификации в логах и отчётах. Метка записывается в поле label access log.

Синтаксис:

label(<name>)

where: name — строковая метка.

Тип: Нетерминальное.

Слои и транзакции: Proxy, Admin.

Пример:

<Proxy>
    category=Gambling label(gambling_block) deny
    category="Social Networking" label(social_block) deny

См. также: log.rewrite


33.4. log.rewrite.field=value — перезапись полей лога

Перезаписывает значение указанного поля в записи access log. Поддерживает шаблонные переменные $(...).

Синтаксис:

log.rewrite.<field>=<value>

where: field — имя поля лога (буквы, цифры, _); value — новое значение (строка, может содержать $(...) шаблоны).

Тип: Нетерминальное.

Слои и транзакции: Proxy.

Пример:

<Proxy>
    log.rewrite.user="anonymized"
    log.rewrite.category="custom_label"
    log.rewrite.reason="$(url.host) blocked"

См. также: log.suppress


33.5. log.suppress.field(yes|no) — подавление полей лога

Управляет подавлением указанного поля в access log: - log.suppress.<field>(yes) — подавить поле (исключить из лога; анонимизация). - log.suppress.<field>(no) — подавление выключено для поля.

Голое log.suppress.<field> принимается как сокращение для (yes).

Синтаксис:

log.suppress.<field>(yes|no)
log.suppress.<field>            ; = (yes)

where: field — имя поля лога (буквы, цифры, _).

Тип: Нетерминальное. (no) не подавляет поле.

Слои и транзакции: <Proxy>.

Пример:

<Proxy>
    log.suppress.user(yes)
    log.suppress.client_address          ; = (yes)
    category=Healthcare log.suppress.uri(yes)

Соответствие BlueCoat 7.3: yes подавляет field_id, no выключает подавление. Не поддержано (при использовании — отказ): форма со списком логов log.suppress.field_id[log1,log2](yes|no) и quoted-поля со скобками (log.suppress."cs(User-agent)"). Поддержана простая форма log.suppress.<field>(yes|no).

См. также: log.rewrite


Комплексный пример:

<Proxy>
    category=Gambling label(gambling_block) log(yes) deny
    category="Social Networking" label(social_block) log(yes) deny
    url.path=/admin label(admin_access) log(yes) access_log(audit_log)
    log.suppress.user allow