Конфигурация папки правил Elastalert2 не работает

Сейчас я использую Elastalert2, чтобы получать уведомления из журнала ошибок в slack.

Нам нужно получать алармы всех сервисных журналов через наши десятки правил.

Docker собирает ElastAlert2 и развертывает его на Argocd.

Но, есть проблема, не работает конфиг rules_folder

В config.yaml есть rules_folder

       rules_folder: /home/elastalert/rules

и это пример Dockerfile

      FROM python:3.9.13-slim

# installation
RUN pip3 install --upgrade pip \
  && pip3 install cryptography elastalert2

ENV LANG="en_US.UTF-8"

# add configuration and alarm
RUN mkdir -p /home/elastalert
WORKDIR /home/elastalert

ADD ./config.yaml /home/elastalert
COPY ./rules /home/elastalert/rules

и это команда запуска

          command: [ "/bin/sh", "-c" ]
        args:
          - >-
            echo "Finda Elastalert is started!!" &&
            elastalert-create-index &&
            elastalert --verbose --config config.yaml
            
            ...

но возникает ошибка типа... [ошибка][1]

Я думаю, что файлы правил нельзя импортировать как аргументы. Другими словами, кажется, что rules_folder не применяется

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

       elastalert --verbose --config config.yaml --rule ./rules/example/example.yaml

Однако он может выполнять только одно правило.

У нас есть десятки правил.

В чем проблема?

1 ответ

Решать.

Не храните пустой yaml в файле rules/sub.

Проблема заключалась в том, что я закомментировал все файлы yaml, кроме тестового правила yaml для операции test.

Заменив закомментированный файл yaml другим расширением, например .text.

Теперь elastalert распознает и использует все правила.

Другие вопросы по тегам