Загрузка...

Шаблоны RSyslog (template): формирование и преобразование событий.

9 | 21.09.2026 21:53 | #Audit #RSyslog

Общие сведения.

Шаблоны в RSyslog определяет в каком виде событие будет записано в файл, передано на удалённый сервер или обработано другим действием.

С помощью шаблонов можно изменять структуру Syslog-сообщения, выбирать необходимые поля, добавлять постоянные значения, изменять HOSTNAME, формировать заголовок сообщения и использовать дополнительные свойства, созданные при обработке события.

Пример шаблона.

Рассмотрим формирование сообщения в формате RFC 5424:

template(
   name="RemoteEvents"
   type="list"
) {
   constant(value="<")
   property(name="pri")
   constant(value=">1 ")
   property(
       name="timestamp"
       dateFormat="rfc3339"
   )
   constant(value=" ")
   property(name="hostname")
   constant(value="-nginx ")
   constant(value="nginx_access - - - ")
   property(name="msg")
   constant(value="\n")
}

В результате может быть сформировано сообщение следующей структуры:

<PRI>1 TIMESTAMP HOSTNAME-nginx nginx_access - - - MESSAGE

Например:

<158>1 2026-09-21T10:00:00+05:00 server01-nginx nginx_access - - - <сообщение>

Основные элементы.

ЭлементНазначение
template()Объявляет новый шаблон RSyslog
name="RemoteEvents"Уникальное имя шаблона
type="list"Указывает тип шаблона
constant()Добавляет в результат постоянное значение
property()Добавляет значение свойства обрабатываемого события
property(name="pri")Значение Syslog PRI (facility + severity)
property(name="timestamp")Временная метка события
dateFormat="rfc3339"Форматирует временную метку в RFC 3339
property(name="hostname")Имя узла, от которого получено событие
property(name="msg")Содержимое сообщения
constant(value="\n")Добавляет перевод строки

Использование шаблона.

После объявления шаблон можно назначить определённому action.

Например:

action(
    type="omfwd"
    target="192.168.0.200"
    port="514"
    protocol="tcp"
    template="RemoteEvents"
)

В этом случае перед отправкой на удалённый сервер событие будет преобразовано в соответствии с шаблоном RemoteEvents.

Типы шаблонов.

RSyslog поддерживает несколько типов шаблонов. Выбор зависит от задачи и требуемого формата результата.

Шаблон list.

Шаблон формируется из последовательности property() и constant():

template(
    name="ExampleList"
    type="list"
) {
    property(name="timestamp")
    constant(value=" ")
    property(name="hostname")
    constant(value=" ")
    property(name="msg")
    constant(value="\n")
}

Такой подход удобен для сложных шаблонов, поскольку каждое поле описывается отдельно и структура сообщения хорошо видна в конфигурации.

Шаблон string.

Позволяет определить шаблон одной строкой:

template(
    name="ExampleString"
    type="string"
    string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%\n"
)

Подходит для относительно простых текстовых форматов.

Другие типы.

RSyslog также поддерживает другие типы шаблонов, в частности:

  • type="subtree" — сериализация части дерева структурированных данных сообщения;
  • type="plugin" — формирование результата специализированным output-плагином.

Кроме того, RSyslog предоставляет встроенные (reserved) шаблоны для распространённых форматов Syslog.

Выбор между list или string.

Шаблоны list и string имеют наибольшее распространение. Оба типа могут использоваться в современных конфигурациях. 

Шаблон string представляет шаблон одной строкой и удобен для простых форматов. Шаблон list использует более структурированный подход. Для новых и более сложных конфигураций целесообразно использовать шаблон list, поскольку такой подход:

  • явно разделяет свойства события и постоянные значения;
  • упрощает чтение и сопровождение конфигурации;
  • позволяет индивидуально настраивать обработку отдельных свойств;
  • удобнее при построении сложных структурированных сообщений;
  • снижает необходимость формирования длинных строк с подстановками %property%.

Примеры шаблонов.

Ссылка на официальный сайт RSyslog с примерами шаблонов:

Template examples

SOCpedia - платформа знаний

Здесь собраны материалы по практикам SOC и Blue Team: статьи, новости, книги и переводы.