Мониторинг работоспособности правил автоматизации и сборников схем

Чтобы обеспечить правильную работу и производительность операций оркестрации безопасности, автоматизации и реагирования в службе Microsoft Sentinel, отслеживайте работоспособность правил автоматизации и сборников схем, отслеживая журналы их выполнения.

Настройте уведомления о событиях, связанных с работоспособностью, для соответствующих заинтересованных сторон, чтобы они могли принять меры. Например, определите и отправьте сообщения электронной почты или Microsoft Teams, создайте новые билеты в своей билетной системе и т. д.

В этой статье описывается, как использовать функции мониторинга работоспособности Microsoft Sentinel для отслеживания состояния правил автоматизации и плейбуков непосредственно в Microsoft Sentinel. Дополнительные сведения см. в статье Аудит и мониторинг работоспособности в Microsoft Sentinel.

Использование таблицы данных SentinelHealth

Чтобы получить данные о работоспособности автоматизации из таблицы данных SentinelHealth, сначала включите функцию работоспособности Microsoft Sentinel для рабочей области. Дополнительные сведения см. в статье Включение мониторинга работоспособности для Microsoft Sentinel.

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

Описание событий таблицы SentinelHealth

В таблице SentinelHealth регистрируются следующие типы событий работоспособности автоматизации:

  • Запуск правил автоматизации: регистрируется всякий раз, когда выполнены условия правила автоматизации, что приводит к его запуску. Помимо полей в базовой таблице SentinelHealth , эти события включают расширенные свойства, уникальные для выполнения правил автоматизации, включая список плейбуков, вызываемых правилом. Следующий пример запроса показывает следующие события:

    SentinelHealth
    | where OperationName == "Automation rule run"
    
  • Плейбук был активирован: Логировался, когда плейбук запускается при инциденте вручную из портала или через API. Помимо полей в базовой таблице SentinelHealth , эти события включают расширенные свойства, уникальные для ручного запуска плейбуков. Следующий пример запроса показывает следующие события:

    SentinelHealth
    | where OperationName == "Playbook was triggered"
    

Дополнительные сведения см. в разделе Схема столбцов таблицы SentinelHealth.

Состояния, ошибки и рекомендуемые шаги

Для статуса запуска правила автоматизации вы можете увидеть следующие статусы:

  • Успех: Правило успешно исполнено, активируя все действия.

  • Частичный успех: правило выполнило и сработало хотя бы одно действие, но некоторые действия не сработали.

  • Ошибка: Правило автоматизации не выполняло никаких действий по одной из следующих причин:

    • Не удалось выполнить проверку условий.
    • Условия выполнены, но первое действие завершилось ошибкой.

Для статуса «Плейбук был активирован » вы можете увидеть следующие статусы:

  • Успех: Плейбук был успешно активирован.

  • Провал: Плейбук не мог быть активирован.

    Примечание.

    Успех означает лишь то, что правило автоматизации успешно запустило плейбук. Он не сообщает, когда сборник схем начал или закончился, результаты действий в сборнике схем или конечный результат сборника схем.

    Чтобы найти эти сведения, выполните запрос к журналам диагностики Logic Apps. Дополнительные сведения см. в разделе Получение полной картины автоматизации.

Описания ошибок и рекомендуемые действия

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

