En esta página, se describe el proceso para crear reglas de alertas basadas en registros y métricas de entornos aislados de Google Distributed Cloud (GDC) para facilitar la supervisión proactiva y una respuesta más rápida ante incidentes.
GDC te permite definir reglas de alerta basadas en las métricas o los registros de tu proyecto. Estas reglas activan alertas automáticamente cuando se cumplen condiciones específicas. A continuación, se indican los tipos de reglas de alertas que puedes definir:
- Reglas basadas en métricas: Activan alertas según los datos numéricos recopilados de
tus aplicaciones o infraestructura. Por ejemplo, podrías crear una regla para
activar una alerta si el uso de CPU supera el 80%. Crea reglas basadas en métricas con la
consola de GDC o una definición de recursos personalizados de
MonitoringRule. - Reglas basadas en registros: Activan alertas según el análisis de los datos de registro. Estas
alertas te permiten identificar eventos o patrones específicos dentro de tus
registros y responder a ellos, como mensajes de error o actividad inusual. Crea reglas basadas en registros con
la consola de GDC o una definición de recursos personalizados de
LoggingRule.
Tanto las reglas basadas en métricas como las basadas en registros se basan en una expresión de lenguaje de consulta para definir la condición que activa una alerta. Esta expresión filtra y analiza los datos entrantes, y evalúa si se cumplen los criterios definidos.
La primera vez que se cumple una condición, la alerta pasa al estado pendiente. Si las condiciones son verdaderas durante el siguiente período que definas, la alerta pasará al estado abierto. En ese momento, el sistema envía la alerta.
Para proporcionar más contexto y facilitar la administración eficiente de las alertas, puedes agregar etiquetas y anotaciones a tus reglas de alertas:
Etiquetas: Son pares clave-valor que categorizan e identifican las alertas. Usa etiquetas para obtener información como la siguiente:
- Nivel de gravedad (error, crítico, advertencia)
- Código de alerta
- Nombre del recurso
Anotaciones: Proporciona información adicional que no permite la identificación para enriquecer la alerta. Las anotaciones pueden incluir la siguiente información:
- Mensajes de error detallados
- Expresiones relevantes
- Vínculos a runbooks o guías de solución de problemas
Antes de comenzar
Para administrar reglas basadas en métricas o basadas en registros, debes tener los permisos necesarios.
### Solicita roles de IAM de la organización para las reglas basadas en métricas
Comunícate con el administrador de la organización de IAM para solicitar los siguientes roles:
- Creador de PA de MonitoringRule (
monitoringrule-pa-creator): Crea recursos personalizados deMonitoringRule. - Editor de PA de MonitoringRule (
monitoringrule-pa-editor): Edita o modifica los recursos personalizados deMonitoringRule. Visualizador de PA de MonitoringRule (
monitoringrule-pa-viewer): Permite ver recursos personalizados deMonitoringRule.Solicita roles de IAM del proyecto para las reglas basadas en métricas
Comunícate con el administrador de proyectos de IAM para solicitar los siguientes roles:
- Editor de MonitoringRule (
monitoringrule-editor): Edita o modifica recursos personalizados deMonitoringRuleen el espacio de nombres del proyecto. - Visualizador de MonitoringRule (
monitoringrule-viewer): Permite ver los recursos personalizados deMonitoringRuleen el espacio de nombres del proyecto.
Solicita roles de IAM de la organización para las reglas basadas en registros
Comunícate con el administrador de la organización de IAM para solicitar los siguientes roles:
- Creador de PA de LoggingRule (
loggingrule-pa-creator): Crea recursos personalizados deLoggingRule. - Editor de PA de LoggingRule (
loggingrule-pa-editor): Edita o modifica recursos personalizados deLoggingRule. - Visualizador de PA de LoggingRule (
loggingrule-pa-viewer): Visualiza recursos personalizados deLoggingRule.
Solicita roles de IAM del proyecto para las reglas basadas en registros
Comunícate con el administrador de proyectos de IAM para solicitar los siguientes roles:
- Editor de LoggingRule (
loggingrule-editor): Edita o modifica recursos personalizados deLoggingRuleen el espacio de nombres del proyecto. - Visualizador de LoggingRule (
loggingrule-viewer): Visualiza los recursos personalizados deLoggingRuleen el espacio de nombres del proyecto.
Define reglas de alerta
Puedes definir reglas de alertas en el espacio de nombres de tu proyecto con la consola de GDC (preferida) o las APIs de supervisión y registro para aplicar recursos personalizados.
Selecciona uno de los siguientes métodos para definir reglas de alertas basadas en métricas o registros:
Console
Crea reglas de alerta en grupos de reglas desde la consola de GDC:
- En la consola de GDC, selecciona un proyecto.
- En el menú de navegación, selecciona Operaciones > Alertas.
- Haz clic en la pestaña Política de alertas.
- Haz clic en Crear grupo de reglas.
Elige el tipo de regla de alerta:
- Selecciona Métricas para las reglas de alertas basadas en métricas.
- Selecciona Registros para las reglas de alerta basadas en registros.
Configura el grupo de reglas de alertas:
- En el campo Nombre del grupo de reglas de alerta, ingresa un nombre para el grupo de reglas.
- En el campo Intervalo de evaluación de reglas, ingresa la cantidad de segundos para cada intervalo.
En el campo Límite, ingresa la cantidad máxima de alertas.
En la sección Reglas de alerta, haz clic en Agregar regla.
En la ventana Crear regla de alerta, ingresa los siguientes detalles:
- Es un nombre para la regla de alerta.
Una expresión para la regla de alerta (usa LogQL para las reglas basadas en registros y PromQL para las reglas basadas en métricas).
Es la duración en segundos antes de que una alerta pase de pendiente a abierta.
El nivel de gravedad, como Error o Advertencia.
Es un nombre corto para identificar el recurso relacionado.
Es un código de alerta para identificarla.
Es una URL de runbook o información para solucionar problemas.
Un mensaje o una descripción de alerta.
Opcional: Agrega Etiquetas y Anotaciones como pares clave-valor.
Haz clic en Guardar para crear la regla.
Haz clic en Crear para crear el grupo de reglas.
El grupo de reglas aparece en la lista Grupo de reglas de alerta. Puedes agrupar más reglas de alerta dentro de este grupo de reglas.
API
Crea reglas de alertas desde las APIs de Monitoring o Logging:
Define un recurso personalizado
MonitoringRule(reglas basadas en métricas) oLoggingRule(reglas basadas en registros) en un archivo YAML.La especificación completa del recurso muestra un ejemplo de reglas basadas en métricas y en registros.
Reemplaza los siguientes valores en el archivo YAML según tus necesidades:
Campo Descripción namespaceEs el espacio de nombres del proyecto. nameEs el nombre de la configuración de la regla de alerta. sourceEs la fuente de registro de la regla de alerta. Las opciones válidas son operationalyaudit. Solo se aplica a los recursos deLoggingRule.intervalEs la duración del intervalo de evaluación de reglas en segundos. limitOpcional. Es la cantidad máxima de alertas. Establece el valor en 0para recibir alertas ilimitadas.alertRulesSon las definiciones para crear reglas de alertas. alertRules.alertEs el nombre de la alerta. alertRules.exprUna expresión de LogQL para reglas basadas en registros o una expresión de PromQL para reglas basadas en métricas. La expresión debe evaluarse como un valor verdadero o falso para determinar si la alerta pasa a un estado pendiente. alertRules.forOpcional. Es la duración en segundos antes de que una alerta pase de pendiente a abierta. El valor predeterminado es 0segundos (activación inmediata).alertRules.labelsSon pares clave-valor que se usan para categorizar e identificar la alerta. Requiere las siguientes etiquetas: severity,codeyresource.alertRules.annotationsOpcional. Son metadatos no identificativos de la alerta como pares clave-valor. Guarda el archivo YAML.
Aplica la configuración del recurso al servidor de la API de Management dentro del mismo espacio de nombres que tus reglas de alerta basadas en métricas o en registros:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yamlReemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de Management.ALERT_RULE_NAME: Es el nombre del archivo de definición deMonitoringRuleoLoggingRule.
Especificación completa de recursos
En esta sección, se incluyen las plantillas de YAML que puedes usar para crear reglas de alertas basadas en métricas y en registros aplicando recursos personalizados. Si creas alertas desde la consola de GDC, puedes omitir esta sección.
Define reglas de alerta en los siguientes recursos personalizados:
MonitoringRule: reglas basadas en métricas.LoggingRule: reglas basadas en registros.
MonitoringRule
En el siguiente archivo YAML, se muestra una plantilla para el recurso personalizado MonitoringRule. Para obtener más información, consulta la
documentación de referencia de la 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
Reemplaza lo siguiente:
PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.MONITORING_RULE_NAME: Es el nombre del archivo de definición deMonitoringRule.
LoggingRule
En el siguiente archivo YAML, se muestra una plantilla para el recurso personalizado LoggingRule. Para obtener más información, consulta la
documentación de referencia de la 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
Reemplaza lo siguiente:
PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.LOGGING_RULE_NAME: Es el nombre del archivo de definición deLoggingRule.