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