Pode configurar uma política de alertas para receber uma notificação sempre que uma mensagem específica aparecer nos registos incluídos. Por exemplo, se quiser saber quando um registo de auditoria regista uma mensagem de acesso aos dados específica, pode receber uma notificação quando a mensagem aparecer. Estes tipos de políticas de alerta são denominados políticas de alerta baseadas em registos. Este documento descreve como fazer o seguinte: através da Google Cloud consola e da API Cloud Monitoring:
- Crie e teste uma política de alerta baseada em registos.
- Edite uma política de alertas baseada em registos.
- Elimine uma política de alertas baseada em registos.
Antes de começar
-
Verify that billing is enabled for your Google Cloud project.
Reveja a comparação de alertas para determinar se as políticas de alertas baseadas em registos são adequadas para os dados nos seus registos. Por exemplo:
As políticas de alerta baseadas em registos não funcionam em registos excluídos.
Não pode usar políticas de alerta baseadas em registos para obter contagens dos seus registos. Para derivar contagens, tem de usar métricas baseadas em registos.
Para criar e gerir políticas de alerta baseadas em registos, a sua função de gestão de identidade e acesso tem de incluir as autorizações descritas em Autorizações para políticas de alerta baseadas em registos.
Crie uma política de alertas baseada em registos através do Explorador de registos
Pode criar uma política de alertas baseada em registos na página Explorador de registos na Google Cloud consola ou através da API Monitoring. Esta secção descreve como criar políticas de alerta baseadas em registos através do Explorador de registos. Para informações sobre a API Monitoring, consulte o artigo Crie uma política de alerta baseada em registos através da API Monitoring.
As políticas de alerta baseadas em registos não respeitam a definição de âmbito na página do Explorador de registos. Em alternativa, quando um destino ao nível do projeto encaminha uma entrada de registo originada num projeto para um contentor de registos, as políticas de alertas baseados em registos definidas nesse projeto analisam a entrada de registo. Para saber mais, consulte o artigo Entradas de registo disponíveis.
A interface do Explorador de registos orienta-o nos seguintes passos:
- Indique detalhes para a política de alertas, como um nome e um nível de gravidade.
- Escolha os registos para os quais quer receber uma notificação.
- Defina o tempo entre notificações.
- Defina o tempo para o encerramento automático de incidentes.
- Especifique quem quer notificar.
Por exemplo, suponha que tem uma aplicação que escreve uma entrada de registo com a gravidade NOTICE
quando a aplicação altera um endereço de rede.syslog
As entradas de registo para alterações de endereço de rede incluem um payload JSON com o seguinte aspeto:
"jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "IP_ADDRESS", }
Quer criar uma política de alertas baseada em registos que lhe envie uma notificação quando um endereço IPv4 inválido aparecer no campo jsonPayload.result
das entradas de registo em syslog
com gravidade NOTICE
.
Para criar esta política de alerta, faça o seguinte:
-
Na Google Cloud consola, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.
Use o painel Consulta para criar uma consulta que corresponda à mensagem que quer usar na sua política de alertas baseada em registos.
Por exemplo, para encontrar entradas do registo com um nível de gravidade de
NOTICE
no registosyslog
que tenham endereços IP inválidos no payload JSON, pode usar a seguinte consulta:log_id("syslog") severity = "NOTICE" jsonPayload.result !~ "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$"
Clique em Executar consulta para validar a consulta.
Na barra de ferramentas Resultados da consulta, expanda o menu Ações e selecione add_alert Criar alerta de registo.
No painel Detalhes do alerta, faça o seguinte:
Introduza um nome para a política de alertas no campo Nome da política de alertas. Por exemplo: "Endereço de rede: valor IPv4 inválido".
Selecione uma opção no menu Nível de gravidade da política. Os incidentes e as notificações apresentam o nível de gravidade.
Opcional: adicione documentação para a sua política de alertas. Pode incluir informações que possam ajudar o destinatário de uma notificação a diagnosticar o problema. A seguinte string resume o motivo da notificação:
Log-based alerting policy in project ${project} detected an invalid IPv4 value.
Para obter informações sobre como pode formatar e personalizar o conteúdo deste campo, consulte o artigo Usar Markdown e variáveis em modelos de documentação.
Para avançar para o passo seguinte, clique em Seguinte.
No painel Escolha os registos a incluir no alerta, faça o seguinte:
Introduza uma consulta ou edite a consulta existente para filtrar os registos disponíveis. As entradas de registo que correspondem à consulta fazem com que a política de alerta seja acionada.
Para validar a consulta, clique em Pré-visualizar registos.
Opcional: extraia etiquetas de registo. Pode criar etiquetas a partir de campos de registo para serem apresentadas em incidentes e notificações criados pelo alerta.
No campo de documentação da sua política de alertas, refere-se às etiquetas extraídas através de uma variável do formulário
${log.extracted_label.KEY}
, ondeKEY
é o nome que deu à etiqueta extraída.
Clicar em Seguinte.
Selecione o tempo mínimo entre notificações. Este valor permite-lhe controlar o número de notificações que recebe da monitorização se esta condição for cumprida várias vezes. Para este exemplo, selecione 5 min nas opções.
Opcional: selecione a duração do encerramento automático do incidente. Por predefinição, a duração do encerramento automático de incidentes está definida como 7 dias.
Clicar em Seguinte.
Selecione um ou mais canais de notificação para a sua política de alertas. Para este exemplo, selecione um canal de notificação por email.
Se já tiver um canal de notificação por email configurado, pode selecioná-lo na lista. Caso contrário, clique em Gerir canais de notificação e adicione um canal de email. Para obter informações sobre como criar canais de notificação, consulte o artigo Crie e faça a gestão de canais de notificação.
Clique em Guardar.
A sua política de alertas baseada em registos está agora pronta para ser testada.
Teste a política de alertas baseada em registos de exemplo
Para testar a política de alerta que criou, pode escrever manualmente uma entrada de registo que corresponda à consulta. Para escrever a entrada do registo, faça o seguinte:
Configure a seguinte entrada do registo alterando a variável
PROJECT_ID
para o ID do seu projeto:{ "entries": [ { "logName": "projects/PROJECT_ID/logs/syslog", "jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "999.027.405.1", }, "severity": "NOTICE", "resource": { "type": "generic_task", "labels" : { "project_id": "PROJECT_ID", "location": "us-east1", "namespace": "fake-task-2", "job": "write-log-entry", "task_id": "11", }, }, }, ], }
Aceda à página de referência
logEntries.write
ou clique no seguinte botão:Copie a entrada de registo que configurou anteriormente.
No painel Experimentar esta API, faça o seguinte:
Substitua o conteúdo do campo Corpo do pedido no APIs Explorer pela entrada de registo que copiou no passo anterior.
Clique em Executar. Se lhe for pedido, siga o fluxo de autenticação.
Se a chamada
logEntries.write
for bem-sucedida, recebe um código de resposta HTTP200
e um corpo da resposta vazio{}
. Para mais informações acerca do APIs Explorer, consulte o artigo Usar o APIs Explorer na documentação de monitorização. O APIs Explorer funciona da mesma forma com a API Logging.
A entrada do registo corresponde ao filtro especificado para a política de alertas das seguintes formas:
- O valor
logName
especifica o registosyslog
que se encontra no seu Google Cloud projeto. - O valor
severity
para esta entrada do registo éNOTICE
. - O valor
jsonPayload.result
não é um endereço IPv4 válido.
Depois de escrever a entrada do registo, ocorre a seguinte sequência:
- A nova entrada de registo é apresentada no Explorador de registos. A entrada do registo cumpre a condição da política de alerta.
- É aberto um incidente no Cloud Monitoring.
Recebe uma notificação sobre o incidente. Se configurou um canal de notificação por email, a notificação tem o seguinte aspeto:
Pode clicar em Ver incidente no email para ver o incidente no Cloud Monitoring. Para mais informações sobre incidentes, consulte o artigo Faça a gestão de incidentes para políticas de alertas baseadas em registos.
Outros cenários: alertas sobre registos de auditoria
O exemplo na secção intitulada Criar uma política de alertas baseada em registos é artificial. Normalmente, não cria uma política de alertas e, em seguida, escreve manualmente entradas de registo que cumprem a condição da política de alertas. Normalmente, as entradas de registo são escritas por aplicações ou outros serviços. No entanto, a origem das entradas de registo não importa. Para as políticas de alerta baseadas em registos, o que importa é a consulta que usa para selecionar as entradas de registo.
As secções seguintes descrevem cenários realistas para políticas de alertas baseados em registos com base no conteúdo dos registos de auditoria. Cada cenário ilustra como criar uma consulta que selecione as entradas do registo de auditoria adequadas. Caso contrário, o procedimento para criar as políticas de alerta baseadas em registos é o mesmo que o apresentado em Criar um alerta baseado em registos.
Políticas de alerta que monitorizam o acesso humano a segredos
Suponhamos que o seu projeto armazena segredos no Secret Manager e que alguns destes segredos destinam-se apenas a ser usados por contas de serviço. Exceto em circunstâncias invulgares, os utilizadores humanos nunca acedem a estes segredos.
Se tiver ativado o registo de auditoria para o Secret Manager, cada tentativa bem-sucedida de aceder a um segredo cria uma entrada no registo de auditoria. Cada entrada inclui o nome do segredo e a identidade do autor da chamada.
Pode criar uma política de alertas baseada em registos que lhe envia uma notificação quando um utilizador humano acede a um segredo.
O exemplo seguinte mostra um excerto de uma entrada do registo de auditoria escrita pelo Secret Manager. O excerto mostra os campos úteis para criar a consulta para um alerta baseado em registos:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "serviceName": "secretmanager.googleapis.com", "methodName": "google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion", "authenticationInfo": { "principalEmail": "my-svc-account@PROJECT_ID.iam.gserviceaccount.com", "serviceAccountDelegationInfo": [], "principalSubject": "serviceAccount:my-svc-account@PROJECT_ID.iam.gserviceaccount.com" }, ... }, ... }
Os seguintes subcampos protoPayload
são de particular interesse:
@type
: indica que esta entrada do registo é uma entrada do registo de auditoria.serviceName
: regista o serviço que escreveu a entrada do registo de auditoria. Use este campo para identificar as entradas escritas pelo Secret Manager.methodName
: identifica o método para o qual esta entrada do registo de auditoria foi escrita. Use este campo para identificar a ação que fez com que esta entrada fosse criada. Neste exemplo, é o métodoAccessSecretVersion
.authenticationInfo.principalEmail
: regista a conta que invocou o método no campomethodName
. O valor esperado para este campo é uma conta de serviço, que termina comgserviceaccount.com
.
Para encontrar entradas de registo para acesso secreto por um utilizador humano, procure
entradas de registo de auditoria escritas pelo Gestor Secreto. Quer encontrar as entradas de registo em que o método AccessSecretVersion
foi invocado por um principal que não termina com gserviceaccount.com
.
A seguinte consulta isola estas entradas de registo:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "secretmanager.googleapis.com" protoPayload.methodName =~ "AccessSecretVersion$" protoPayload.authenticationInfo.principalEmail !~ "gserviceaccount.com$"
Para criar uma política de alertas baseada em registos para o acesso humano a segredos, use esta consulta no painel Escolher registos a incluir no alerta.
Políticas de alerta que monitorizam eventos de desencriptação
A análise no exemplo anterior pode ser adaptada a outros serviços. Por exemplo, se usar o Cloud Key Management Service para encriptar e desencriptar dados confidenciais, pode usar os registos de auditoria gerados pelo Cloud KMS para detetar quando um utilizador humano desencripta um valor.
Para encontrar entradas de registo relativas à desencriptação feita por um utilizador humano, procure
entradas de registo de auditoria escritas pelo Cloud KMS. Quer encontrar as entradas de registo nas quais o método Decrypt
foi invocado por um principal que não termina com gserviceaccount.com
, o que indica uma conta de serviço.
A seguinte consulta isola estas entradas de registo:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "cloudkms.googleapis.com" protoPayload.methodName = "Decrypt" protoPayload.authenticationInfo.principalEmail !~ "gserviceaccount.com$"
Para criar uma política de alerta baseada em registos para a desencriptação feita por um utilizador humano, use esta consulta no painel Escolher registos a incluir no alerta.
Faça a gestão das políticas de alertas baseadas em registos na Monitorização
Pode ver, editar e eliminar políticas de alertas baseadas em registos através da Google Cloud consola do Monitoring ou da API Monitoring. Este documento descreve como gerir as políticas de alerta através da Google Cloud consola. Para obter informações sobre a utilização da API Monitoring para gerir políticas de alerta, consulte o artigo Gerir políticas de alerta por API.
Para ver uma lista de todas as políticas de alerta no seu Google Cloud projeto, faça uma das seguintes ações:
Para navegar a partir do Registo:
-
Na Google Cloud consola, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.
Na barra de ferramentas Resultados da consulta, expanda o menu Ações e selecione edit Gerir alertas de registo.
-
Para navegar a partir da Monitorização:
-
Na Google Cloud consola, aceda à página notifications Alertas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
Para ver todas as políticas e ativar a filtragem, no painel Políticas, clique em Ver todas as políticas.
-
Ambas as ações direcionam para a página Políticas de monitorização, que apresenta todas as políticas de alerta no seu Google Cloud projeto.
Para restringir as políticas de alerta apresentadas, adicione filtros.
Cada filtro é composto por um nome e um valor. Por exemplo, pode definir o valor como uma correspondência exata para um nome de política ou uma correspondência parcial. As correspondências não são sensíveis a maiúsculas e minúsculas.
Se especificar vários filtros, estes são unidos implicitamente por um operador lógico AND
, a menos que insira um filtro OR
.
A captura de ecrã seguinte apresenta as políticas de alerta ativadas e que foram criadas após 1 de janeiro de 2021:
Na página Políticas, pode editar, eliminar, copiar, ativar ou desativar uma política de alertas:
Para editar ou copiar uma política, clique em more_vert Mais opções> e selecione uma opção. A edição e a cópia de uma política são semelhantes ao procedimento descrito no artigo Crie uma política de alertas baseada em registos. Pode alterar e, em alguns casos, eliminar os valores nos campos. Quando terminar, clique em Guardar.
Também pode editar uma política de alertas baseada em registos clicando no respetivo nome na lista de políticas.
Para eliminar uma política, clique em Mais opções more_vert e selecione Eliminar. Na caixa de diálogo de confirmação, selecione Eliminar.
Para ativar ou desativar a política de alertas, clique no botão para ativar/desativar localizado abaixo do cabeçalho Ativada.
Crie uma política de alertas baseada em registos através da API Monitoring
Pode criar políticas de alerta baseadas em registos através da API Monitoring. Fornece as mesmas informações à API Monitoring que fornece quando usa o Explorador de registos na Google Cloud consola:
- Detalhes da política de alerta, como um nome e um nível de gravidade.
- Os registos para os quais quer receber uma notificação.
- O tempo entre notificações.
- O tempo para o encerramento automático de incidentes.
- A quem enviar a notificação.
Para criar políticas de alerta através da API Monitoring, tem de
criar um objeto AlertPolicy
e enviá-lo para o método
alertPolicies.create
.
Antes de poder usar a API Monitoring, tem de ativar a API e ter autorização para a usar. Para mais informações, consulte a seguinte documentação:
Estrutura das políticas de alerta
A API Monitoring representa uma política de alertas através da estrutura AlertPolicy
.
A estrutura AlertPolicy
tem várias estruturas incorporadas, incluindo uma descrição da condição da política de alertas. As políticas de alerta baseadas em registos diferem das políticas de alerta baseadas em métricas nos seguintes aspetos:
- Descreve a condição através do tipo de condição
LogMatch
. As políticas de alerta baseadas em métricas usam diferentes tipos de condições. - Uma política de alerta baseada em registos só pode ter uma condição.
- Especifica o tempo entre as notificações e o período de encerramento automático de incidentes incluindo uma estrutura
AlertStrategy
. As políticas de alertas baseadas em métricas não incluem um tempo entre notificações.
Esta secção descreve como criar uma política de alertas baseada em registos. Estas políticas diferem das políticas de alerta baseadas em métricas no tipo de condição que usa. Para políticas de alerta baseadas em registos,
o tipo de condição é LogMatch
. Quando usa a API Monitoring para gerir políticas de alerta, não existem diferenças na forma como lista, edita ou elimina políticas baseadas em métricas e registos.
O artigo Gerir políticas de alerta por API descreve como criar, listar, editar e eliminar políticas de alerta através da API Monitoring.
Regras de notificação
Quando cria uma política de alertas baseada em registos, o Logging cria um objeto interno denominado regra de notificação. O registo usa a regra de notificação para fazer corresponder as entradas de registo recebidas ao filtro da sua política de alertas e, em seguida, para criar uma notificação quando uma entrada corresponde aos critérios de filtro. Não interage diretamente com a regra de notificação. No entanto, para criar uma política de alertas baseada em registos,
tem de ter a autorização logging.notificationRules.create
.
Conceba a política de alerta
A secção intitulada
Crie uma política de alertas baseada em registos através do Explorador de registos
descreve uma forma de criar uma política de alertas baseada em registos.
Essa secção mostra como criar uma política de alertas baseada em registos que lhe envia uma notificação quando uma entrada de registo syslog
tem um nível de gravidade NOTICE
e um endereço IPv4 inválido no campo jsonPayload.result
.
Para criar a mesma política de alertas baseada em registos através da API Monitoring, tem de criar um objeto AlertPolicy
com a seguinte estrutura JSON:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\") severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Este código JSON especifica as mesmas informações que especifica
quando cria uma política de alertas baseada em registos através do Explorador de registos. As secções
seguintes mapeiam o conteúdo desta estrutura AlertPolicy
para os passos que
segue quando usa o Explorador de registos para criar um alerta baseado em registos. O valor do campo conditionMatchedLog
é uma estrutura LogMatch
.
Indique um nome e documentação
Uma política de alerta tem um nome a apresentar e documentação associada que é
fornecida com as notificações para ajudar os responsáveis. No Explorador de registos,
estes campos são denominados Nome do alerta e Documentação. Representa estes valores numa estrutura AlertPolicy
da seguinte forma:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, ... }
Neste exemplo, o valor de displayName
inclui "(API)" para que possa distinguir entre as duas políticas de exemplo quando vir a lista de políticas na consola Google Cloud . A página Políticas de monitorização apresenta as políticas por nome a apresentar e
indica se a política se baseia em métricas ou registos. Para mais informações,
consulte o artigo
Faça a gestão das políticas de alertas baseadas em registos na monitorização.
O campo documentation
inclui, no subcampo content
, a descrição que pode fornecer quando usa o Explorador de registos. O segundo subcampo, mimeType
, é obrigatório quando especifica um valor para o campo documentation
.
O único valor válido é "text/markdown"
.
Escolha os registos para os quais quer receber uma notificação
Uma política de alerta baseada em registos tem uma única condição. No Explorador de registos,
especifica a condição quando fornece uma consulta no campo Definir entradas de registo para
receber alertas. Representa estes valores numa estrutura AlertPolicy
da seguinte forma:
{ ... "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", ... }
O campo conditions
aceita uma lista de estruturas Condition
, embora uma política de alertas baseada em registos só possa ter uma condição. Cada Condition
tem um nome a apresentar e uma descrição da condição.
O valor do campo
displayName
é uma breve descrição da condição. Quando usa o Explorador de registos para criar políticas de alertas baseadas em registos, o nome a apresentar é sempre "Condição de correspondência de registos". Quando usa a API Monitoring, pode fornecer um nome a apresentar mais preciso. É necessário um valor.O valor do campo
conditionMatchedLog
é uma estruturaLogMatch
e o valor do campofilter
é a consulta que especifica no Explorador de registos. Uma vez que esta consulta é fornecida como o valor de um campo JSON, toda a consulta aparece entre aspas, e quaisquer aspas na própria consulta têm de ser escapadas com o caráter\
(barra invertida).A estrutura
LogMatch
também inclui um campolabelExtractors
opcional. Pode usar extratores de etiquetas para compor etiquetas personalizadas a partir das entradas de registo e, em seguida, fazer referência a essas etiquetas nas suas notificações.Por exemplo, para extrair o valor da etiqueta
labels."compute.googleapis.com/resource_id"
da sua entrada de registo para uma etiqueta denominadavm_identifier
, a condição anterior pode ter o seguinte aspeto:"conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\")", "labelExtractors": { "vm_identifier": "EXTRACT(labels.\"compute.googleapis.com/resource_id\")" } }, } ],
Use a função
EXTRACT
para corresponder ao valor completo ou use a funçãoREGEXP_EXTRACT
para corresponder a subcadeias com base em expressões regulares. Esta é a mesma função usada para a extração de etiquetas em métricas baseadas em registos. Consulte o artigo Criar uma etiqueta para mais informações.Pode usar estas etiquetas extraídas na documentação da política de alerta para que sejam comunicadas nas notificações. No campo
documentation
da sua política de alertas, refere-se às etiquetas extraídas através de uma variável no formato${log.extracted_label.KEY}
, em queKEY
é o nome que deu à etiqueta extraída.O exemplo seguinte mostra como fazer referência à chave da etiqueta extraída
vm_identifier
, para que o valor da etiqueta de registolabels."compute.googleapis.com/resource_id"
seja incluído nas notificações:"documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value on VM with ID ${log.extracted_label.vm_identifier}.", "mimeType": "text/markdown" },
O valor do campo combiner
especifica como combinar os resultados de várias condições em políticas de alertas baseadas em métricas. Só pode usar uma condição nas políticas de alertas baseados em registos e tem de especificar o campo combiner
com o valor "OR"
. Não pode criar políticas de alertas baseadas em registos com várias condições.
Defina valores de notificação e fecho automático
Uma política de alerta baseada em registos especifica o tempo mínimo entre notificações. No Explorador de registos, selecione um valor no menu Tempo entre notificações.
Representa este valor numa estrutura AlertPolicy
especificando um valor, em segundos, para o campo period
de uma estrutura NotificationRateLimit
incorporada numa estrutura AlertStrategy
.
Da mesma forma, a política de alertas inclui o período para fechar incidentes automaticamente. O valor predefinido é 7 dias.
No Explorador de registos, pode selecionar um valor diferente no menu Duração do encerramento automático do incidente. A opção corresponde ao campo autoclose
na estrutura da API AlertStrategy
.
Quando usar este campo, especifique o valor em segundos. O valor mínimo é de 1800 segundos ou 30 minutos.
{ ... "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, ... }
O valor do campo period
neste exemplo, 300s
, é equivalente a 5 minutos. O valor de autoclose
, 604800s
, é equivalente a 7 dias.
Especifique quem quer notificar
Uma política de alertas pode incluir uma lista de canais de notificação.
No Explorador de registos, selecione canais num menu.
Representa estes valores numa estrutura AlertPolicy
fornecendo
uma lista de um ou mais nomes de recursos para objetos NotificationChannel
configurados:
{ ... "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Quando cria um canal de notificação, é-lhe atribuído um nome do recurso. Para obter informações sobre como obter a lista de canais de notificação disponíveis, que inclui os respetivos nomes de recursos, consulte o artigo Obter canais na documentação de monitorização. Não pode obter os IDs dos canais através da consola.Google Cloud
Envie a sua política de alertas para a API Monitoring
Para criar uma política de alerta através da API Monitoring, tem de
criar um objeto AlertPolicy
e enviá-lo para o método
alertPolicies.create
. Pode invocar
o alertPolicies.create
através da Google Cloud CLI,
chamando a API Monitoring diretamente.
Também pode criar políticas de alerta baseadas em registos
através das bibliotecas cliente para
C#, Go, Java, Python e Ruby. Também pode usar outras bibliotecas
cliente. A biblioteca para o seu idioma tem de incluir o tipo de condição
LogMatch
.
Para criar uma política de alertas através da CLI gcloud, faça o seguinte:
Coloque a representação JSON da sua política de alertas num ficheiro de texto, por exemplo, num ficheiro denominado
alert-invalid-ip.json
.Transmita este ficheiro JSON à CLI gcloud através do seguinte comando:
gcloud alpha monitoring policies create --policy-from-file="alert-invalid-ip.json"
Se for bem-sucedido, este comando devolve o nome do recurso da nova política, por exemplo:
Created alerting policy [projects/PROJECT_ID/alertPolicies/POLICY_ID].
Para criar uma política de alerta chamando alertPolicies.create
diretamente,
pode usar a ferramenta APIs Explorer da seguinte forma:
Aceda à página de referência
alertPolicies.create
.No painel Experimentar esta API, faça o seguinte:
No campo
name
, introduza o seguinte valor:projects/PROJECT_ID
Copie a representação JSON da sua política de alertas e substitua o conteúdo do campo Corpo do pedido no APIs Explorer pela política de alertas copiada.
Clique em Executar.
Se a chamada
alertPolicies.create
for bem-sucedida, recebe um código de resposta HTTP200
e um corpo da resposta vazio,{}
. Para mais informações sobre o Explorador de APIs, consulte o artigo Usar o Explorador de APIs na documentação de monitorização.
Para mais informações sobre a criação de políticas de alerta através da API Monitoring, consulte o artigo Criar políticas. Os exemplos nesse documento usam tipos de condições para políticas de alertas baseados em métricas, mas os princípios são os mesmos.
Teste a política de alerta
Para testar a nova política de alertas, pode usar o mesmo procedimento descrito em Teste o alerta baseado em registos de exemplo.
Exemplo: crie uma política de alerta quando uma entrada de registo contiver uma string de texto
Este exemplo usa a Google Cloud consola para criar uma política de alertas, o Explorador de registos para ver entradas de registo e a CLI do Google Cloud para escrever uma entrada de registo:
-
Na Google Cloud consola, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.
No painel Consulta, introduza a seguinte consulta depois de atualizar o valor de PROJECT_ID:
logName="projects/PROJECT_ID/logs/test-log" textPayload:"Oops"
A consulta pesquisa no registo com o nome
test-log
entradas de registo que têm um campotextPayload
que contém a string "Oops".Na barra de ferramentas Resultados da consulta, expanda o menu Ações e selecione add_alert Criar alerta de registo. Em seguida, conclua a caixa de diálogo.
Tem de introduzir um nome para a política, como
Alert on Oops
. A consulta que introduziu no passo anterior é incluída automaticamente na política de alertas.Para testar a política de alertas, abra o Cloud Shell e, em seguida, execute o seguinte comando:
gcloud logging write test-log --severity=ERROR --payload-type=text 'This log entry contains Oops'
O comando anterior escreve uma entrada no registo com o nome
test-log
. A entrada tem um nível de gravidade deERROR
e inclui um campotextPayload
.No Explorador de registos, clique em Executar consulta.
Depois de o ecrã ser atualizado, pode ver os detalhes da entrada do registo que escreveu no passo anterior.
-
Na Google Cloud consola, aceda à página notifications Alertas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
O painel Incidentes apresenta o incidente e os detalhes acerca da política de alertas.
Se não vir um incidente quando abrir a página Alertas, aguarde alguns minutos e atualize a página.
Não vê outro incidente nem recebe outra notificação se repetir imediatamente o comando da CLI gcloud. As definições da política de alertas especificam o período mínimo entre incidentes. Pode ver e alterar essas definições editando a política.