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
.
-
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-edit
dans 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-config
dans 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-config
dans 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 :prometheus
outhanosRuler
.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
NoteLes 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.
-
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
.
-
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-edit
dans le projetopenshift-user-workload-monitoring
. -
Vous avez créé l'objet
user-workload-monitoring-config
ConfigMap
.
-
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-config
ConfigMap
dans le projetopenshift-monitoring
:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
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.
AvertissementN'utilisez pas
prometheus
ouprometheus_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:
Modifiez l'objet
user-workload-monitoring-config
ConfigMap
dans le projetopenshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
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.
AvertissementN'utilisez pas
prometheus
ouprometheus_replica
comme 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çantprometheus
parexternalLabels
dans l'objetuser-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
Enregistrez le fichier pour appliquer les modifications. La nouvelle configuration est appliquée automatiquement.
NoteLes 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.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.
Ressources supplémentaires
- Voir Préparation de la configuration de la pile de surveillance pour les étapes de création des cartes de configuration de la surveillance.
- Permettre le suivi de projets définis par l'utilisateur