Prometheus: Configuração do Alert Manager

Esta documentação faz parte do guia Alertas. Consulte o guia completo aqui: Como funcionam os alertas do Prometheus e como configurá-los.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza uma plataforma Prometheus cloud totalmente gerida, concebida para garantir fiabilidade e simplicidade:

  • O Alert Manager está integrado, permitindo-lhe encaminhar alertas diretamente para o Slack, Mattermost, PagerDuty e outros destinos populares.
  • Um servidor de email dedicado permite-lhe enviar alertas por email ilimitados sem necessidade de configuração adicional.
  • O Blackbox está incluído, possibilitando a monitorização de protocolos como HTTP, ICMP, TCP e outros, para uma supervisão abrangente.
  • Configure rapidamente a sua instância através do editor online de ficheiros de configuração. Não é necessário editar YAML manualmente.
  • Aplique atualizações com um único clique. A Stackhero gere todo o processo de atualização por si, minimizando o tempo de indisponibilidade e a intervenção manual.
  • Elevado desempenho e segurança reforçada estão garantidos, graças à sua infraestrutura privada e dedicada.

Fique operacional em cerca de 5 minutos. A Stackhero trata da configuração para que se possa concentrar na monitorização, não na manutenção. Experimente o Prometheus cloud hosting da Stackhero para simplificar os seus fluxos de trabalho de monitorização e alertas.

Para configurar o Alert Manager, edite o ficheiro alert-manager.yml. No seu painel Stackhero, selecione o seu serviço Prometheus e clique em "Configuração do Alert Manager".

Abaixo, apresentamos o básico. Para mais detalhes, consulte a documentação oficial.

O primeiro passo é configurar os receivers. Cada receiver é um conjunto de integrações de notificação (como email, Slack, etc.) identificado por um name único.

Por exemplo, pode criar um receiver chamado "critical_alert" para notificações acionadas por alertas com gravidade crítica. Alternativamente, pode criar um receiver como "devops_team" para direcionar alertas para a sua equipa DevOps.

Definir um receiver com o nome "critical_alert" sozinho não enviará alertas. A associação entre alertas e o receiver é feita na configuração das routes descrita abaixo.

Uma vez definido um receiver, precisará configurar as integrações de notificação correspondentes. Estas podem incluir emails, notificações Slack/Mattermost, PagerDuty, Opsgenie, Webhook, entre outros.

Abaixo está um exemplo de um receiver chamado "critical_alert" que envia um email para dois utilizadores e uma mensagem Slack para o canal #alerts:

receivers:
- name: "critical_alert"

  # Enviar alertas críticos por email
  email_configs:
    - send_resolved: true
      to: "[email protected]"

  # Enviar alertas críticos para Slack ou Mattermost
  slack_configs:
    - send_resolved: true
      api_url: "<your Slack or Mattermost API URL>"
      channel: "#alerts"
      title: "{{ range .Alerts }}{{ .Annotations.summary }}\n{{ end }}"
      text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}"

Pode definir múltiplos receivers para lidar com diferentes tipos de alertas. Por exemplo, pode ter um para alertas críticos, outro para alertas de erro, e outro para outros tipos de alertas.

As instâncias de Stackhero para Prometheus incluem um servidor de email dedicado e privado que lhe permite enviar um número ilimitado de alertas por email sem custo adicional.

Depois de configurar os seus receivers, precisa configurar as routes. As routes dizem ao Alert Manager como lidar com os alertas recebidos do Prometheus e para onde enviá-los (tipicamente para um dos seus receivers pré-configurados).

Abaixo está um exemplo básico que direciona alertas com uma gravidade de "critical" para o receiver chamado "critical_alert":

route:
  routes:
    - match:
        severity: "critical"
      receiver: "critical_alert"

Pré-configurámos algumas routes no ficheiro alert-manager.yml fornecido com a sua instância Stackhero para Prometheus. Para começar a receber alertas, basta atualizar as secções email_configs e/ou slack_configs com os seus detalhes de notificação.