Источники#

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

alertmanager#

Источник alertmanager позволяет обращаться к точкам доступа API системы мониторинга Prometheus Alertmanager.

Источник предоставляет следующие настройки:

  • host – IP-адрес сетевого интерфейса, на котором источник ожидает входящие запросы веб-перехватчика (webhook) Alertmanager.

    Значение по умолчанию: localhost.

  • port – номер порта веб-перехватчика Alertmanager.

    Значение по умолчанию: 5000.

  • data_alerts_path – выражение в формате JSONPath для поиска данных для оповещения.

    Значение по умолчанию: alerts.

  • data_host_path – JSONPath внутри данных оповещения для поиска узла, являющегося источником данных.

    Значение по умолчанию: labels.instance.

  • data_path_separator – разделитель, используемый при разборе data_alerts_path и data_host_path.

    Значение по умолчанию: ..

    Пример использования data_path_separator

    Допустим, Alertmanager отправляет следующий JSON:

    {
      "alerts": [
        {
          "labels": {
            "instance": "server1.example.com",
            "severity": "critical"
          },
          "annotations": {
            "summary": "Disk space is low"
          }
        }
      ]
    }
    

    Если data_alerts_path = "alerts" и data_host_path = "labels.instance", а data_path_separator = ".", то система извлечет узел server1.example.com из пути alerts[0].labels.instance. Если бы data_path_separator был, например, /, то тот же путь записывался бы как alerts/0/labels/instance.

    В data_path_separator можно задать любой символ, который будет использоваться для разделения путей внутри JSON:

    data_alerts_path: "alerts"
    data_host_path: "labels/instance"
    data_path_separator: "/"
    
  • skip_original_data – управляет добавлением исходных данных в очередь.

    Возможные значения:

    • true – в очередь добавляются только данные оповещения.

    • false – в очередь последовательно добавляются как полученные исходные данные, так и каждый разобранный элемент оповещения.

    Значение по умолчанию: false.

aws_cloudtrail#

Источник aws_cloudtrail позволяет получать события из журнала AWS CloudTrail. Источник поддерживает все способы аутентификации, доступные в библиотеке boto3.

Источник предоставляет следующие настройки:

  • access_key – идентификатор ключа доступа AWS.

  • secret_key – секретный ключ доступа AWS.

  • session_token – токен сессии STS для использования с временными учетными данными.

  • endpoint_url – URL точки доступа, используемой вместо стандартных точек доступа AWS.

  • region – регион AWS.

  • delay_seconds – задержка (в секундах) между опросами.

    Значение по умолчанию: 10.

  • lookup_attributes – список атрибутов для фильтрации возвращаемых событий. Каждый атрибут – словарь с ключами AttributeKey (атрибут, по которому выполняется фильтрация) и AttributeValue (значение атрибута).

  • event_category – категория возвращаемых событий, например insight.

aws_sqs_queue#

Источник aws_sqs_queue позволяет получать события из очереди AWS SQS. Источник поддерживает все способы аутентификации, доступные в библиотеке boto3.

Источник предоставляет следующие настройки:

  • access_key – идентификатор ключа доступа AWS.

  • secret_key – секретный ключ доступа AWS.

  • session_token – токен сессии STS для использования с временными учетными данными.

  • endpoint_url – URL точки доступа, используемой вместо стандартных точек доступа AWS.

  • queue_owner_aws_account_id – идентификатор учетной записи AWS, создавшей очередь. Указывается только при обращении к очереди, принадлежащей другой учетной записи AWS.

  • region – регион AWS.

  • name – название очереди.

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

  • delay_seconds – время ожидания сообщений при длинном опросе (long polling) SQS в секундах. Значение 0 отключает длинный опрос.

    Значение по умолчанию: 2.

  • max_number_of_messages – максимальное количество возвращаемых сообщений (допустимые значения – от 1 до 10).

    Значение по умолчанию: 1.

azure_service_bus#

Источник azure_service_bus позволяет получать события из службы Azure Service Bus.

Источник предоставляет следующие настройки:

  • conn_str – строка подключения к Azure Service Bus.

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

  • queue_name – название очереди сообщений.

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

  • logging_enable – запись в журналы.

    • true – включено;

    • false – выключено.

    Значение по умолчанию: true.

file#

Источник file загружает факты Ansible из файлов YAML при запуске и при изменении содержимого файлов. Список файлов укажите в настройке files.

file_watch#

Источник file_watch отслеживает изменения в файловой системе.

Источник предоставляет следующие настройки:

  • path – каталог для наблюдения за изменениями.

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

  • ignore_regexes – список регулярных выражений для игнорирования изменений. Файлы и каталоги, имена которых удовлетворяют указанному выражению, не отслеживаются.

  • recursive – отслеживание изменений не только в указанном каталоге, но и в его подкаталогах.

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

