Kaspersky Unified Monitoring and Analysis Platform

Шаблоны уведомлений

Шаблоны уведомлений используются для создания уведомлений по электронной почте о событиях следующих типов:

  • Созданный алерт.
  • Завершение генерации отчета.
  • Завершение асинхронной задачи (шаблон с таким типом может быть только один).
  • Нарушение политики мониторинга.
  • Перемещение пользователя в другую группу KASAP.

Вы можете создавать шаблоны всех типов событий для Общего тенанта. Для всех остальных тенантов доступны только типы событий Созданный алерт и Нарушение политики мониторинга.

Предустановленные шаблоны уведомлений

В поставку KUMA включены перечисленные в таблице ниже шаблоны уведомлений.

Предустановленные шаблоны уведомлений

Название шаблона

Описание

[OOTB] New alert in KUMA

Базовый шаблон уведомлений.

В этом разделе

Создание шаблона уведомления

Изменение шаблона уведомления

Удаление шаблона уведомления

Синтаксис шаблонов уведомлений

В начало
[Topic 233508]

Создание шаблона уведомления

Чтобы создать шаблон уведомления:

  1. Откройте раздел веб-интерфейса KUMA РесурсыШаблоны уведомлений.

    В правой части раздела Ресурсы отобразится таблица Шаблоны уведомлений.

  2. Нажмите на кнопку Добавить и в открывшемся окне задайте параметры, как описано в таблице ниже.

    Параметры шаблонов уведомлений

    Параметр

    Описание

    Название

    Обязательный параметр.

    Уникальное имя шаблона. Должно содержать от 1 до 128 символов в кодировке Unicode. Имя не должно начинаться и заканчиваться пробелом и не должно содержать управляющие последовательности (перевод строки и т.п.).

    Тенант

    Обязательный параметр.

    Название тенанта, которому принадлежит ресурс. Вы можете создавать шаблоны всех типов событий для Общего тенанта. Для всех остальных тенантов доступны только типы Созданный алерт и Нарушение политики мониторинга.

    Тип

    Обязательный параметр.

    Тип события, для которого необходимо создать шаблон уведомления. Доступны следующие типы:

    • Созданный алерт.
    • Завершение генерации отчета.
    • Завершение асинхронной задачи.

      Шаблон с таким типом может быть только один. Если шаблон с таким типом уже существует, этот тип будет недоступен для выбора при создании нового шаблона.

    • Нарушение политики мониторинга.
    • Перемещение пользователя в другую группу KASAP.

    Тема

    Обязательный параметр.

    Тема электронного письма с уведомлением. Максимальная длина поля – 140 символов в кодировке Unicode.

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

    Для каждого типа событий при создании шаблона доступен стандартный текст темы. Поле Тема недоступно для редактирования или выбора стандартного текста, пока не выбран тип шаблона в поле Тип.

    В теме письма можно обращаться к полям объектов в зависимости от выбранного типа события.

    Пример (тема в шаблоне уведомления для события типа Созданный алерт):

    Новый алерт в KUMA: {{.CorrelationRuleName}}.

    Вместо {{.CorrelationRuleName}} в теме письма с уведомлением будет подставлено название правила корреляции, содержащееся в поле алерта CorrelationRuleName.

    Шаблон

    Обязательный параметр.

    Тело электронного письма с уведомлением.

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

    Шаблон поддерживает синтаксис, с помощью которого уведомление можно динамически наполнить данными из указанных полей соответствующих объектов. Описание синтаксиса шаблонов уведомлений и список поддерживаемых полей вы можете найти в статье Синтаксис шаблонов уведомлений. Для каждого типа событий при создании шаблона доступен стандартный текст электронного письма.

    Для удобства текст письма можно открыть в отдельном окне, нажав на значок full-screen. При этом открывается окно Шаблон, в котором можно изменить текст письма с уведомлением. Сохранить изменения и закрыть окно можно с помощью кнопки OK.

    По умолчанию

    Необязательный параметр. Доступен для типа событий Завершение асинхронной задачи.

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

    Теги

    Необязательный параметр.

    Теги для создаваемого шаблона уведомления.

    В списке отображаются все доступные теги, созданные в тенанте ресурса и Общем тенанте. Вы может найти тег в списке, начав вводить его название в поле. Если тега, который вы ввели, не существует, вы можете нажать Enter или Добавить, чтобы создать его.

    Описание

    Необязательный параметр.

    Описание шаблона в виде произвольного текста. Максимальная длина до 4000 символов в кодировке Unicode.

  3. Нажмите Сохранить.

