Prometheus: Alertas
Cómo funcionan las alertas de Prometheus y cómo configurarlas
👋 ¡Bienvenido a la documentación de Stackhero!
Stackhero ofrece una solución nube de Prometheus lista para usar que proporciona una serie de beneficios, incluyendo:
Alert Managerincluido para enviar alertas aSlack,Mattermost,PagerDuty, etc.- Servidor de correo electrónico dedicado para enviar alertas de correo electrónico ilimitadas.
Blackboxpara sondearHTTP,ICMP,TCP, y más.- Configuración fácil con un editor de archivos de configuración en línea.
- Actualizaciones sin esfuerzo con solo un clic.
- Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.
Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de alojamiento en la nube de Prometheus de Stackhero!
Introducción a las alertas de Prometheus
Prometheus puede analizar sus métricas y activar alertas basadas en reglas que usted define. Con Stackhero para Prometheus, las alertas se procesan en dos etapas. Primero, se evalúan las reglas de alerta de Prometheus y luego Alert Manager toma el control.
Todo está preinstalado y configurado con Stackhero para Prometheus, por lo que solo necesita realizar una configuración mínima, como agregar su dirección de correo electrónico, para comenzar a recibir alertas.
Vista general de Stackhero para Prometheus
Introducción a las reglas de alerta de Prometheus
Cuando Prometheus recupera métricas, las evalúa en función de las reglas especificadas en el archivo rules-alert.yml. Estas reglas de alerta definen umbrales y ventanas de tiempo para activar alertas basadas en las métricas recopiladas.
Por ejemplo, se puede activar una alerta si el uso del disco supera el 80%. Además, se pueden configurar reglas para predecir condiciones futuras y enviar una alerta si se estima que el espacio en disco se llenará completamente en las próximas 24 horas.
Otro caso de uso común implica detectar comportamientos inusuales. Por ejemplo, si hay un aumento repentino en el uso del ancho de banda de la red, se puede activar una alerta para ayudar a detectar posibles ataques de denegación de servicio distribuido (DDoS) o intentos de exfiltración de datos.
Las reglas de alerta de Prometheus están incluidas directamente en el servidor Prometheus.
Introducción a Alert Manager
Alert Manager recibe las alertas que las reglas de alerta de Prometheus han activado. Deduplica las alertas, las agrupa y luego las reenvía a través de varios canales de notificación como correo electrónico, Slack, Mattermost, PagerDuty, y más. Su archivo de configuración es alert-manager.yml.
Por ejemplo, si ocurre una ralentización del servidor, las reglas de alerta de Prometheus pueden activar alertas separadas para el aumento de carga y el uso de CPU. Alert Manager recibe estas alertas, las agrupa ya que se relacionan con el mismo servidor, y envía una notificación consolidada al destinatario o equipo adecuado según su configuración.
Si la ralentización continúa, Prometheus seguirá enviando alertas pero Alert Manager suprimirá los mensajes duplicados durante un período especificado para evitar inundar a su equipo con alertas redundantes.
También puede silenciar o inhibir completamente las alertas si es necesario. Una vez que se resuelva el problema subyacente, se enviará un mensaje de recuperación para notificar a sus equipos.
Este ejemplo ilustra un escenario común, pero puede personalizar completamente la configuración para satisfacer sus requisitos específicos.
advertencia
Alert Managerno está incluido por defecto con Prometheus. Para ahorrarle tiempo y simplificar el proceso, hemos integrado y configuradoAlert Manageren Stackhero para Prometheus para que pueda enviar alertas en solo unos minutos, con un esfuerzo mínimo.
Configuración de las reglas de alerta de Prometheus
Puede ajustar las reglas de alerta de Prometheus editando el archivo rules-alert.yml. Para hacerlo, acceda a su panel de Stackhero, seleccione su servicio de Prometheus y haga clic en "Configuración de reglas de alerta de Prometheus".
Ya hemos añadido algunas reglas de alerta predeterminadas a su instancia de Stackhero para Prometheus, por lo que generalmente no necesitará modificar el archivo rules-alert.yml a menos que se requiera personalización.
A continuación se muestra un ejemplo de una alerta que se activa si el uso del disco supera el 90%:
- alert: "HostOutOfDiskSpace"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host out of disk space (instance {{ $labels.instance }})"
description: "Disk is almost full (< 10% left)"
value: "{{ $value }}"
Aquí hay otro ejemplo que predice una posible saturación del espacio en disco dentro de las próximas 24 horas:
- alert: "HostDiskWillFillIn24Hours"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) predict_linear(node_filesystem_avail_bytes{fstype!~"tmpfs"}[1h], 24 * 3600) < 0 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host disk will fill in 24 hours (instance {{ $labels.instance }})"
description: "Filesystem is predicted to run out of space within the next 24 hours at the current write rate"
value: "{{ $value }}"
Puede encontrar muchos ejemplos adicionales de reglas de alerta en el sitio web Awesome Prometheus Alerts.
Configuración de Alert Manager
Para configurar Alert Manager, edite el archivo alert-manager.yml. En su panel de Stackhero, seleccione su servicio de Prometheus y luego haga clic en "Configuración de Alert Manager".
A continuación, presentamos lo básico. Para más detalles, consulte la documentación oficial.
Configuración de Alert Manager: los receptores
El primer paso es configurar los receivers. Cada receiver es un conjunto de integraciones de notificación (como correo electrónico, Slack, etc.) identificado por un name único.
Por ejemplo, podría crear un receptor llamado "critical_alert" para notificaciones activadas por alertas con una gravedad crítica. Alternativamente, podría crear un receptor como "devops_team" para dirigir alertas a su equipo DevOps.
Establecer un
receivercon el nombre "critical_alert" por sí solo no enviará alertas. La asociación entre alertas y el receptor se realiza en la configuración deroutesdescrita a continuación.
Una vez definido un receptor, deberá configurar las integraciones de notificación correspondientes. Estas podrían incluir correos electrónicos, notificaciones de Slack/Mattermost, PagerDuty, Opsgenie, Webhook, y más.
A continuación se muestra un ejemplo de un receiver llamado "critical_alert" que envía un correo electrónico a dos usuarios y un mensaje de Slack al canal #alerts:
receivers:
- name: "critical_alert"
# Enviar alertas críticas por correo electrónico
email_configs:
- send_resolved: true
to: "user@mycompany.com"
# Enviar alertas críticas a Slack o 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 }}"
Puede definir múltiples receptores para manejar diferentes tipos de alertas. Por ejemplo, podría tener uno para alertas críticas, otro para alertas de error y otro para otros tipos de alertas.
Las instancias de Stackhero para Prometheus incluyen un servidor de correo electrónico dedicado y privado que le permite enviar un número ilimitado de alertas por correo electrónico sin costo adicional.
Configuración de Alert Manager: las rutas
Después de configurar sus receptores, debe configurar las routes. Las rutas indican a Alert Manager cómo manejar las alertas entrantes de Prometheus y dónde enviarlas (generalmente a uno de sus receptores preconfigurados).
A continuación se muestra un ejemplo básico que dirige las alertas con una gravedad de "critical" al receptor llamado "critical_alert":
route:
routes:
- match:
severity: "critical"
receiver: "critical_alert"
Hemos preconfigurado algunas rutas en el archivo
alert-manager.ymlproporcionado con su instancia de Stackhero para Prometheus. Para comenzar a recibir alertas, simplemente actualice las seccionesemail_configsy/oslack_configscon sus detalles de notificación.