Обзор интеграций
Status200 работает с инструментами, которыми ваша команда уже пользуется. Инструменты оповещения создают в нём инциденты, а Status200 создаёт тикеты, вызовы дежурных и сообщения в чатах других инструментов. Одни инструменты подключаются через форму, другие — через готовый шаблон рабочего процесса. Любой другой инструмент с вебхуком или API подключается через рабочий процесс, который вы создаёте сами.
Как работают интеграции
Каждая интеграция передаёт данные в одном направлении или в обоих. Входящее: другой инструмент сообщает Status200, что что-то не так, и Status200 создаёт инцидент или оповещение и вызывает дежурную команду. Исходящее: в Status200 что-то происходит, и рабочий процесс сообщает об этом другому инструменту: создаёт тикет, вызывает кого-то или публикует сообщение.
Входящее и исходящее
Двусторонняя интеграция, например Jira или Dynamics 365, использует оба направления: один рабочий процесс отправляет инцидент наружу, а другой, запускаемый вебхуком другого инструмента, возвращает изменения обратно.
Выбор способа подключения
| Способ | Лучше всего подходит для | Примеры |
|---|---|---|
| Встроенное подключение | Инструментов, к которым Status200 подключается сам. Вы заполняете форму, и ничего не нужно создавать. | Slack, Microsoft Teams, подключения Событий безопасности |
| Шаблон рабочего процесса | Тикет-систем, синхронизируемых в обе стороны, проблем мониторинга, отчётов об инцидентах безопасности и сообщений в чатах. Вы выбираете шаблон и заполняете несколько настроек. | Jira, Microsoft Dynamics 365, Huntress, Zabbix |
| Монитор Incoming Request | Инструментов оповещения, которые отправляют вебхук. Вы получаете один инцидент на оповещение, переданный дежурным и устранённый, когда оповещение восстанавливается, без рабочего процесса. | Zabbix, Prometheus Alertmanager, Grafana |
| Рабочий процесс, который вы создаёте | Любого инструмента с вебхуком или REST API и любой собственной логики. | PagerDuty, Opsgenie, ServiceNow |
Начинайте с верха таблицы: чем выше способ, тем меньше его нужно сопровождать.
Каталог
Инструменты мониторинга и оповещения
| Инструмент | Направление | Что делает |
|---|---|---|
| Zabbix | Оба | Превращает проблемы Zabbix в инциденты или оповещения, устраняет их при восстановлении и подтверждает или закрывает проблемы из Status200. |
| Prometheus Alertmanager | Входящее | Превращает уведомления Alertmanager в инциденты. |
| Grafana | Входящее | Превращает оповещения Grafana в инциденты. |
| Datadog | Входящее | Превращает оповещения мониторов Datadog в инциденты. |
Инструменты безопасности
| Инструмент | Направление | Что делает |
|---|---|---|
| Huntress | Входящее | Вызывает дежурных по отчётам об инцидентах Huntress и устраняет инцидент, когда отчёт закрывается. |
| Google SecOps | Оба | Передаёт обнаружения и индикаторы Google SecOps в События безопасности и отправляет туда то, что находит Status200. |
| Microsoft Sentinel | Оба | Передаёт инциденты Microsoft Sentinel в События безопасности и отправляет туда то, что находит Status200. |
| Microsoft Defender XDR | Входящее | Передаёт оповещения Microsoft Defender XDR в События безопасности. |
| CrowdStrike Falcon | Входящее | Передаёт оповещения CrowdStrike Falcon в События безопасности. |
| Splunk Enterprise Security | Оба | Передаёт notable events Splunk в События безопасности и отправляет туда то, что находит Status200. |
| Elastic Security | Оба | Передаёт оповещения об обнаружениях Elastic Security в События безопасности и отправляет туда то, что находит Status200. |
| AWS Security Hub | Входящее | Передаёт находки AWS Security Hub в События безопасности. |
| Okta System Log | Входящее | Передаёт входы, изменения учётных записей и обнаружения угроз Okta в События безопасности. |
Тикеты и управление ИТ-услугами
| Инструмент | Направление | Что делает |
|---|---|---|
| Jira | Оба | Создаёт задачу Jira для каждого инцидента или оповещения и возвращает изменения статуса и комментарии. |
| Microsoft Dynamics 365 | Оба | Создаёт обращение Dynamics 365 для каждого инцидента или оповещения и возвращает изменения статуса и заметки. |
| ServiceNow | Исходящее | Создаёт инцидент ServiceNow для каждого инцидента Status200 и устраняет его вместе с инцидентом. |
| GitHub | Исходящее | Создаёт issue в GitHub для инцидента. |
| GitLab | Исходящее | Создаёт issue в GitLab для инцидента. |
Инструменты вызова дежурных
| Инструмент | Направление | Что делает |
|---|---|---|
| PagerDuty | Исходящее | Запускает инцидент PagerDuty для каждого инцидента Status200 и устраняет его вместе с инцидентом. |
| Opsgenie | Исходящее | Создаёт оповещение Opsgenie для каждого инцидента Status200 и закрывает его вместе с инцидентом. |
Чат-инструменты
| Инструмент | Направление | Что делает |
|---|---|---|
| Slack | Оба | Встроенное подключение: каналы инцидентов, действия из Slack и дежурства. |
| Microsoft Teams | Оба | Встроенное подключение: каналы инцидентов, действия из Teams и дежурства. |
| Mattermost | Исходящее | Публикует обновления инцидентов в канале Mattermost. |
| Discord | Исходящее | Публикует обновления инцидентов в канале Discord. |
| Telegram | Исходящее | Отправляет сообщение в чат Telegram, когда срабатывает оповещение. |
| IRC | Исходящее | Публикует обновления инцидентов в канале IRC. |
У Slack и Microsoft Teams также есть шаги рабочих процессов. Используйте встроенное подключение для каналов инцидентов и дежурств, а шаг рабочего процесса — когда вам нужно только сообщение в канале.
Хостинг-платформы
| Инструмент | Направление | Что делает |
|---|---|---|
| Vercel | Входящее | Добавьте Status200 из Vercel Marketplace: трассировки, логи, мониторы доступности и страница статуса для ваших проектов Vercel. |
Переход с другого инструмента
Чтобы уйти с другого инструмента дежурств, мониторинга доступности или страниц статуса, перенесите свою команду, а не связывайте два инструмента. Настройки проекта → Расширенный → Импорт из другого инструмента читает вашу учётную запись по ключу API, показывает найденное и создаёт то, что вы отметите. Для каждого инструмента есть руководство:
- Инструменты дежурств и инцидентов: Opsgenie, PagerDuty, incident.io, Splunk On-Call и Grafana OnCall.
- Инструменты мониторинга доступности и страниц статуса: UptimeRobot, Atlassian Statuspage, Better Stack, Pingdom, StatusCake и Uptime Kuma.
Создание собственной интеграции
Инструмент без руководства всё равно укладывается в одну из двух схем. Если он умеет отправлять вебхук, используйте входящую схему. Если у него есть REST API, используйте исходящую. Обе схемы — это рабочие процессы: чтобы начать, см. Обзор рабочих процессов.
Входящее: другой инструмент отправляет данные в Status200
Для инструмента оповещения начните с монитора Incoming Request: он создаёт один инцидент на оповещение и устраняет его при восстановлении, без какой-либо сборки. Создавайте рабочий процесс, когда вам нужна собственная логика:
- Откройте Рабочие процессы, нажмите Создать рабочий процесс, затем Начать с нуля. Назовите рабочий процесс и нажмите Создать рабочий процесс.
- Нажмите на пунктирный блок Choose what starts this workflow и выберите Webhook. Нажмите на триггер, затем на Скопировать URL.
- В другом инструменте отправьте его вебхук на этот URL как
POSTсContent-Type: application/json. - Добавьте блоки, которые его обрабатывают. Они читают запрос по ссылкам вида
{{local.components.webhook-1.returnValues.request-body.status}}: блок If / Else для проверки поля, затем Create One Incident для объявления инцидента. - Включите Включено вверху окна Конструктор, отправьте тестовый запрос из другого инструмента и откройте Журналы → Запуски, чтобы посмотреть, что пришло.
URL — единственные учётные данные, поэтому обращайтесь с ним как с паролем. См. Webhook.
Исходящее: Status200 отправляет данные в другой инструмент
- Сохраните ключ API инструмента как секретную глобальную переменную, как показано ниже.
- Создайте рабочий процесс, нажмите на пунктирный блок и выберите триггер события, например On Create Incident. Нажмите на триггер: его Fields to pass on начинаются с поля Заголовок, поэтому нажмите Добавить поле и выберите остальные поля для отправки, например Описание.
- Нажмите Добавить компонент и добавьте блок API Post (JSON). Соедините с ним точку Success триггера.
- Заполните его URL, Request Headers с заголовком
Authorizationи Request Body с полями инцидента, например{{local.components.incident-on-create-1.returnValues.model.title}}. - Нажмите Запустить рабочий процесс, выберите инцидент в поле Инцидент и запустите. Тестовый запуск действительно отправляет запрос. Затем включите Включено.
Если инструменту нужны данные в другом виде, добавьте между ними блок Run Custom JavaScript. Рецепт одинаков для Zendesk, New Relic, AWS (через SNS), StatusCake и всех остальных: меняются только URL и тело.
Защита учётных данных
Никогда не вставляйте ключ API или токен в блок. Сохраните его один раз как секретную глобальную переменную:
- Перейдите в Рабочие процессы → Глобальные переменные и нажмите Создать: Рабочий процесс Переменная.
- Задайте имя, например
JIRA_AUTH, и нажмите Далее. - Вставьте ключ в Содержимое, включите Секрет и нажмите Создать: Рабочий процесс Переменная.
Любой блок читает её как {{global.variables.JIRA_AUTH}}. Содержимое переменной нельзя прочитать после сохранения, а содержимое секретной переменной заменяется на [REDACTED] в журналах запусков. Для токенов с истекающим сроком, например токенов Microsoft Entra ID, переменная OAuth 2.0 сама получает новый. См. Переменные рабочего процесса.
Шпаргалка по аутентификации
Большинство исходящих интеграций передают ключ в заголовке запроса. Распространённые варианты:
| Схема | Что отправлять | Кто использует |
|---|---|---|
| Токен Bearer | Authorization: Bearer {{global.variables.TOKEN}} | GitHub и большинство современных API |
| Аутентификация Basic | Authorization: Basic {{global.variables.BASE64_USER_PASS}} | Jira Cloud, ServiceNow |
| Заголовок с ключом API | Authorization: GenieKey {{global.variables.OPSGENIE_KEY}} | Opsgenie |
| Заголовок с приватным токеном | PRIVATE-TOKEN: {{global.variables.GITLAB_TOKEN}} | GitLab |
| Ключ в теле | routing_key в теле JSON | PagerDuty Events API |
| Учётные данные клиента OAuth 2.0 | Authorization: Bearer {{local.variables.dynamicsAccessToken}} из переменной OAuth 2.0 | Microsoft Dynamics 365 |
Для аутентификации Basic один раз закодируйте username:password или email:api_token и сохраните результат как секрет. В macOS или Linux:
printf '%s' 'you@example.com:your_api_token' | base64 | tr -d '\n'Используйте printf, а не echo: echo добавляет перевод строки, который кодируется вместе с остальным и ломает учётные данные. tr удерживает длинный результат в одной строке.
Самостоятельно размещённые установки
Самостоятельно размещённый Status200 обращается к другим инструментам из вашей сети, а другие инструменты обращаются к нему из своих:
- Исходящее: запросы рабочих процессов к адресам частной сети отклоняются, если администратор их не разрешил. См. Исходящий сетевой доступ.
- Входящее: вебхуки инструмента должны доходить до вашего Status200 по HTTPS, поэтому облачному инструменту нужен публичный адрес для вызова.
- Встроенные интеграции имеют каждая своё руководство по настройке: Slack, Microsoft Teams, GitHub, Twilio, SendGrid Inbound Email и Push Notifications.