Prometeo - receptor no definido \"null\" utilizado en la ruta

¿Por qué me usan null receptor en la ruta? Comentando la ruta relacionada con null todavía produce el mismo error.

¿Alguna idea de cómo resolver esto? ¿El config parece correcto? Funcionó ayer pero lo borré todo e intenté reinstalar y tengo este error.

failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route

¿Cómo puedo tener un correo electrónico separado para cada alerta? Cuando funciona generalmente envía una alerta incrustada. ¿Puedo desactivar la sección de ruta y tener sólo receptores? ¿Eso enviaría alertas por separado? group_by: ['...'] todavía envía por grupo ..

  config:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 30m
      receiver: 'null'
      routes:
      - match:
          alertname: Watchdog
        receiver: 'null'
    receivers:
    - name: 'null'
    route:
      group_by: ['...']
      receiver: 'email-alert'
    receivers:
    - name: 'email-alert'
      email_configs:
      - to: [email protected]
        from: [email protected]
        smarthost: postfix.test-internal:25
        require_tls: false

Aquí están las entradas de registro:

level=info ts=2020-12-21T03:17:54.675369726Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=error ts=2020-12-21T03:17:54.678077463Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"
level=info ts=2020-12-21T03:17:57.297131904Z caller=operator.go:661 component=alertmanageroperator msg="sync alertmanager" key=monitoring/prometheus-kube-prometheus-alertmanager
level=info ts=2020-12-21T03:17:57.29721675Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=error ts=2020-12-21T03:17:57.301610335Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"
level=info ts=2020-12-21T03:17:59.906899712Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=info ts=2020-12-21T03:17:59.909936845Z caller=operator.go:661 component=alertmanageroperator msg="sync alertmanager" key=monitoring/prometheus-kube-prometheus-alertmanager
level=error ts=2020-12-21T03:17:59.915494013Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"

Pregunta hecha hace 3 años, 5 meses, 2 días - Por quantumcoder403a


3 Respuestas:

  • En YAML, null y "null" No son lo mismo.

    • null: representa valor NULL
    • "null": representa una cadena igual a "null".

    Trate de quitar los qoutes:

          routes:
          - match:
              alertname: Watchdog
            receiver: null
        receivers:
        - name: null
    

    Respondida el Dec 21, 2020 a las 03:34 - por csharpsorcerer

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás viendo está relacionado con el uso de un receptor llamado "null" en la configuración de Alertmanager. El problema es que en la definición de la ruta estás asignando el receptor "null" pero no estás definiendo realmente qué acción debe realizar ese receptor.

    Para resolver este problema, puedes eliminar la definición del receptor "null" y modificar la configuración de la ruta para apuntar directamente al receptor de correo electrónico que deseas usar. Aquí tienes una sugerencia de cómo podrías ajustar tu configuración:

    yaml
    config:
      global:
        resolve_timeout: 5m
      route:
        group_by: ['job']
        group_wait: 30s
        group_interval: 5m
        repeat_interval: 30m
    
    receivers:
    
    • name: 'email-alert'
    email_configs:
    • to: [email protected]
    from: [email protected] smarthost: postfix.test-internal:25 require_tls: false route: group_by: ['job'] receiver: 'email-alert'

    En esta configuración, se ha eliminado el receptor "null" y la ruta apunta directamente al receptor de correo electrónico "email-alert". Esto debería permitir que las alertas se envíen correctamente por correo electrónico.

    Por favor, inténtalo con esta configuración y revisa si el problema persiste. Si necesitas más ayuda, házmelo saber.

    Respondida el Dec 22, 2020 a las 03:29 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Parece que estás intentando utilizar el operador Prometheus con Alertmanager. Basado en los registros de error que proporcionaste, parece que hay un problema con la configuración de tu Alertmanager. Específicamente, el error menciona que hay un receptor "nulo" no definido que se utiliza en la ruta.

    Aquí tienes algunas sugerencias para resolver este problema:

    1. Verifica la configuración de tu Alertmanager:

    Revisa la sección route de tu configuración de Alertmanager. Debe haber un receptor definido para cada ruta. Asegúrate de que el nombre del receptor coincida con el nombre de un receptor definido en la sección receivers.

    2. Elimina el receptor "nulo":

    Si no necesitas un receptor "nulo", puedes eliminarlo de la sección route. Si necesitas un receptor "nulo", asegúrate de definirlo correctamente en la sección receivers.

    3. Separa las alertas por correo electrónico:

    Para enviar alertas por correo electrónico para cada alerta, puedes utilizar múltiples rutas. Crea una ruta para cada correo electrónico que desees utilizar. Asigna cada ruta a un receptor de correo electrónico específico.

    4. Deshabilitar la agrupación:

    Si no deseas agrupar las alertas, puedes deshabilitar la agrupación configurando group_by: como una lista vacía ([]) en la sección route.

    Aquí tienes una configuración de ejemplo que debería enviar alertas por correo electrónico para cada alerta:

    yaml
    global:
      resolve_timeout: 5m
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 30m
      routes:
         
    • match:
    alertname: Watchdog receiver: email-alert-1
    • match:
    alertname: AnotherAlert receiver: email-alert-2 receivers:
    • name: email-alert-1
    email_configs: from: [email protected] smarthost: postfix.test-internal:25 require_tls: false
    • name: email-alert-2
    email_configs: from: [email protected] smarthost: postfix.test-internal:25 require_tls: false

    Espero que esto ayude. Si sigues teniendo problemas, no dudes en proporcionar más detalles o el archivo de configuración completo para que pueda ayudarte mejor.

    Respondida el Dec 22, 2020 a las 03:42 - por Gemini

    Votos positivos: 0 | Votos negativos: 0