Esta página descreve o processo de criação de regras de alerta com base em registos e métricas de ambientes isolados do Google Distributed Cloud (GDC) para facilitar a monitorização proativa e a resposta a incidentes mais rápida.
O GDC permite-lhe definir regras de alerta com base nas métricas ou nos registos do seu projeto. Estas regras acionam automaticamente alertas quando são cumpridas condições específicas. Seguem-se os tipos de regras de alerta que pode definir:
- Regras baseadas em métricas: acione alertas com base em dados numéricos recolhidos das suas aplicações ou infraestrutura. Por exemplo, pode criar uma regra para
acionar um alerta se a utilização da CPU exceder 80%. Crie regras baseadas em métricas através da consola do GDC ou de uma definição de recurso personalizado
MonitoringRule
. - Regras baseadas em registos: acionam alertas com base na análise dos dados de registo. Estes alertas permitem-lhe identificar e responder a eventos ou padrões específicos nos seus registos, como mensagens de erro ou atividade invulgar. Crie regras baseadas em registos através da consola do GDC ou de uma
LoggingRule
definição de recurso personalizada.
As regras baseadas em métricas e em registos baseiam-se numa expressão de linguagem de consulta para definir a condição que aciona um alerta. Esta expressão filtra e analisa os dados recebidos, avaliando se os critérios definidos são cumpridos.
Quando uma condição é cumprida pela primeira vez, o alerta passa para o estado pendente. Se as condições forem verdadeiras durante o período que definir, o alerta passa para o estado aberto. Nesse momento, o sistema envia o alerta.
Para fornecer mais contexto e facilitar a gestão eficiente de alertas, pode adicionar etiquetas e anotações às regras de alerta:
Etiquetas: pares de chave-valor que categorizam e identificam alertas. Use etiquetas para informações como as seguintes:
- Nível de gravidade (erro, crítico, aviso)
- Código do alerta
- Nome do recurso
Anotações: forneça informações adicionais não identificadoras para enriquecer o alerta. As anotações podem incluir as seguintes informações:
- Mensagens de erro detalhadas
- Expressões relevantes
- Links para manuais ou guias de resolução de problemas
Antes de começar
Para receber as autorizações de que precisa para gerir regras baseadas em métricas, peça ao administrador de IAM da organização ou ao administrador de IAM do projeto que lhe conceda uma das MonitoringRule
funções de recursos associadas.
Por outro lado, para obter as autorizações necessárias para gerir regras baseadas em registos, peça ao administrador de IAM da organização ou ao administrador de IAM do projeto que lhe conceda uma das funções de recursos LoggingRule
associadas.
Consoante o nível de acesso e as autorizações de que precisa, pode obter as funções de criador, editor ou leitor para estes recursos numa organização ou num projeto. Para mais informações, consulte o artigo Prepare as autorizações de IAM.
Defina regras de alerta
Pode definir regras de alerta no espaço de nomes do projeto através da consola do GDC (preferencial) ou das APIs de monitorização e registo para aplicar recursos personalizados.
Selecione um dos seguintes métodos para definir regras de alerta com base em métricas ou registos:
Consola
Crie regras de alerta em grupos de regras a partir da consola do GDC:
- Na consola do GDC, selecione um projeto.
- No menu de navegação, selecione Operações > Alertas.
- Clique no separador Política de alertas.
- Clique em Criar grupo de regras.
Escolha o tipo de regra de alerta:
- Selecione Métricas para regras de alerta baseadas em métricas.
- Selecione Registos para regras de alerta baseadas em registos.
Configure o grupo de regras de alerta:
- No campo Nome do grupo de regras de alerta, introduza um nome para o grupo de regras.
- No campo Intervalo de avaliação de regras, introduza o número de segundos para cada intervalo.
No campo Limite, introduza o número máximo de alertas.
Na secção Regras de alerta, clique em
Adicionar regra.Na janela Criar regra de alerta, introduza os seguintes detalhes:
- Um nome para a regra de alerta.
Uma expressão para a regra de alerta (Use LogQL para regras baseadas em registos e PromQL para regras baseadas em métricas).
A duração em segundos antes de um alerta transitar de pendente para aberto.
O nível de gravidade, como Erro ou Aviso.
Um nome curto para identificar o recurso relacionado.
Um código de alerta para identificar o alerta.
Um URL de runbook ou informações de resolução de problemas.
Uma mensagem ou uma descrição de alerta.
Opcional: adicione etiquetas e anotações como pares de chave-valor.
Clique em Guardar para criar a regra.
Clique em Criar para criar o grupo de regras.
O grupo de regras é apresentado na lista Grupo de regras de alertas. Pode agrupar mais regras de alerta neste grupo de regras.
API
Crie regras de alerta a partir das APIs de monitorização ou registo:
Defina um recurso personalizado
MonitoringRule
(regras baseadas em métricas) ouLoggingRule
(regras baseadas em registos) num ficheiro YAML.A especificação completa do recurso mostra um exemplo de regras baseadas em métricas e regras baseadas em registos.
Substitua os seguintes valores no ficheiro YAML de acordo com as suas necessidades:
Campo Descrição namespace
O espaço de nomes do projeto. name
O nome da configuração da regra de alerta. source
A origem do registo da regra de alerta. As opções válidas são operational
eaudit
. Aplicável apenas a recursosLoggingRule
.interval
A duração do intervalo de avaliação da regra em segundos. limit
Opcional. O número máximo de alertas. Definido como 0
para alertas ilimitados.alertRules
As definições para criar regras de alerta. alertRules.alert
O nome do alerta. alertRules.expr
Uma expressão LogQL para regras baseadas em registos ou uma expressão PromQL para regras baseadas em métricas. A expressão tem de ser avaliada como um valor verdadeiro ou falso para determinar se o alerta transita para um estado pendente. alertRules.for
Opcional. A duração em segundos antes de um alerta transitar de pendente para aberto. A predefinição é 0
segundos (acionamento imediato).alertRules.labels
Pares de chave-valor para categorizar e identificar o alerta. Requer as seguintes etiquetas: severity
,code
eresource
.alertRules.annotations
Opcional. Metadados não identificadores para o alerta como pares de chave-valor. Guarde o ficheiro YAML.
Aplique a configuração de recursos ao servidor da API Management no mesmo espaço de nomes que as regras de alerta baseadas em métricas ou registos:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
Substitua o seguinte:
KUBECONFIG_PATH
: o caminho para o ficheiro kubeconfig do servidor da API Management.ALERT_RULE_NAME
: o nome do ficheiro de definiçãoMonitoringRule
ouLoggingRule
.
Especificação completa de recursos
Esta secção contém os modelos YAML que pode usar para criar regras de alerta baseadas em métricas e baseadas em registos aplicando recursos personalizados. Se criar alertas a partir da consola do GDC, pode ignorar esta secção.
Defina regras de alerta nos seguintes recursos personalizados:
MonitoringRule
: regras baseadas em métricas.LoggingRule
: regras baseadas em registos.
MonitoringRule
O ficheiro YAML seguinte mostra um modelo para o recurso personalizado MonitoringRule
. Para mais informações, consulte a
documentação de referência da 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
Substitua o seguinte:
PROJECT_NAMESPACE
: o espaço de nomes do seu projeto.MONITORING_RULE_NAME
: o nome do ficheiro de definiçãoMonitoringRule
.
LoggingRule
O ficheiro YAML seguinte mostra um modelo para o recurso personalizado LoggingRule
. Para mais informações, consulte a
documentação de referência da 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
Substitua o seguinte:
PROJECT_NAMESPACE
: o espaço de nomes do seu projeto.LOGGING_RULE_NAME
: o nome doLoggingRule
ficheiro de definição.