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-monitoringproject:-
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.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
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ôleuser-workload-monitoring-config-editdans le projetopenshift-user-workload-monitoring. -
Vous avez créé la carte de configuration
user-workload-monitoring-config.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
Procédure
Modifiez l'objet
ConfigMap.To configure additional Alertmanagers for routing alerts from core OpenShift Container Platform projects:
Modifiez la carte de configuration
cluster-monitoring-configdans le projetopenshift-monitoring:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config-
Ajouter une section
additionalAlertmanagerConfigs:sousdata/config.yaml/prometheusK8s. 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:
Modifiez la carte de configuration
user-workload-monitoring-configdans le projetopenshift-user-workload-monitoring:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config-
Ajouter une section
<component>/additionalAlertmanagerConfigs:sousdata/config.yaml/. 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 :prometheusouthanosRuler.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.comNoteLes configurations appliquées à l'objet
user-workload-monitoring-configConfigMapne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.
-
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 Copier lienLien copié sur presse-papiers!
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-configConfigMap.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
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ôleuser-workload-monitoring-config-editdans le projetopenshift-user-workload-monitoring. -
Vous avez créé l'objet
user-workload-monitoring-configConfigMap.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
-
Vous avez installé l'OpenShift CLI (
oc).
Procédure
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:
Modifiez l'objet
cluster-monitoring-configConfigMapdans le projetopenshift-monitoring:$ oc -n openshift-monitoring edit configmap cluster-monitoring-configDé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.
AvertissementN'utilisez pas
prometheusouprometheus_replicacomme 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:
Modifiez l'objet
user-workload-monitoring-configConfigMapdans le projetopenshift-user-workload-monitoring:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configDé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.
AvertissementN'utilisez pas
prometheusouprometheus_replicacomme noms de clés, car ils sont réservés et seront écrasés.NoteDans le projet
openshift-user-workload-monitoring, Prometheus gère les mesures et Thanos Ruler les règles d'alerte et d'enregistrement. En remplaçantprometheusparexternalLabelsdans l'objetuser-workload-monitoring-configConfigMap, 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
Enregistrez le fichier pour appliquer les modifications. La nouvelle configuration est appliquée automatiquement.
NoteLes configurations appliquées à l'objet
user-workload-monitoring-configConfigMapne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.AvertissementLorsque 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.