Шаблон уведомления создан и отображается в таблице Шаблоны уведомлений.

В начало
[Topic 295232]

Изменение шаблона уведомления

Чтобы изменить шаблон уведомления:

  1. Откройте раздел веб-интерфейса KUMA РесурсыШаблоны уведомлений.

    В правой части раздела Ресурсы отобразится таблица Шаблоны уведомлений.

  2. Откройте нужный шаблон нажатием на соответствующую строку в таблице, и в открывшемся окне измените параметры, перечисленные в таблице в статье Создание шаблона уведомления.
  3. Нажмите Сохранить.

Шаблон уведомления изменен.

В начало
[Topic 295551]

Удаление шаблона уведомления

Чтобы удалить шаблон уведомления:

  1. Откройте раздел веб-интерфейса KUMA РесурсыШаблоны уведомлений.

    В правой части раздела Ресурсы отобразится таблица Шаблоны уведомлений.

  2. Установите флажки рядом с шаблонами уведомлений, которые вы хотите удалить.

    Если вы хотите удалить все существующие шаблоны, нажмите на флажок рядом со столбцом Название и выберите в раскрывающемся списке Выбрать все.

    Если вы хотите удалить все шаблоны, отображающиеся на странице, нажмите на флажок рядом со столбцом Название и выберите в раскрывающемся списке Выбрать все на странице.

    Необходимо установить хотя бы один флажок.

  3. Нажмите на кнопку Удалить.

    Откроется окно подтверждения. Если среди удаляемых шаблонов есть шаблоны, связанные с других другими ресурсами или сервисами, они будут показаны в окне подтверждения с примечанием, что эти шаблоны не будут удалены.

  4. Нажмите на кнопку Удалить, чтобы подтвердить удаление.

Шаблоны, для которых возможно безопасное удаление, будут удалены.

В начало
[Topic 295234]

Синтаксис шаблонов уведомлений

В шаблонах уведомлений используется синтаксис Go templates. С помощью этого синтаксиса можно динамически наполнять содержимым уведомления: загружать данные из полей соответствующих объектов, вставлять ссылки или преобразовывать даты в нужный формат. Синтаксис шаблонов можно использовать как в теме письма, так и в теле сообщения. В этой статье дается краткая информация о синтаксисе, а также перечислены поля, которые можно использовать для тех или иных типов событий, и дополнительные функции, применяемые к этим полям. Подробнее про синтаксис вы можете прочитать в официальной документации языка Go.

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

{{ .CorrelationRuleName }}

В письме будет отображаться название алерта, то есть содержимое поля CorrelationRuleName модели данных алерта.

Некоторые поля могут содержать содержат массивы данных, например поля алерта с относящимися к нему событиями, активами, учетными записями. К таким вложенным объектам можно обращаться с помощью функции range, которая последовательно обращается к полям 50 первых вложенных объектов. При обращении с помощью функции range к полю, в котором нет массива данных, возвращается ошибка. Пример:

{{ range .Assets }}

Устройство: {{ .DisplayName }}, дата создания: {{ .CreatedAt }}

{{ end }}

В письме будут отображаться значения полей DeviceHostName и CreatedAt из 50 связанных с алертом активов:

Устройство: <значение поля DisplayName из актива 1>, дата создания: <значение поля CreatedAt из актива 1>

Устройство: <значение поля DisplayName из актива 2>, дата создания: <значение поля CreatedAt из актива 2>

...

// Всего 50 строк

С помощью функции limit можно ограничить количество объектов, возвращаемых функцией range:

{{ range (limit .Assets 5) }}

<strong>Устройство</strong>: {{ .DisplayName }},

<strong>Дата создания</strong>: {{ .CreatedAt }}

{{ end }}

В письме будут отображаться значения полей DisplayName и CreatedAt из 5 связанных с алертом активов, слова "Устройства" и "Дата создания" выделены HTML-тегами <strong>:

<strong>Устройство</strong>: <значение поля DeviceHostName из актива 1>,

<strong>Дата создания</strong>: <значение поля CreatedAt из актива 1>

<strong>Устройство</strong>: <значение поля DeviceHostName из актива N>,

<strong>Дата создания</strong>: <значение поля CreatedAt из актива N>

...

