Instalação

Uma vez já tendo um cluster Elasticsearch junto com seus componentes de monitoramento configurados e rodando, o ElastAlert2 será a cereja do bolo. A missão dele será apenas conectar nos índices dos respectivos serviços de monitoramento para avaliar as rules de alerta.

Existem três formas de rodar o ElastAlert: como uma aplicação python normal, como um container Docker, ou como um pod no Kubernetes (preferencialmente através de um chart Helm).

Rodando como uma aplicação python normal

git clone https://github.com/jertel/elastalert2.git
pip install "setuptools>=11.3"
python setup.py install

Ou via:

pip install elastalert2

Rodando como um container Docker

Partindo da premissa que no diretório corrente temos o arquivo elastalert.yaml com as configurações globais (e de conexão com o elasticsearch), e o diretório rules com os arquivos *.yaml de rules de alerta, podemos subir um container Docker com os seguintes mapeamentos:

docker run -d --name elastalert \
  -v $(pwd)/elastalert.yaml:/opt/elastalert/config.yaml \
  -v $(pwd)/rules:/opt/elastalert/rules \
jertel/elastalert2
docker logs -f elastalert

Rodando como um deployment no Kubernetes

O procedimento tradicional é este:

helm repo add elastalert2 https://jertel.github.io/elastalert2/
helm install elastalert2 elastalert2/elastalert2

Mas para passar uma configuração personalizada e com um conjunto de rules diferentes obtenha o values.yaml, altere as configurações do elasticsearch, e em "rules: {}" adicione o YAML das suas rules. Para enriquecer seu arquivo values.yaml e tornar a execução deste chart Helm mais "pipenelizável", pode se usar da seguinte maneira:

helm repo add elastalert2 https://jertel.github.io/elastalert2/

envsubst < ./values.yaml | helm upgrade --install \
  --debug \
  --atomic elastalert2 \
  elastalert2/elastalert2 \
  -n elastalert -f -

Last updated