Saltar al contenido

¿Cómo silenciar Prometheus Alertmanager usando archivos de configuración?

Siéntete libre de compartir nuestros tutoriales y códigos con tus amigos, necesitamos tu ayuda para hacer crecer esta comunidad.

Solución:

Una opción es enrutar las alertas que desea silenciar a un “null” receptor. En alertmanager.yaml:

route:
  # Other settings...
  group_wait: 0s
  group_interval: 1m
  repeat_interval: 1h

  # Default receiver.
  receiver: "null"

  routes:
  # continue defaults to false, so the first match will end routing.
  - match:
      # This was previously named DeadMansSwitch
      alertname: Watchdog
    receiver: "null"
  - match:
      alertname: CPUThrottlingHigh
    receiver: "null"
  - receiver: "regular_alert_receiver"

receivers:
  - name: "null"
  - name: regular_alert_receiver
    

Bueno, logré que funcionara configurando una inhibi_rule hackish:

inhibit_rules:
- target_match:
     alertname: 'CPUThrottlingHigh'
  source_match:
     alertname: 'DeadMansSwitch'
  equal: ['prometheus']

los DeadMansSwitch es, por diseño, una alerta “siempre activada” enviada con el operador Prometheus, y el prometheus etiqueta es una etiqueta común para todas las alertas, por lo que la CPUThrottlingHigh termina inhibido para siempre. Apesta, pero funciona.

Ventajas:

  • Esto se puede hacer a través del archivo de configuración (usando el alertmanager.config parámetro del timón).
  • los CPUThrottlingHigh la alerta todavía está presente en Prometheus para su análisis.
  • los CPUThrottlingHigh la alerta solo aparece en la interfaz de usuario de Alertmanager si la casilla “Inhibido” está marcada.
  • No hay notificaciones molestas en mis receptores.

Contras:

  • Cualquier cambio en DeadMansSwitch o el prometheus el diseño de la etiqueta romperá esto (lo que solo implica que las alertas se activen nuevamente).

Actualizar:Mis contras se hicieron reales…

los DeadMansSwitch altertname acaba de cambiar en el operador estable/prometeo 4.0.0. Si usa esta versión (o superior), el nuevo nombre de alerta es Watchdog.

Dudo que exista una manera de silenciar las alertas a través de la configuración (aparte de enrutar dichas alertas a un /dev/null receptor, es decir, uno sin correo electrónico ni ningún otro mecanismo de notificación configurado, pero la alerta aún aparecería en la interfaz de usuario de Alertmanager).

Aparentemente puedes usar la herramienta de línea de comando amtool que viene con alertmanager para agregar un silencio (aunque no puedo ver una manera de establecer un tiempo de vencimiento para el silencio).

O puede usar la API directamente (aunque no está documentada y en teoría puede cambiar). De acuerdo con este hilo de usuarios de Prometheus, esto debería funcionar:

curl https://alertmanager/api/v1/silences -d '
      "matchers": [
        
          "name": "alername1",
          "value": ".*",
          "isRegex": true
        
      ],
      "startsAt": "2018-10-25T22:12:33.533330795Z",
      "endsAt": "2018-10-25T23:11:44.603Z",
      "createdBy": "api",
      "comment": "Silence",
      "status": 
        "state": "active"
      

'

Acuérdate de que tienes la capacidad de glosar si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *