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 isolés de Google Distributed Cloud (GDC) 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. Vous pouvez définir les types de règles d'alerte suivants :
- Règles basées sur des métriques : déclenchent 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 qui déclenche 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 des journaux : déclenchent des alertes en fonction de l'analyse des données de journal. Ces alertes vous permettent d'identifier des événements ou des tendances spécifiques dans vos journaux, tels que des messages d'erreur ou une activité inhabituelle, et d'y répondre. Créez des règles basées sur des 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 suivante que vous définissez, l'alerte passe à l'état ouvert. À 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 les suivantes :
- Niveau de gravité (erreur, critique, avertissement)
- Code d'alerte
- Nom de la ressource
Annotations : fournissent 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 manuels d'exécution 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 de l'organisation ou à votre administrateur IAM de projet de vous accorder l'un des rôles de ressource MonitoringRule associés.
En revanche, pour obtenir les autorisations nécessaires pour gérer les règles basées sur des journaux, demandez à votre administrateur IAM de l'organisation ou à votre administrateur IAM de projet de vous accorder l'un des rôles de ressource LoggingRule associés.
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 Operations > Alerting (Opérations > Alertes).
- Cliquez sur l'onglet Alerting Policy (Règle d'alerte).
- Cliquez sur Create Rule Group (Ajouter un groupe de règles).
Choisissez le type de règle d'alerte :
- Sélectionnez Metrics (Métriques) pour les règles d'alerte basées sur des métriques.
- Sélectionnez Logs (Journaux) pour les règles d'alerte basées sur des journaux.
Configurez le groupe de règles d'alerte :
- Dans le champ Alert rule group name (Nom du groupe de règles d'alerte), saisissez un nom pour le groupe de règles.
- Dans le champ Rule evaluation interval (Intervalle d'évaluation des règles), saisissez le nombre de secondes pour chaque intervalle.
Dans le champ Limit (Limite), saisissez le nombre maximal d'alertes.
Dans la section Alert rules (Règles d'alerte), cliquez sur Add Rule (Ajouter une règle).
Dans la fenêtre Create alert rule (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 des journaux et PromQL pour les règles basées sur des métriques).
Durée en secondes avant qu'une alerte ne passe de l'état en attente à l'état ouvert.
Niveau de gravité, tel que Error (Erreur) ou Warning (Avertissement).
Nom court permettant d'identifier la ressource associée.
Code d'alerte permettant d'identifier l'alerte.
URL du manuel d'exécution 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 Save (Enregistrer) pour créer la règle.
Cliquez sur Create (Créer) pour créer le groupe de règles.
Le groupe de règles s'affiche dans la liste Alert rule group (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 de surveillance ou de journalisation :
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 de la ressource montre un exemple de règles basées sur des métriques et de règles basées sur des journaux.
Remplacez les valeurs suivantes dans le fichier YAML en fonction de vos besoins :
Champ Description namespaceEspace de noms du projet. nameNom de la configuration de la règle d'alerte. sourceSource du journal pour la règle d'alerte. Les options valides sont operationaletaudit. Ne s'applique qu'aux ressourcesLoggingRule.intervalDurée de l'intervalle d'évaluation des règles en secondes. limitFacultatif. Nombre maximal d'alertes. Définissez la valeur sur 0pour un nombre illimité d'alertes.alertRulesDéfinitions pour la création de règles d'alerte. alertRules.alertNom de l'alerte. alertRules.exprUne LogQL pour les règles basées sur des journaux ou une PromQL pour les règles basées sur des métriques. L'expression doit renvoyer une valeur true ou false pour déterminer si l'alerte passe à l'état en attente. alertRules.forFacultatif. Durée en secondes avant qu'une alerte ne passe de l'état en attente à l'état ouvert. La valeur par défaut est 0seconde (déclenchement immédiat).alertRules.labelsPaires clé/valeur permettant de catégoriser et d'identifier l'alerte. Les libellés suivants sont requis : severity,code, etresource.alertRules.annotationsFacultatif. Métadonnées non identifiantes de 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.yamlRemplacez 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éfinitionMonitoringRuleouLoggingRule.
Spécification complète de la ressource
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 des journaux.
MonitoringRule
Le fichier YAML suivant montre un modèle pour la ressource personnalisée MonitoringRule. Pour plus d'informations, consultez la
documentation de référence de 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 plus d'informations, consultez la
documentation de référence de 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.