Chapitre 3. Configuration des instances externes du gestionnaire d'alerte

La pile de surveillance d'OpenShift Container Platform comprend une instance locale d'Alertmanager qui achemine les alertes de Prometheus. Vous pouvez ajouter des instances Alertmanager externes en configurant la carte de configuration cluster-monitoring-config dans le projet openshift-monitoring ou le projet user-workload-monitoring-config.

Si vous ajoutez la même configuration Alertmanager externe pour plusieurs clusters et désactivez l'instance locale pour chaque cluster, vous pouvez alors gérer le routage des alertes pour plusieurs clusters en utilisant une seule instance Alertmanager externe.

Conditions préalables

  • Vous avez installé l'OpenShift CLI (oc).
  • If you are configuring core OpenShift Container Platform monitoring components in the openshift-monitoring project:

    • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
    • Vous avez créé la carte de configuration cluster-monitoring-config.
  • If you are configuring components that monitor user-defined projects:

    • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin, ou en tant qu'utilisateur ayant le rôle user-workload-monitoring-config-edit dans le projet openshift-user-workload-monitoring.
    • Vous avez créé la carte de configuration user-workload-monitoring-config.

Procédure

  1. Modifiez l'objet ConfigMap.

    • To configure additional Alertmanagers for routing alerts from core OpenShift Container Platform projects:

      1. Modifiez la carte de configuration cluster-monitoring-config dans le projet openshift-monitoring:

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. Ajouter une section additionalAlertmanagerConfigs: sous data/config.yaml/prometheusK8s.
      3. Ajoutez les détails de configuration pour les gestionnaires d'alerte supplémentaires dans cette section :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              additionalAlertmanagerConfigs:
              - <alertmanager_specification>

        Pour <alertmanager_specification>, remplacez l'authentification et les autres détails de configuration pour les instances supplémentaires d'Alertmanager. Les méthodes d'authentification actuellement prises en charge sont le jeton de porteur (bearerToken) et l'authentification TLS du client (tlsConfig). L'exemple de carte de configuration suivant configure un Alertmanager supplémentaire en utilisant un jeton de porteur avec une authentification TLS du client :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              additionalAlertmanagerConfigs:
              - scheme: https
                pathPrefix: /
                timeout: "30s"
                apiVersion: v1
                bearerToken:
                  name: alertmanager-bearer-token
                  key: token
                tlsConfig:
                  key:
                    name: alertmanager-tls
                    key: tls.key
                  cert:
                    name: alertmanager-tls
                    key: tls.crt
                  ca:
                    name: alertmanager-tls
                    key: tls.ca
                staticConfigs:
                - external-alertmanager1-remote.com
                - external-alertmanager1-remote2.com
    • To configure additional Alertmanager instances for routing alerts from user-defined projects:

      1. Modifiez la carte de configuration user-workload-monitoring-config dans le projet openshift-user-workload-monitoring:

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. Ajouter une section <component>/additionalAlertmanagerConfigs: sous data/config.yaml/.
      3. Ajoutez les détails de configuration pour les gestionnaires d'alerte supplémentaires dans cette section :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            <component>:
              additionalAlertmanagerConfigs:
              - <alertmanager_specification>

        Remplacez <component> par l'un des deux composants externes supportés par Alertmanager : prometheus ou thanosRuler.

        Pour <alertmanager_specification>, remplacez l'authentification et les autres détails de configuration pour les instances supplémentaires d'Alertmanager. Les méthodes d'authentification actuellement prises en charge sont le jeton de porteur (bearerToken) et le client TLS (tlsConfig). L'exemple de carte de configuration suivant configure un Alertmanager supplémentaire utilisant Thanos Ruler avec un jeton de porteur et une authentification TLS du client :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
           thanosRuler:
             additionalAlertmanagerConfigs:
            - scheme: https
              pathPrefix: /
              timeout: "30s"
              apiVersion: v1
              bearerToken:
                name: alertmanager-bearer-token
                key: token
              tlsConfig:
                key:
                  name: alertmanager-tls
                  key: tls.key
                cert:
                  name: alertmanager-tls
                  key: tls.crt
                ca:
                  name: alertmanager-tls
                  key: tls.ca
              staticConfigs:
              - external-alertmanager1-remote.com
              - external-alertmanager1-remote2.com
        Note

        Les configurations appliquées à l'objet user-workload-monitoring-config ConfigMap ne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.

  2. Enregistrez le fichier pour appliquer les modifications à l'objet ConfigMap. La nouvelle configuration de placement des composants est appliquée automatiquement.