generic#

Источник generic позволяет вставлять в очередь событий произвольные данные. Как правило, он используется при разработке и тестировании.

Источник предоставляет следующие настройки:

  • payload – массив событий для вставки в очередь.

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

    Примечание

    Вместо payload события можно загрузить из файла с помощью параметра payload_file.

  • payload_file – путь к файлу YAML с массивом событий (альтернатива payload).

  • randomize – перемешивание событий в payload.

    Значение по умолчанию: false.

  • display – вывод данных событий в стандартный поток вывода (stdout).

    Значение по умолчанию: false.

  • timestamp – добавление к событию отметки времени.

    Значение по умолчанию: false.

  • time_format – формат отметки времени.

    Возможные значения:

    • local – местное время;

    • iso8601 – формат ISO 8601;

    • epoch – время Unix (число секунд).

    Значение по умолчанию: local.

  • create_index – название ключа, в который для каждого события записывается его индекс, начиная с 0.

    Значение по умолчанию: пустая строка (индекс не добавляется).

  • startup_delay – задержка (в секундах) перед вставкой событий в очередь.

    Значение по умолчанию: 0.

  • event_delay – задержка (в секундах) перед вставкой следующего события из payload.

    Значение по умолчанию: 0.

  • repeat_delay – задержка (в секундах) перед вставкой повторяемого события из payload.

    Значение по умолчанию: 0.

  • loop_delay – задержка (в секундах) перед вставкой следующего набора событий.

    Значение по умолчанию: 0.

  • shutdown_after – задержка (в секундах) перед завершением работы источника.

    Значение по умолчанию: 0.

  • loop_count – количество повторов всего набора событий из payload.

    Значение по умолчанию: 1.

  • repeat_count – количество повторов каждого отдельного события из payload.

    Значение по умолчанию: 1.

  • blob_size – размер (в байтах) произвольного блока данных, добавляемого в каждое событие. Значение 0 отключает добавление блока.

    Значение по умолчанию: 0.

  • final_payload – дополнительное событие, отправляемое после всех остальных, например для инициирования завершения работы свода правил.

    Значение по умолчанию: null.

  • check_env_vars – словарь переменных окружения и их ожидаемых значений. Перед генерацией событий источник проверяет, что каждая указанная переменная установлена и имеет заданное значение; иначе работа завершается с ошибкой.

    Значение по умолчанию: null.

journald#

Источник journald отслеживает записи журнала systemd.

Источник предоставляет следующие настройки:

  • match – строка для отбора записей журнала в формате ПОЛЕ=значение (см. поля журнала systemd), например PRIORITY=6. Специальное значение ALL возвращает все записи.

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

  • delay – задержка (в секундах) между записями.

    Значение по умолчанию: 0.

kafka#

Источник kafka позволяет получать события из брокера Kafka.

Источник предоставляет следующие настройки:

  • host – IP-адрес сервера Kafka.

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

  • port – порт сервера Kafka.

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

  • cafile – путь к файлу сертификата, используемого для подписи сертификатов брокеров Kafka.

  • certfile – путь к файлу клиентского сертификата, содержащему сертификат клиента и сертификаты CA, необходимые для подтверждения подлинности.

  • keyfile – путь к файлу приватного ключа клиента.

  • password – пароль для загрузки цепочки сертификатов.

  • check_hostname – включение проверки имени узла для SSL.

    Значение по умолчанию: true.

  • verify_mode – режим проверки сертификатов других участников.

    Возможные значения:

    • CERT_NONE – проверка сертификатов отключена. Соединение устанавливается без проверки подлинности сертификата сервера.

    • CERT_OPTIONAL – если сервер предоставляет сертификат, то он будет проверен. Если сертификат недействителен или отсутствует, соединение все равно будет установлено.

    • CERT_REQUIRED – сертификат сервера должен быть предоставлен и проверен. Если сертификат отсутствует или недействителен, соединение разрывается.

    Значение по умолчанию: CERT_REQUIRED.

  • encoding – кодировка сообщений.

    Значение по умолчанию: utf-8.

  • topic – название топика.

  • topics – список названий топиков.

  • topic_pattern – шаблон названий топиков в виде регулярного выражения.

    Важно

    Параметры topic, topics и topic_pattern взаимоисключающие – необходимо указать ровно один из них.

  • group_id – идентификатор группы Kafka.

    Значение по умолчанию: null.

  • offset – начальная позиция чтения.

    Возможные значения:

    • latest – контроллер EDA начнет чтение с последнего сообщения.

    • earliest – контроллер EDA начнет чтение с самого раннего сообщения.

    Значение по умолчанию: latest.

  • security_protocol – протокол безопасности для связи с брокерами.

    Возможные значения:

    • PLAINTEXT – незашифрованный протокол для связи с Kafka-брокерами, не обеспечивающий аутентификацию или шифрование данных.

    • SSL – протокол с шифрованием данных с использованием SSL/TLS, обеспечивающий конфиденциальность.

    • SASL_PLAINTEXT – протокол с аутентификацией через SASL, но без шифрования данных.

    • SASL_SSL – протокол с аутентификацией через SASL и шифрованием данных через SSL/TLS, обеспечивающий максимальную безопасность соединения.

    Значение по умолчанию: PLAINTEXT.

  • sasl_mechanism – механизм аутентификации при настройке security_protocol.

    Возможные значения:

    • PLAIN – название учетной записи и пароль передаются в виде обычного текста.

    • GSSAPI – использование Kerberos для централизованного управления доступом.

    • SCRAM-SHA-256 – для защиты паролей используется хеширование по алгоритму SHA-256.

    • SCRAM-SHA-512 – для защиты паролей используется хеширование по алгоритму SHA-512.

    • OAUTHBEARER – использование OAuth 2.0 и токенов доступа для интеграции с внешними системами.

    Значение по умолчанию: PLAIN.

  • sasl_plain_username – название учетной записи для аутентификации SASL PLAIN.

  • sasl_plain_password – пароль для аутентификации SASL PLAIN.

