Instalação e configuração do Alert Manager para envio de e-mail

Seguindo nossa serie de artigos, hoje falaremos de como configurar condições para que possamos receber os alarmes no e-mail referente o monitoramento do Prometheus.

Primeiramente, vamos entender como é fluxo sobre a questão de alarmes no Prometheus:

Na arquitetura do Prometheus, as regras de alarmes são as rules, dessa forma, devemos primeiramente configurar as mesmas para que aconteça o alerta baseado em alguma condição.

1) No arquivo de configuração do Prometheus, temos o rule_files, o arquivo é carregado seguindo a ordem global do evaluation_interval, vamos criar um arquivo e informar o mesmo na configuração do prometheus.yml:

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "/etc/prometheus/alert.rules"
  # - "first_rules.yml"
  # - "second_rules.yml"

2) Adicione o conteúdo abaixo no arquivo /etc/prometheus/alert.rules, salve e restart no prometheus:

groups:
   - name: node_alerts
     rules:
     - alert: InstanceDown
       expr: up{job="node_exporter"} == 0
       for: 1m
       labels:
         severity: critical
       annotations:
         summary: Host {{ $labels.instance }} of {{ $labels.job }}

 

3) Após o restart, vamos simular a queda de um host para validar o alerta, vou parar o serviço do Node Exporter em um servidor:

Valor recebido= 0 (Down)

 

4) Vamos validar esse alerta no Prometheus, acessando o Prometheus na aba Alerts:

Aproveitando que estamos nessa assunto, vamos explicar os status, como no exemplo, FIRING.

Inativo: O alerta não está ativo.

Pending: Atendeu a expressão, mas aguarda o tempo configurado para alarmar.

Firing: Atendeu a expressão e o ambiente está alarmando.

 

5) Pronto, a regra para expressão de servidores offline está validada, agora vamos iniciar para a configuração de envio de e-mail, para isso, precisamos do Alert Manager, vamos utilizar um outro servidor para realizar a configuração do Alert Manager.

wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz
tar -xzvf alert*

 

6) Criar usuários e diretórios:

useradd --no-create-home --shell /bin/false alertmanager
mkdir /etc/alertmanager
mkdir /etc/alertmanager/template
mkdir -p /var/lib/alertmanager/data

 

7) Criar arquivo de configuração do Alert Manager e aplicar permissões:

touch /etc/alertmanager/alertmanager.yml
chown -R alertmanager:alertmanager /etc/alertmanager
chown -R alertmanager:alertmanager /var/lib/alertmanager

 

8) Permissões e copia de arquivos, acesse o diretório que extraiu os arquivos:

cp alertmanager /usr/local/bin/
cp amtool /usr/local/bin/

chown alertmanager:alertmanager /usr/local/bin/alertmanager
chown alertmanager:alertmanager /usr/local/bin/amtool

 

9) Criar arquivo de inicialização:

[Unit]
Description=Prometheus Alertmanager Service
Wants=network-online.target
After=network.target

[Service]
User=alertmanager
Group=alertmanager
Type=simple
ExecStart=/usr/local/bin/alertmanager \
    --config.file /etc/alertmanager/alertmanager.yml \
    --storage.path /var/lib/alertmanager/data
Restart=always

[Install]
WantedBy=multi-user.target

 

10) Inicializar e restart:

systemctl daemon-reload
systemctl enable alertmanager
systemctl start alertmanager

 

11) Adicionar informações do alert manager no servidor do Prometheus, acesse o arquivo /etc/prometheus/prometheus.yml e adicione o conteúdo abaixo:

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - 172.31.57.250:9093

 

12) Voltando no servidor do Prometheus, vamos configurar para que o Alert Manager envie um e-mail baseado no alerta recebido do Prometheus, vamos criar o arquivo /etc/alertmanager/alertmanager.yml e inserir o conteúdo abaixo:

global:
  smtp_smarthost: 'smtp.gmail.com:587'
  smtp_from: 'SEU-MAIL'
  smtp_auth_identity: 'SEU-EMAIL'
  smtp_require_tls: true

templates:
- '/etc/alertmanager/template/*.tmpl'

route:
  repeat_interval: 12h
  receiver: operations-team

receivers:
- name: 'operations-team'
  email_configs:
  - to: 'PARA-QUEM'
    auth_username: 'SEU-EMAIL'
    auth_password: 'INSERIRPASSWORD-APP'
    send_resolved: true
  • Você deve criar um aplicativo no Gmail, clicando aqui, na parte de segurança de aplicativo e cria o app Prometheus.
  • A configuração do repeat_interval vai análisar a condição de 12 em 12 horas, caso esteja alarmando, vai repetir o envio de e-mail.

 

13) Simulando um alerta no e-mail:

Deixe uma resposta