// Всего 10 строк

Вложенные объекты могут иметь свои вложенные объекты. К ним можно обратиться с помощью вложенных функций range:

{{ range (limit .Events 5) }}

    {{ range (limit .Event.BaseEvents 10) }}

    Идентификатор сервиса: {{ .ServiceID }}

    {{ end }}

{{ end }}

В письме будет отображаться по десять идентификаторов сервисов (поле ServiceID) из базовых событий, относящихся к пяти корреляционным событиям алерта (всего 50 строк). Обратите внимание, что обращение к событиям происходит через вложенную структуру EventWrapper, которая находится в алерте в поле Events. События доступны в поле Event этой структуры, что отражено в примере выше. Таким образом, если поле A содержит вложенную структуру [B] и в структуре [B] есть поле C, которое является строкой или числом, то чтобы обратиться к полю C, необходимо указать путь {{ A.C }}.

Некоторые поля объектов содержат вложенные словари в формате "ключ – значение" (например, поле событий Extra). К ним можно обратиться с помощью функции range с переданными ей переменными: range $placeholder1, $placeholder2 := .FieldName. Значения переменных затем можно вызывать, указывая из названия. Пример:

{{ range (limit .Events 3) }}

    {{ range (limit .Event.BaseEvents 5) }}

    Список полей в поле события Extra: {{ range $name, $value := .Extra }} {{ $name }} - {{ $value }} <br> {{ end }}

    {{ end }}

{{ end }}

В письме через HTML-тег <br> будут отображаться пары "ключ – значение" из полей Extra базовых событий, принадлежащих корреляционным событиям. Вызываются данные из пяти базовых событий из каждого из трех корреляционных событий.

В шаблонах уведомлений можно использовать HTML-теги, выстраивая их в сложные структуры. Пример таблицы для полей корреляционного события:

<style type="text/css">

  TD, TH {

    padding: 3px;

    border: 1px solid black;

  }

</style>

<table>

  <thead>

    <tr>

        <th>Название сервиса</th>

        <th>Название корреляционного правила</th>

        <th>Версия устройства</th>

    </tr>

  </thead>

  <tbody>

    {{ range .Events }}

    <tr>

        <td>{{ .Event.ServiceName }}</td>

        <td>{{ .Event.CorrelationRuleName }}</td>

        <td>{{ .Event.DeviceVersion }}</td>

    </tr>

    {{ end }}

  </tbody>

</table>

С помощью функции link_alert в письмо с уведомлением можно вставить HTML-ссылку на алерт:

{{link_alert}}

В письме будет отображаться ссылка на окно алерта.

Шаблоны также поддерживают более сложные конструкции, такие как объявление локальных переменных, использование операторов сравнения и управляющих структур. Ниже приведен пример, как можно из связанных с алертом данных извлечь сведения о наивысшей категории активов и поместить ее в уведомления:

{{ $criticalCategoryName := "" }}

{{ $maxCategoryWeight := 0 }}

{{ range .Assets }}

{{ range .CategoryModels }}

{{ if gt .Weight $maxCategoryWeight }}

{{ $maxCategoryWeight = .Weight }}

{{ $criticalCategoryName = .Name }}

{{ end }}

{{ end }}

{{ end }}

{{ if gt $maxCategoryWeight 1 }}

Наивысшая категория активов: {{ $criticalCategoryName }}

{{ end }}

Поля объектов, поддерживаемые в шаблонах

В таблице ниже перечислены поля, к которым можно обращаться из шаблонов в зависимости от типа события.

Поддерживаемые поля объектов

Тип

Доступные поля

Созданный алерт

 

Поддерживается обращение ко всем полям модели данных алерта, включая вложенные массивы и структуры.

Завершение генерации отчета

{{ .Tenants }} – тенанты, по которым построен отчет.

{{ .Name }} – название отчета.

{{ .StartTime }} – начало периода, за который строится отчет, в формате 2006-01-02 15:04:05 MSK.

{{ .FinishTime }} – окончание периода, за который строится отчет, в формате 2006-01-02 15:04:05 MSK.

{{ .PreviewLink }} – ссылка для просмотра отчета.

{{ .DownloadLink }} – ссылка для скачивания отчета.

Пример добавления ссылок в шаблон уведомления о генерации отчета:

Вы можете <a href="{{ .PreviewLink }}" target="_blank">просмотреть</a> или <a href="{{ .DownloadLink }}" target="_blank">скачать</a> отчет.

