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 Google Distributed Cloud (GDC) air gap 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 en fonction des métriques ou des 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é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 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 schémas 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 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 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 étiquettes et des annotations à vos règles d'alerte :
Étiquettes : paires clé/valeur qui catégorisent et identifient les alertes. Utilisez des étiquettes pour des informations telles que les suivantes :
- Niveau de gravité (erreur, critique, avertissement)
- Code d'alerte
- Nom de la ressource
Annotations : fournissez des informations supplémentaires ne permettant pas d'identifier l'utilisateur 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 gérer les règles basées sur des métriques ou basées sur des journaux, vous devez disposer des autorisations nécessaires.
### Demander des rôles IAM d'organisation pour les règles basées sur des métriques
Contactez l'administrateur de l'organisation IAM pour demander les rôles suivants :
- Créateur de PA MonitoringRule (
monitoringrule-pa-creator) : crée des ressources personnaliséesMonitoringRule. - Éditeur de PA MonitoringRule (
monitoringrule-pa-editor) : permet de modifier les ressources personnaliséesMonitoringRule. Lecteur de PA MonitoringRule (
monitoringrule-pa-viewer) : permet d'afficher les ressources personnaliséesMonitoringRule.Demander des rôles IAM au niveau du projet pour les règles basées sur des métriques
Contactez l'administrateur de projet IAM pour demander les rôles suivants :
- Éditeur MonitoringRule (
monitoringrule-editor) : permet de modifier les ressources personnaliséesMonitoringRuledans l'espace de noms du projet. - Lecteur MonitoringRule (
monitoringrule-viewer) : permet d'afficher les ressources personnaliséesMonitoringRuledans l'espace de noms du projet.
Demander des rôles IAM d'organisation pour les règles basées sur les journaux
Contactez l'administrateur de l'organisation IAM pour demander les rôles suivants :
- Créateur de PA LoggingRule (
loggingrule-pa-creator) : crée des ressources personnaliséesLoggingRule. - Éditeur de LoggingRule PA (
loggingrule-pa-editor) : permet de modifier les ressources personnaliséesLoggingRule. - Lecteur de LoggingRule PA (
loggingrule-pa-viewer) : permet d'afficher les ressources personnaliséesLoggingRule.
Demander des rôles IAM de projet pour les règles basées sur les journaux
Contactez l'administrateur de projet IAM pour demander les rôles suivants :
- Éditeur LoggingRule (
loggingrule-editor) : permet de modifier les ressources personnaliséesLoggingRuledans l'espace de noms du projet. - Lecteur LoggingRule (
loggingrule-viewer) : affichez les ressources personnaliséesLoggingRuledans l'espace de noms du projet.
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 (recommandé) 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 de la règle, 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 ne passe de l'état en attente à l'état ouvert.
Le niveau de gravité, par exemple Erreur ou Avertissement.
Nom court permettant d'identifier la ressource associée.
Un code d'alerte pour identifier l'alerte.
Une URL de runbook ou des informations de dépannage.
Message ou description d'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 les journaux) dans un fichier YAML.La spécification complète de la ressource présente 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 de journaux pour la règle d'alerte. Les options valides sont operationaletaudit. S'applique uniquement aux ressourcesLoggingRule.intervalDurée de l'intervalle d'évaluation de la règle, en secondes. limitFacultatif. Le nombre maximal d'alertes. Définissez cette valeur sur 0pour un nombre illimité d'alertes.alertRulesDéfinitions pour créer des règles d'alerte. alertRules.alertNom de l'alerte. alertRules.exprUne expression LogQL pour les règles basées sur les journaux ou une 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.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 de 0secondes (déclenchement immédiat).alertRules.labelsPaires clé/valeur permettant de catégoriser et d'identifier l'alerte. Il nécessite les étiquettes suivantes : severity,codeetresource.alertRules.annotationsFacultatif. Métadonnées non identificatrices de l'alerte sous forme de paires clé/valeur. Enregistrez le fichier YAML.
Appliquez la configuration de la ressource au serveur d'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 du serveur d'API Management.ALERT_RULE_NAME: nom du fichier de définitionMonitoringRuleouLoggingRule.
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 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: l'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 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: l'espace de noms de votre projet.LOGGING_RULE_NAME: nom du fichier de définitionLoggingRule.