Конфигурация папки правил 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 распознает и использует все правила.