Описание ошибки Рекомендуемые действия
Не удалось добавить задачу: <TaskName>.
Инцидент или оповещение не найдено.
Убедитесь, что инцидент или оповещение существует, и повторите попытку.
Не удалось добавить задачу: <TaskName>.
Инцидент уже содержит максимально допустимое количество задач.
Если эта задача требуется, посмотрите, есть ли какие-либо задачи, которые можно удалить или объединить, а затем повторите попытку.
Не удалось изменить свойство: <PropertyName>.
Инцидент или оповещение не найдено.
Убедитесь, что инцидент или оповещение существует, и повторите попытку.
Не удалось изменить свойство: <PropertyName>.
Слишком много запросов, превышены ограничения на частоту запросов.
Не удалось запустить плейбук: <PlaybookName>.
Инцидент или оповещение не найдено.
Если при попытке активировать сборник схем по запросу произошла ошибка, убедитесь, что инцидент или оповещение существует, и повторите попытку.
Не удалось запустить плейбук: <PlaybookName>.
Либо сборник схем не найден, либо у Microsoft Sentinel отсутствуют разрешения на него.
Измените правило автоматизации, найдите и выберите сборник схем в новом расположении и сохраните его. Убедитесь, что у Microsoft Sentinel есть разрешение на запуск этого сборника схем.
Не удалось запустить плейбук: <PlaybookName>.
Содержит неподдерживаемый тип триггера.
Убедитесь, что ваш сценарий начинается с правильного триггера Logic Apps: Инцидент Microsoft Sentinel или Оповещение Microsoft Sentinel.
Не удалось запустить плейбук: <PlaybookName>.
Подписка отключена и помечена как доступная только для чтения. Плейбуки в этой подписке нельзя запускать, пока подписка не будет повторно активирована.
Повторно включите подписку Azure, в которой находится сборник схем.
Не удалось запустить плейбук: <PlaybookName>.
Плейбук был отключён.
Включите сборник схем в Microsoft Sentinel на вкладке Активные сборники схем в разделе Автоматизация или на странице ресурсов Logic Apps.
Не удалось запустить плейбук: <PlaybookName>.
Недопустимое определение шаблона.
В определении сборника схем возникает ошибка. Перейдите в конструктор Logic Apps, чтобы устранить проблемы и сохранить сборник схем.
Не удалось запустить плейбук: <PlaybookName>.
Конфигурация управления доступом ограничивает Microsoft Sentinel.
Конфигурации Logic Apps позволяют ограничить доступ к запуску плейбука. Это ограничение действует для этого сборника схем. Удалите это ограничение, чтобы Microsoft Sentinel не блокировались. Ограничить доступ по диапазону IP-адресов
Не удалось запустить плейбук: <PlaybookName>.
У Microsoft Sentinel нет разрешений на его запуск.
Для Microsoft Sentinel требуются разрешения на запуск плейбуков.
Не удалось запустить плейбук: <PlaybookName>.
Playbook не был перенесён в новую модель прав доступа. Предоставьте Microsoft Sentinel разрешение на запуск этого плейбука и повторно сохраните правило.
Предоставьте Microsoft Sentinel разрешения на запуск этого плейбука и повторно сохраните правило.
Не удалось запустить плейбук: <PlaybookName>.
Слишком много запросов, превышение ограничений регулирования рабочего процесса.
Количество запусков рабочих процессов ожидания превысило максимально допустимое ограничение. Попробуйте увеличить значение 'maximumWaitingRuns' в настройках параллелизма триггера.
Не удалось запустить плейбук: <PlaybookName>.
Слишком много запросов, превышены ограничения на частоту запросов.
Дополнительные сведения об ограничениях регулирования.
Не удалось запустить плейбук: <PlaybookName>.
Доступ запрещен. Управляемое удостоверение личности не настроено, или настроено сетевое ограничение для Logic Apps.
Если сценарий использует управляемое удостоверение, убедитесь, что для управляемого удостоверения назначены необходимые разрешения. В плейбуке могут быть правила сетевых ограничений, препятствующие его запуску, поскольку они блокируют службу Microsoft Sentinel.
Не удалось запустить плейбук: <PlaybookName>.
Подписка или группа ресурсов заблокирована.
Снимите блокировку, чтобы разрешить Microsoft Sentinel запускать сценарии в заблокированной области. Дополнительные сведения о заблокированных ресурсах.
Не удалось запустить плейбук: <PlaybookName>.
У вызывающего объекта отсутствуют разрешения, необходимые для запуска плейбука, или у Microsoft Sentinel отсутствуют разрешения для него.
У пользователя, пытающегося вручную запустить плейбук, отсутствует роль Logic Apps Contributor для этого плейбука или разрешение на запуск плейбука. Ограничить доступ к логическому приложению по диапазону IP-адресов
Не удалось запустить плейбук: <PlaybookName>.
Недопустимые учетные данные при подключении.
Проверьте учетные данные, которые использует ваше подключение в службе подключений API в портал Azure.
Не удалось запустить плейбук: <PlaybookName>.
Недопустимый идентификатор ARM плейбука.

Получение полного представления об автоматизации

Таблица мониторинга работоспособности Microsoft Sentinel позволяет отслеживать, когда запускаются плейбуки, но чтобы отслеживать, что происходит внутри плейбуков, а также результаты их выполнения, необходимо также включить диагностику в Azure Logic Apps, чтобы передавать следующие события в таблицу AzureDiagnostics:

  • {Имя действия} запущено
  • {Имя действия} завершено
  • Рабочий процесс (сборник схем) запущен
  • Рабочий процесс (сборник схем) завершен

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

Включите диагностику Azure Logic Apps

Для каждого плана, который вы хотите отслеживать, включите Log Analytics для вашего логического приложения. Убедитесь, что в качестве назначения для журналов выбрано Отправить в рабочую область Log Analytics и что выбрана рабочая область Microsoft Sentinel.

Сопоставление журналов Microsoft Sentinel и Azure Logic Apps

Теперь, когда у вас есть журналы для правил автоматизации, сборники схем и журналы для отдельных рабочих процессов Logic Apps в рабочей области, вы можете сопоставить их, чтобы получить полную картину. Рассмотрим следующий пример запроса:

SentinelHealth 
| where SentinelResourceType == "Automation rule"
| mv-expand TriggeredPlaybooks = ExtendedProperties.TriggeredPlaybooks
| extend runId = tostring(TriggeredPlaybooks.RunId)
| join (AzureDiagnostics 
    | where OperationName == "Microsoft.Logic/workflows/workflowRunCompleted"
    | project
        resource_runId_s,
        playbookName = resource_workflowName_s,
        playbookRunStatus = status_s)
    on $left.runId == $right.resource_runId_s
| project
    RecordId,
    TimeGenerated,
    AutomationRuleName= SentinelResourceName,
    AutomationRuleStatus = Status,
    Description,
    workflowRunId = runId,
    playbookName,
    playbookRunStatus

См. больше информации о следующих элементах, использованных в предыдущих примерах, в документации Kusto:

Дополнительные сведения о KQL см. в статье Общие сведения о язык запросов Kusto (KQL).

Другие ресурсы

Используйте книгу мониторинга работоспособности

Рабочая книга Automation Health помогает визуализировать ваши данные о здоровье, а также корреляцию между логами Microsoft Sentinel SentinelHealth и логами Azure Logic Apps AzureDiagnostics. Рабочая тетрадь по автоматизации здоровья содержит следующие дисплеи:

  • Состояние и сведения о правиле автоматизации
  • Состояние и сведения о триггерах сценария
  • Запуски плейбука: состояние и сведения (требуется, чтобы на уровне плейбука была включена диагностика Azure)
  • Сведения об автоматизации для каждого инцидента

Например, вы можете:

На снимке экрана показана начальная панель книги состояния автоматизации.

Выберите вкладку Плейбуки, запущенные правилами автоматизации, чтобы просмотреть активность плейбуков.

На снимке экрана показан список плейбуков, вызываемых правилами автоматизации.

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

На снимке экрана показан список запусков выбранного сценария.

Выберите конкретный забег, чтобы увидеть результаты действий в этом забеге.

Скриншот показывает действия, которые выполняются за определённый пробег выбранного плейбука.