3.1. Attacher des étiquettes supplémentaires à vos séries temporelles et à vos alertes

Grâce à la fonction d'étiquettes externes de Prometheus, vous pouvez attacher des étiquettes personnalisées à toutes les séries temporelles et alertes qui quittent Prometheus.

Conditions préalables

  • If you are configuring core OpenShift Container Platform monitoring components:

    • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
    • Vous avez créé l'objet cluster-monitoring-config ConfigMap .
  • If you are configuring components that monitor user-defined projects:

    • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin, ou en tant qu'utilisateur ayant le rôle user-workload-monitoring-config-edit dans le projet openshift-user-workload-monitoring.
    • Vous avez créé l'objet user-workload-monitoring-config ConfigMap .
  • Vous avez installé l'OpenShift CLI (oc).

Procédure

  1. Modifiez l'objet ConfigMap:

    • To attach custom labels to all time series and alerts leaving the Prometheus instance that monitors core OpenShift Container Platform projects:

      1. Modifiez l'objet cluster-monitoring-config ConfigMap dans le projet openshift-monitoring:

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. Définissez une carte des étiquettes que vous souhaitez ajouter pour chaque métrique sous data/config.yaml:

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              externalLabels:
                <key>: <value> 1
        1
        Remplacer <key>: <value> par une carte de paires clé-valeur où <key> est un nom unique pour le nouveau label et <value> sa valeur.
        Avertissement

        N'utilisez pas prometheus ou prometheus_replica comme noms de clés, car ils sont réservés et seront écrasés.

        Par exemple, pour ajouter des métadonnées sur la région et l'environnement à toutes les séries temporelles et alertes, utilisez :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              externalLabels:
                region: eu
                environment: prod
    • To attach custom labels to all time series and alerts leaving the Prometheus instance that monitors user-defined projects:

      1. Modifiez l'objet user-workload-monitoring-config ConfigMap dans le projet openshift-user-workload-monitoring:

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. Définissez une carte des étiquettes que vous souhaitez ajouter pour chaque métrique sous data/config.yaml:

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            prometheus:
              externalLabels:
                <key>: <value> 1
        1
        Remplacer <key>: <value> par une carte de paires clé-valeur où <key> est un nom unique pour le nouveau label et <value> sa valeur.
        Avertissement

        N'utilisez pas prometheus ou prometheus_replica comme noms de clés, car ils sont réservés et seront écrasés.

        Note

        Dans le projet openshift-user-workload-monitoring, Prometheus gère les mesures et Thanos Ruler les règles d'alerte et d'enregistrement. En remplaçant prometheus par externalLabels dans l'objet user-workload-monitoring-config ConfigMap , vous ne configurerez les étiquettes externes que pour les mesures et non pour les règles.

        Par exemple, pour ajouter des métadonnées sur la région et l'environnement à toutes les séries temporelles et alertes liées à des projets définis par l'utilisateur, utilisez :

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            prometheus:
              externalLabels:
                region: eu
                environment: prod
  2. Enregistrez le fichier pour appliquer les modifications. La nouvelle configuration est appliquée automatiquement.

    Note

    Les configurations appliquées à l'objet user-workload-monitoring-config ConfigMap ne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.

    Avertissement

    Lorsque des modifications sont enregistrées dans une carte de configuration de surveillance, les pods et autres ressources du projet concerné peuvent être redéployés. Les processus de surveillance en cours dans ce projet peuvent également être redémarrés.

Ressources supplémentaires