Перейти к содержимому

Документация

ElastAlert 2

ElastAlert 2 — активно развиваемый форк оригинального ElastAlert с расширенным набором функций и поддержкой современных версий Elasticsearch/OpenSearch.

Предварительные требования

  • ElastAlert 2 версии 2.0 или выше.
  • API-токен команды из раздела Токены.

Эндпоинт

POST https://sereno.systems/api/v1/alerts/create?source=elastalert2

Настройка правила

ElastAlert 2 поддерживает два типа HTTP-оповещений: http_post (унаследован от ElastAlert) и http_post2 (новый, с Jinja2-шаблонами). Для интеграции с Sereno OnCall используйте http_post — он позволяет явно задать нужную структуру payload через http_post_payload.

В файле правила (например, my_rule.yaml) укажите тип оповещения http_post и параметры подключения:

name: My Sereno Alert Rule
type: any

# Подключение к Elasticsearch
es_host: localhost
es_port: 9200
index: logs-*

# Фильтр
filter:
  - term:
      level: error

# Оповещение через http_post
alert: http_post

http_post_url: 'https://sereno.systems/api/v1/alerts/create?source=elastalert2'
http_post_headers:
  Authorization: 'Bearer <токен>'
  Content-Type: 'application/json'

http_post_payload:
  rule_name: '%(name)s'
  alert_time: '%(alert_time)s'
  num_matches: '%(num_matches)s'
  alert_info:
    type: '%(type)s'
  matches: '%(matches)s'

http_post_all_values: false

Формат payload

Sereno OnCall ожидает следующую структуру:

{
  "rule_name": "My Alert Rule",
  "alert_time": "2026-01-01T12:00:00Z",
  "num_matches": 42,
  "alert_info": {
    "type": "RESOLVED"
  },
  "matches": [
    {
      "host": "web-01",
      "service": "nginx",
      "message": "Connection refused",
      "status": "error"
    }
  ]
}

Отличия от ElastAlert

ПараметрElastAlertElastAlert 2
?source=elastalertelastalert2
Число совпаденийnum_hitsnum_matches
Поле match_timeестьнет

Поля из каждого объекта matches, перечисленные ниже, попадают в лейблы алерта; остальные — в аннотации:

action, count, endpoint, host, ip, latency, service, status, type, user

Для отладки запустите ElastAlert 2 с флагом --debug — в консоли будут выведены тела отправляемых запросов.

Документация ElastAlert 2