Cette page décrit le processus de création de règles d'alerte basées sur les journaux et les métriques des environnements d'appliance Google Distributed Cloud (GDC) isolés, afin de faciliter la surveillance proactive et d'accélérer la réponse aux incidents.
GDC vous permet de définir des règles d'alerte basées sur les métriques ou les journaux de votre projet. Ces règles déclenchent automatiquement des alertes lorsque des conditions spécifiques sont remplies. Voici les types de règles d'alerte que vous pouvez définir :
- Règles basées sur des métriques : déclenchez des alertes en fonction des données numériques collectées à partir de vos applications ou de votre infrastructure. Par exemple, vous pouvez créer une règle pour déclencher une alerte si l'utilisation du processeur dépasse 80 %. Créez des règles basées sur des métriques à l'aide de la console GDC ou d'une définition de ressource personnalisée
MonitoringRule
. - Règles basées sur les journaux : déclenchent des alertes en fonction de l'analyse des données de journaux. Ces alertes vous permettent d'identifier des événements ou des tendances spécifiques dans vos journaux (messages d'erreur ou activité inhabituelle, par exemple) et d'y répondre. Créez des règles basées sur les journaux à l'aide de la console GDC ou d'une définition de ressource personnalisée
LoggingRule
.
Les règles basées sur des métriques et celles basées sur des journaux s'appuient sur une expression de langage de requête pour définir la condition qui déclenche une alerte. Cette expression filtre et analyse les données entrantes, en évaluant si les critères définis sont remplis.
La première fois qu'une condition est remplie, l'alerte passe à l'état En attente. Si les conditions sont remplies pendant la période que vous définissez, l'alerte passe à l'état ouverte. À ce moment-là, le système envoie l'alerte.
Pour fournir plus de contexte et faciliter la gestion efficace des alertes, vous pouvez ajouter des libellés et des annotations à vos règles d'alerte :
Libellés : paires clé/valeur qui catégorisent et identifient les alertes. Utilisez des libellés pour des informations telles que :
- Niveau de gravité (erreur, critique, avertissement)
- Code d'alerte
- Nom de la ressource
Annotations : fournissez des informations supplémentaires non identifiantes pour enrichir l'alerte. Les annotations peuvent inclure les informations suivantes :
- Messages d'erreur détaillés
- Expressions pertinentes
- Liens vers des runbooks ou des guides de dépannage
Avant de commencer
Pour obtenir les autorisations nécessaires pour gérer les règles basées sur des métriques, demandez à votre administrateur IAM au niveau de l'organisation ou du projet de vous accorder l'un des rôles associés à la ressource MonitoringRule
.
En revanche, pour obtenir les autorisations nécessaires pour gérer les règles basées sur les journaux, demandez à votre administrateur IAM de l'organisation ou du projet de vous accorder l'un des rôles associés à la ressource LoggingRule
.
Selon le niveau d'accès et les autorisations dont vous avez besoin, vous pouvez obtenir des rôles de créateur, d'éditeur ou de lecteur pour ces ressources dans une organisation ou un projet. Pour en savoir plus, consultez Préparer les autorisations IAM.
Définir des règles d'alerte
Vous pouvez définir des règles d'alerte dans l'espace de noms de votre projet à l'aide de la console GDC (méthode recommandée) ou des API de surveillance et de journalisation pour appliquer des ressources personnalisées.
Sélectionnez l'une des méthodes suivantes pour définir des règles d'alerte basées sur des métriques ou des journaux :
Console
Créez des règles d'alerte dans des groupes de règles à partir de la console GDC :
- Dans la console GDC, sélectionnez un projet.
- Dans le menu de navigation, sélectionnez Opérations > Alertes.
- Cliquez sur l'onglet Règle d'alerte.
- Cliquez sur Créer un groupe de règles.
Choisissez le type de règle d'alerte :
- Sélectionnez Métriques pour les règles d'alerte basées sur des métriques.
- Sélectionnez Journaux pour les règles d'alerte basées sur les journaux.
Configurez le groupe de règles d'alerte :
- Dans le champ Nom du groupe de règles d'alerte, saisissez un nom pour le groupe de règles.
- Dans le champ Intervalle d'évaluation des règles, saisissez le nombre de secondes pour chaque intervalle.
Dans le champ Limite, saisissez le nombre maximal d'alertes.
Dans la section Règles d'alerte, cliquez sur
Ajouter une règle.Dans la fenêtre Créer une règle d'alerte, saisissez les informations suivantes :
- Nom de la règle d'alerte.
Expression pour la règle d'alerte (utilisez LogQL pour les règles basées sur les journaux et PromQL pour les règles basées sur les métriques).
Durée en secondes avant qu'une alerte passe de l'état en attente à l'état ouverte.
Niveau de gravité, par exemple Erreur ou Avertissement.
Nom court permettant d'identifier la ressource associée.
Code d'alerte permettant d'identifier l'alerte.
URL d'un runbook ou informations de dépannage.
Message ou description de l'alerte.
Facultatif : Ajoutez des libellés et des annotations sous forme de paires clé-valeur.
Cliquez sur Enregistrer pour créer la règle.
Cliquez sur Créer pour créer le groupe de règles.
Le groupe de règles s'affiche dans la liste Groupe de règles d'alerte. Vous pouvez regrouper d'autres règles d'alerte dans ce groupe de règles.
API
Créez des règles d'alerte à partir des API Monitoring ou Logging :
Définissez une ressource personnalisée
MonitoringRule
(règles basées sur des métriques) ouLoggingRule
(règles basées sur des journaux) dans un fichier YAML.La spécification complète des ressources fournit un exemple de règles basées sur des métriques et des journaux.
Remplacez les valeurs suivantes dans le fichier YAML en fonction de vos besoins :
Champ Description namespace
Espace de noms du projet. name
Nom de la configuration de la règle d'alerte. source
Source du journal pour la règle d'alerte. Les options valides sont operational
etaudit
. Cela ne s'applique qu'aux ressourcesLoggingRule
.interval
Durée de l'intervalle d'évaluation des règles, en secondes. limit
Facultatif. Nombre maximal d'alertes. Définissez la valeur sur 0
pour un nombre illimité d'alertes.alertRules
Définitions pour créer des règles d'alerte. alertRules.alert
Nom de l'alerte. alertRules.expr
Expression LogQL pour les règles basées sur les journaux ou expression PromQL pour les règles basées sur les métriques. L'expression doit renvoyer une valeur "true" ou "false" pour déterminer si l'alerte passe à l'état "En attente". alertRules.for
Facultatif. Durée en secondes avant qu'une alerte passe de l'état en attente à l'état ouverte. La valeur par défaut est de 0
secondes (déclenchement immédiat).alertRules.labels
Paires clé/valeur permettant de catégoriser et d'identifier l'alerte. Il nécessite les libellés suivants : severity
,code
etresource
.alertRules.annotations
Facultatif. Métadonnées non identifiantes à l'alerte sous forme de paires clé/valeur. Enregistrez le fichier YAML.
Appliquez la configuration de la ressource au serveur de l'API Management dans le même espace de noms que vos règles d'alerte basées sur des métriques ou des journaux :
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
Remplacez les éléments suivants :
KUBECONFIG_PATH
: chemin d'accès au fichier kubeconfig pour le serveur de l'API Management.ALERT_RULE_NAME
: nom du fichier de définitionMonitoringRule
ouLoggingRule
.
Spécification complète des ressources
Cette section contient les modèles YAML que vous pouvez utiliser pour créer des règles d'alerte basées sur des métriques et des journaux en appliquant des ressources personnalisées. Si vous créez des alertes à partir de la console GDC, vous pouvez ignorer cette section.
Définissez des règles d'alerte dans les ressources personnalisées suivantes :
MonitoringRule
: règles basées sur des métriques.LoggingRule
: règles basées sur les journaux.
MonitoringRule
Le fichier YAML suivant montre un modèle pour la ressource personnalisée MonitoringRule
. Pour en savoir plus, consultez la documentation de référence sur l'API.
# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: MONITORING_RULE_NAME
spec:
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure metric-based alert rules.
alertRules:
# Define an alert name.
- alert: my-metric-based-alert
# Define the PromQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: error
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Remplacez les éléments suivants :
PROJECT_NAMESPACE
: espace de noms de votre projet.MONITORING_RULE_NAME
: nom du fichier de définitionMonitoringRule
.
LoggingRule
Le fichier YAML suivant montre un modèle pour la ressource personnalisée LoggingRule
. Pour en savoir plus, consultez la documentation de référence sur l'API.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure log-based alert rules.
alertRules:
# Define an alert name.
- alert: my-log-based-alert
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: warning
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Remplacez les éléments suivants :
PROJECT_NAMESPACE
: espace de noms de votre projet.LOGGING_RULE_NAME
: nom du fichier de définitionLoggingRule
.