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 alerta
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ê quer 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 alerta 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 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 alerta executa uma consulta SQL, ela é executada usando slots do BigQuery reservados no projeto do Google Cloud em que a política de alerta é definida. Para mais informações, consulte Trabalhar com reservas de slots.
Para que uma política de alerta use slots reservados do BigQuery para consultar uma visualização de registro, o bucket de registro 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 registro 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 alerta.
- O carimbo de data/hora da entrada de registro, que registra quando a entrada de registro foi gerada, precisa estar dentro dos 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 corresponder 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 13h15.
Quando você executa uma consulta na interface da Análise de registros, todas as entradas de registro no intervalo de tempo selecionado são avaliadas com base no carimbo de data/hora da entrada de registro.
Antes de começar
-
Para receber as permissões necessárias para usar o Log Analytics, peça ao administrador para conceder a você os seguintes papéis do IAM nos seus buckets ou visualizações de registros:
-
Para consultar os buckets de registro
_Required
e_Default
: Visualizador de registros (roles/logging.viewer
) -
Para consultar todas as visualizações de registro em um projeto:
Acessador de visualização de registros (
roles/logging.viewAccessor
) -
Para consultar registros em uma visualização de registros específica:
Crie uma política do IAM para a visualização de registros ou restrinja o papel de acessador de visualizações de registros (
roles/logging.viewAccessor
) a uma determinada visualização. Para mais informações, consulte Controlar o acesso a uma visualização de registro.
-
Para consultar os buckets de registro
- Para as visualizações de registro que você quer consultar, acesse a página Armazenamento de registros e verifique se os buckets de registro que armazenam essas visualizações foram atualizados para usar a Análise de dados de registros. Se necessário, faça upgrade do bucket de registros.
- Para ativar a execução de consultas em slots reservados do BigQuery, faça o seguinte:
- Se o bucket de registro que você planeja consultar não tiver um conjunto de dados vinculado, crie um conjunto de dados vinculado para ele.
- Configure slots reservados do BigQuery e os atribua ao seu projeto do Google Cloud.
-
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 -
Usuário de jobs do BigQuery (
roles/bigquery.jobUser
) no seu projeto -
Visualizador de dados do BigQuery (
roles/bigquery.dataViewer
) no conjunto de dados vinculado
Para informações sobre como conceder acesso a um conjunto de dados, consulte Conceder acesso a um conjunto de dados.
-
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 (
- 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.
No console do Google Cloud, acesse a página Armazenamento de registros:
Acessar o armazenamento de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Criar uma política de alertas baseada em SQL
Para criar uma política de alertas baseada em SQL, faça o seguinte:
Console do Google Cloud
-
No console do 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 registros, 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 alertas 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.
Opcional: adicione rótulos de política de alertas e documentação.
Adicione canais de notificação e 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 alerta 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 alerta 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.
Limitações
Quando uma política de alertas é programada para avaliar a condição, a execução da consulta SQL é atrasada em cinco minutos para dar tempo ao Cloud Logging indexar as entradas de registro recebidas durante a janela de retorno. Por exemplo, se a política de alertas usa uma janela de lookback que termina às 14h, a consulta SQL só é executada às 14h05.
Para saber os limites associados às políticas de alertas, consulte Limites do Monitoring.
- É possível monitorar o resultado da consulta quando uma visualização de análise é consultada.
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.