Este documento explica como criar uma política de alertas para monitorar os resultados
de uma consulta executada no Log Analytics. Essas consultas são gravadas em SQL e precisam consultar uma visualização de registro. A política de alertas
notifica você quando o resultado da consulta
atende às condições especificadas. Por exemplo, é possível
configurar uma política de alertas para receber uma notificação quando pelo menos 25% das
entradas de registro em um determinado período tiverem uma gravidade de ERROR
.
As políticas de alerta criadas na página Análise de dados de registros são executadas em um mecanismo do BigQuery. Portanto, os dados consultados precisam ser acessíveis por um conjunto de dados vinculado do BigQuery. Por esse motivo, essas consultas SQL só podem consultar visualizações de registro. Não é possível consultar visualizações de análise.
Para informações gerais sobre a Análise de registros, consulte Consultar e analisar registros com a Análise de registros.
Como as políticas de alertas funcionam
Uma política de alertas descreve as circunstâncias em que você quer receber alertas e notificações sobre um incidente. Há três abordagens diferentes que você pode usar para receber notificações quando conteúdo ou padrões aparecem nos dados de registro:
Para verificar entradas de registro individuais em busca de uma frase específica, crie uma política de alertas com base em registros. Use essas políticas de alerta quando você quiser receber notificações sobre eventos relacionados à segurança.
Para monitorar eventos nos dados de entrada de registro, crie uma métrica com base em registros e uma política de alertas para monitorar a métrica. Esses tipos de políticas de alerta são eficazes quando você quer monitorar tendências nos dados de entrada de registro ao longo do tempo. No entanto, elas não são tão eficazes se você espera apenas alguns eventos.
Para monitorar a análise agregada dos dados de entrada de registro, combine a Análise de registros com as políticas de alerta. Nesse cenário, você faz upgrade de um bucket de registros para usar a Análise de dados de registros e cria um conjunto de dados vinculado do BigQuery para esse bucket. Em seguida, use a Análise de dados de registros, que oferece suporte a consultas SQL, para consultar uma visualização de registros no bucket de registros. Por fim, você cria a política de alertas para monitorar os resultados da consulta SQL. Esse tipo de política de alertas é chamado de política de alertas baseada em SQL.
As políticas de alertas baseadas em SQL são mais eficazes para avaliar valores exatos em várias entradas de registro. Se você quiser avaliar entradas de registro individuais, crie uma política de alertas com base em registros.
O restante deste documento descreve como usar políticas de alertas com base em SQL.
Componentes da política de alerta
Uma política de alertas baseada em SQL contém uma condição e uma programação:
A condição contém a consulta, que é uma consulta SQL que consulta uma visualização de registro. A condição também define as circunstâncias em que o resultado da consulta faz com que o Monitoring crie um incidente.
A programação define com que frequência a política de alertas executa a consulta. A programação também define o tamanho da janela de lookback, que é um filtro que seleciona apenas as entradas de registro que foram recebidas desde a última vez que a consulta foi avaliada. Por exemplo, se você definir a programação como 60 minutos, a consulta será executada a cada 60 minutos usando uma janela de lookback que seleciona os 60 minutos mais recentes das entradas de registro.
As políticas de alertas também contêm uma lista de canais de notificação. Quando a condição da política de alertas é atendida, o Cloud Monitoring cria um incidente e envia notificações sobre ele por esses canais. Um incidente é um registro dos dados que fizeram com que a condição fosse atendida, além de outras informações relevantes. Essas informações podem ajudar você a resolver os problemas que causaram o incidente. É possível conferir o incidente usando o console do Google Cloud .
Tipos de avaliação para políticas de alertas baseadas em SQL
As condições que monitoram um resultado de consulta SQL aceitam dois tipos de avaliação:
Limite de contagem de linhas: a condição é atendida quando o número de linhas no resultado da consulta é maior, igual ou menor que um valor de limite.
Por exemplo, suponha que você queira receber uma notificação quando mais de 50 entradas de registro na janela de lookback tiverem uma gravidade maior que 200. Você cria uma consulta que informa as entradas de registro com gravidade maior que 200. Em seguida, configure uma condição, selecione o Limite de contagem de linhas e defina o limite como 50.
Booleano: a condição é atendida quando uma coluna booleana específica na tabela de resultados da consulta contém qualquer linha com um valor de
true
.Por exemplo, suponha que você queira receber uma notificação quando mais de 25% das entradas de registro no período de referência tiverem uma gravidade de
ERROR
. Você cria uma consulta que calcula a porcentagem de entradas de registro com nível de gravidadeERROR
. Os resultados da consulta gravamtrue
na colunanotify
quando essa porcentagem excede 25%. Em seguida, crie uma condição, defina o tipo como Boolean e configure a condição para monitorar a colunanotify
.
As políticas de alerta que monitoram um resultado de consulta SQL precisam ter apenas uma condição.
Políticas de alerta e BigQuery
Quando uma política de alertas executa uma consulta SQL, ela é executada usando slots reservados do BigQuery no projeto Google Cloud em que a política de alertas é definida. Para mais informações, consulte Trabalhar com reservas de slots.
Para que uma política de alertas use slots reservados do BigQuery para consultar uma visualização de registro, o bucket de registros que hospeda a visualização precisa ser configurado para ter um conjunto de dados do BigQuery vinculado. Os conjuntos de dados vinculados permitem que o BigQuery leia os dados no bucket de registros e realize funções do BigQuery nos dados retornados pela consulta SQL.
Entradas de registro avaliadas
Para que uma entrada de registro seja avaliada pela consulta SQL de uma política de alertas, é necessário que as duas condições a seguir sejam verdadeiras:
- O carimbo de data/hora recebido da entrada de registro, que registra quando a entrada de registro foi recebida pelo Cloud Logging, precisa estar dentro da janela de lookback da política de alertas.
- O carimbo de data/hora da entrada de registro, que registra quando a entrada de registro foi gerada, precisa estar dentro de 15 minutos da janela de lookback.
Por exemplo, a política de alertas baseada em SQL tem uma janela de lookback de 60 minutos. A Análise de dados de registros executa a consulta SQL da política de alertas às 13h30. Para ser incluída na consulta, uma entrada de registro precisa atender aos dois critérios a seguir:
- O carimbo de data/hora recebido precisa estar entre 12h30 e 13h30.
- O carimbo de data/hora precisa estar entre 12h15 e 13h45.
Quando você executa uma consulta na interface da Análise de registros, todas as entradas de registro no período selecionado são avaliadas com base no carimbo de data/hora da entrada de registro.
Janela de lookback e tempo de propagação do incidente
Quando uma política de alertas é programada para avaliar a condição, a Análise de dados de registros atrasa a execução da consulta SQL em cinco minutos para dar tempo ao Cloud Logging de indexar as entradas de registro recebidas durante a janela de lookback. Por exemplo, se a política de alertas usar uma janela de lookback que termina às 14h, a Análise de dados de registros não vai executar a consulta SQL até as 14h05.
Se a condição de alerta for atendida após a execução da consulta, pode levar até dois minutos para que o incidente se propague pelo sistema.
Falhas de consulta
As consultas emitidas por políticas de alerta com base em SQL podem falhar por vários motivos, incluindo:
A conta de serviço de monitoramento não existe mais ou não tem mais as permissões necessárias para ler os dados de registro que estão sendo consultados.
O tempo de execução da consulta excede cinco minutos.
Ocorre um erro interno.
Uma consulta com falha gera uma entrada de registro contendo o ID da política de alerta e o status do erro. É possível usar uma política de alertas com base em registros para criar um alerta quando um erro for registrado.
Antes de começar
Esta seção pressupõe que você fez o upgrade do bucket de registros para usar a Análise de registros e que pode consultar e visualizar os dados de registros usando a página da Análise de registros. Também supõe que você já criou um conjunto de dados vinculado do BigQuery para seu bucket de registros.
Antes de criar uma política de alertas baseada em SQL, siga estas etapas:
-
Para conseguir as permissões necessárias para criar e gerenciar políticas de alertas baseadas em SQL, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Editor do Monitoring (
roles/monitoring.editor
) no projeto -
Registro do SqlAlertWriter (
roles/logging.sqlAlertWriter
) no seu projeto
-
Editor do Monitoring (
Verifique se a conta de serviço de monitoramento existe e tem os seguintes papéis:
- Agente de serviço do Monitoring (
roles/monitoring.notificationServiceAgent
) no projeto. - Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) no seu conjunto de dados vinculado.
Se a conta de serviço de monitoramento não existir, consulte Solução de problemas: conta de serviço de monitoramento ausente.
- Agente de serviço do Monitoring (
- Para permitir que suas políticas de alerta baseadas em SQL sejam executadas em slots reservados do BigQuery, faça o seguinte:
- Configure os canais de notificação que você quer usar para receber notificações de incidentes. Para fins de redundância, recomendamos que você crie vários tipos de canais de notificação. Para saber mais, consulte Criar e gerenciar canais de notificação.
Criar uma política de alertas baseada em SQL
Para criar uma política de alertas baseada em SQL, faça o seguinte:
Console doGoogle Cloud
-
No console Google Cloud , acesse a página Análise de dados de registros:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Na página Análise de dados de registros, no editor de consultas, insira uma consulta SQL para uma visualização de registro.
Para mais informações sobre como escrever consultas SQL para visualizações de registro, consulte Consultar uma visualização de registro.
Na barra de ferramentas, clique em Executar no BigQuery.
O Log Analytics executa sua consulta no mecanismo do BigQuery e mostra os resultados na tabela Results.
Se a opção Executar no BigQuery não aparecer, clique em settings Selecionar mecanismo de consulta e em BigQuery. O botão Executar consulta muda para Executar no BigQuery.
Na tabela Results da página Log Analytics, clique em add_alert Create alert.
A página Análise de dados de registros mostra a janela Criar política de alerta SQL, que mostra sua consulta na seção Consulta SQL.
Na seção Condição de alerta, configure a condição e a programação da política de alertas.
Configure os detalhes do alerta da sua política de alertas.
Adicione canais de notificação e configure o conteúdo da notificação, como uma linha de assunto personalizada.
Opcional: adicione rótulos de política de alertas e documentação.
Clique em Próxima.
Revise e crie a política de alertas clicando em Salvar.
API Cloud Monitoring
Use o método alertPolicies.create
para
criar políticas de alerta de forma programática. O tipo Condition
da sua política de alertas precisa ser
conditionSql
, que é uma instância de
SqlCondition
.
Esse tipo de condição permite que as condições da sua política de alertas sejam definidas com SQL.
Para definir a programação,
defina um valor periodicity
para um dos campos minutes
, hours
ou days
. Por exemplo, se você quiser que a consulta seja executada a cada 12 horas, defina
a periodicidade do campo hours
como 12.
Para definir a condição, use os seguintes campos:
boolean_test
: configura a política de alertas para que a condição seja atendida quando uma linha de uma coluna booleana na tabela de resultados da consulta contiver um valor verdadeiro.row_count_test
: configura a política de alertas para que a condição seja atendida quando o número de linhas na tabela de resultados da consulta atender a um determinado limite.
Para conferir uma lista completa de campos e definições, consulte
SqlCondition
na documentação da API Cloud Monitoring.
Para mais informações sobre a API Monitoring para políticas de alertas, consulte Como gerenciar políticas de alertas por API.
Terraform
Instale e configure o Terraform para seu projeto. Para as configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
No Cloud Shell, acesse o diretório que contém a configuração do Terraform.
Na configuração do Terraform, configure uma instância do recurso google_monitoring_alert_policy, incluindo condition_sql.
No Cloud Shell, digite
terraform apply
.
Para modificar a política de alertas, faça as edições e aplique novamente a configuração do Terraform. Para mais informações, consulte Gerenciar políticas de alertas com o Terraform.
Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com Google Cloud.
Limitações
É possível ter uma condição por política de alertas baseada em SQL.
As políticas de alertas baseadas em SQL não podem consultar uma visualização de análise.
As consultas emitidas por políticas de alertas baseadas em SQL falham quando o tempo de execução ultrapassa cinco minutos.
Há um atraso de até sete minutos, mais o tempo de execução da consulta, entre o momento em que uma consulta é programada e o momento em que um incidente é criado.
Para uma lista completa de limites associados a políticas de alerta, consulte Limites de monitoramento.
Preços
Para mais informações sobre preços, consulte estes documentos:
- Preços do BigQuery
- Cloud Logging na documentação de preços da Observability do Google Cloud
- Cloud Monitoring na documentação de preços da Observability do Google Cloud
A seguir
Para mais informações sobre como criar gráficos com seus dados da Análise de registros, consulte Resultados da consulta de gráficos com a Análise de registros.
Para informações sobre como gerenciar incidentes dessas políticas de alertas, consulte Incidentes para políticas de alertas baseadas em SQL.