pg_listener#

Источник pg_listener получает события из механизма публикации-подписки PostgreSQL (каналы LISTEN/NOTIFY). Он является приемной стороной для действия pg_notify: если полезная нагрузка превышает 7 КБ, действие pg_notify разбивает ее на части, а источник pg_listener собирает их обратно в единое событие.

Источник предоставляет следующие настройки:

  • dsn – строка подключения (DSN) к PostgreSQL в формате, поддерживаемом psycopg/libpq.

    Обязательным является либо dsn, либо postgres_params.

  • postgres_params – словарь параметров подключения к PostgreSQL в формате, поддерживаемом psycopg/libpq. Если один и тот же параметр задан и в dsn, и в postgres_params, используется значение из postgres_params.

    Обязательным является либо dsn, либо postgres_params.

  • channels – список каналов для прослушивания.

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

range#

Источник range генерирует события с увеличивающимся индексом.

Источник предоставляет следующие настройки:

  • limit – верхний предел диапазона индекса.

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

  • delay – задержка (в секундах) между событиями.

    Значение по умолчанию: 0.

tick#

Источник tick генерирует события с увеличивающимся индексом без завершения.

Источник предоставляет единственную настройку delay, в которой необходимо указать задержку (в секундах) между событиями.

Значение по умолчанию: 1.

url_check#

Источник url_check проверяет URL-адреса и создает события: event.url_check.status = "up" при успехе (код 200) и event.url_check.status = "down" при ошибке.

Источник предоставляет следующие настройки:

  • urls – список URL-адресов для опроса.

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

  • delay – задержка (в секундах) между опросами.

    Значение по умолчанию: 1.

  • verify_ssl – проверка SSL-сертификата.

    Значение по умолчанию: true.

webhook#

Источник webhook получает события через веб-перехватчики. Содержимое, присланное через webhook, доступно в событии через поле payload.

Источник предоставляет следующие настройки:

  • host – IP-адрес сетевого интерфейса, на котором контейнер с источником ожидает входящие соединения.

    Значение по умолчанию: 0.0.0.0 (источник слушает все сетевые интерфейсы).

  • port – порт для прослушивания.

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

  • token – токен аутентификации, ожидаемый от клиента.

  • certfile – путь к файлу сертификата для включения TLS.

  • keyfile – путь к файлу приватного ключа, используемому вместе с certfile.

  • password – пароль для загрузки цепочки сертификатов.

  • cafile – путь к файлу с сертификатами удостоверяющего центра для проверки клиентских сертификатов.

  • capath – путь к каталогу с сертификатами удостоверяющего центра (используется для mTLS).

  • hmac_secret – секретный ключ HMAC для проверки полезной нагрузки клиента.

  • hmac_algo – алгоритм HMAC для вычисления хеша полезной нагрузки.

    Примечание

    Полный список возможных значений определяется используемой версией библиотеки hashlib и хранится в переменной algorithms_available.

    Значение по умолчанию: sha256.

  • hmac_header – заголовок HMAC, отправляемый клиентом с подписью полезной нагрузки.

    Значение по умолчанию: x-hub-signature-256.

  • hmac_format – формат подписи HMAC.

    Возможные значения:

    • hex;

    • base64.

    Значение по умолчанию: hex.