Завершение асинхронной задачи

{{ .Tenants }} – тенант, в котором запущена задача.

{{ .TaskKind }} – название задачи.

{{ .TaskCreator }} – имя пользователя, который создал задачу (логин).

{{ .StartTime }} – время начала выполнения задачи в формате 2006-01-02 15:04:05 MSK.

{{ .FinishTime }} – время окончания выполнения задачи в формате 2006-01-02 15:04:05 MSK.

{{ .TaskStatus}} – статус выполнения задачи.

 

Нарушение политики мониторинга

{{ .SourceTenantName }} – тенант источника событий.

{{ .SourceDisplayName }} – имя источника.

{{ .Value }} – значение, вышедшее за границы политики мониторинга на момент создания алерта.

{{ .WebLink }} – ссылка на веб-интерфейс KUMA.

{{ .AlertActiveAt }} – время, в которое был активен алерт.

{{ .PolicyName }} – название политики мониторинга.

{{ .PolicyTenantName }} – тенант политики мониторинга.

{{ .PolicyLowerEventBound }} – нижний порог.

{{ .PolicyUpperEventBound }} – верхний порог.

{{ .PolicyKind }} – тип политики.

{{ .PolicyInterval }} – интервал периода подсчета.

{{ .DeviceProduct }} – устройство источника.

{{ .DeviceHostName }} – имя хоста источника.

{{ .DeviceAddress }} – адрес источника.

{{ .DeviceProcessName }} – название процесса источника.

 

Перемещение пользователя в другую группу KASAP

{{ .UserEmail }} – отображаемое имя пользователя из Active Directory.

{{ .PreviousGroup}} – группа обучения KASAP, в которой пользователь состоял на момент открытия его карточки из инцидента или алерта.

{{ .CurrentGroup}} – группа обучения KASAP, в которую пользователь был перемещен из карточки пользователя.

{{ .WebLink }} – ссылка на веб-интерфейс KUMA.

Функции в шаблонах уведомлений

В шаблонах доступны функции, перечисленные в таблице ниже.

Функции в шаблонах

Функция

Описание

date

Принимает первым параметром время в миллисекундах (unix time), вторым параметром можно передать формат времени по стандартам RFC. Часовой пояс изменить невозможно.

Пример вызова: {{ date .FirstSeen "02 Jan 06 15:04" }}

Результат вызова: 18 Nov 2022 13:46

Примеры форматов дат, поддерживаемые функцией:

  • "02 Jan 06 15:04 MST"
  • "02 Jan 06 15:04 -0700"
  • "Monday, 02-Jan-06 15:04:05 MST"
  • "Mon, 02 Jan 2006 15:04:05 MST"
  • "Mon, 02 Jan 2006 15:04:05 -0700"
  • "2006-01-02T15:04:05Z07:00"

range

Позволяет перебирать массивы или наборы пар "ключ – значение", последовательно обращаясь к полям 50 первых элементов.

limit

Функция вызывается внутри функции range для ограничения списка данных. Обрабатывает списки, которые не имеют ключей, принимает любой список данных первым параметром и обрезает список по второму значению. Например, в функцию можно передавать поля алерта .Events, .Assets, .Accounts, .Actions.

Пример вызова:

{{ range (limit .Assets 5) }}

<strong>Устройство</strong>: {{ .DisplayName }},

<strong>Дата создания</strong>: {{ .CreatedAt }}

{{ end }}

link_alert

Формирует ссылку на алерт с URL, указанным в параметрах подключения к SMTP-серверу в качестве псевдонима сервера Ядра KUMA или с реальным URL сервиса Ядра KUMA, если псевдоним не задан.

Пример вызова:

Подробнее об алерте можно узнать в веб-интерфейсе KUMA: {{link_alert}}.

link_task

Формирует ссылку на задачу в KUMA.

Пример вызова:

Задача "{{ .TaskKind }}" создана {{ .TaskCreator }} в {{ .StartTime }} и завершена в {{ .FinishTime }} со статусом "{{ .TaskStatus }}".

Подробнее о задачах можно узнать в веб-интерфейсе KUMA: {{ link_task }}.

link

Принимает вид ссылки, доступной для перехода.

Пример вызова:

{{ link "https://support.kaspersky.com/KUMA/2.1/ru-RU/233508.htm" }}

В начало
[Topic 295255]