Neste documento, explicamos como o Cloud Logging roteia as entradas de registro recebidas por Google Cloud. Há vários tipos diferentes de destinos de roteamento. Por exemplo, é possível rotear entradas de registro para um destino, como um bucket de registros, que armazena entradas de registro. Se você quiser exportar seus dados de registro para um destino de terceiros, poderá rotear as entradas de registro para o Pub/Sub. Além disso, uma entrada de registro pode ser encaminhada para vários destinos.
De modo geral, é assim que o Cloud Logging roteia e armazena entradas de registro:
Sobre os roteadores de registros
Cada Google Cloud projeto, conta de faturamento, pasta e organização tem um roteador de registros, que gerencia o fluxo de entradas de registro por coletores no nível do recurso. Um Log Router também gerencia o fluxo de uma entrada de registro por coletores que estão na hierarquia de recursos da entrada. Os coletores controlam como as entradas de registro são encaminhadas para destinos.
Um roteador de registros armazena uma entrada de registro temporariamente. Esse comportamento protege contra interrupções temporárias e falhas que podem ocorrer quando uma entrada de registro flui pelos coletores. O armazenamento temporário não oferece proteção contra erros de configuração.
O armazenamento temporário do roteador de registros é diferente do armazenamento de longo prazo fornecido pelos buckets do Logging.
As entradas de registro recebidas com carimbos de data/hora que excedem o período de armazenamento de registros no passado ou que estão mais de 24 horas no futuro são descartadas.
Sobre os coletores de registros
Quando um coletor de registros recebe uma entrada de registro, ele determina se deve ignorar ou encaminhar a entrada. Essa decisão é tomada comparando a entrada de registro aos filtros no coletor de registros. Quando a entrada de registro é encaminhada, o coletor de registros envia a entrada para o destino especificado por coletor de registros. Esse destino pode ser um projeto, um local de armazenamento ou um serviço.
Os coletores de registros pertencem a um determinado recurso do Google Cloud Google Cloud:projetos, contas de faturamento, pastas e organizações. Google Cloud Esses recursos também contêm vários gravadores de registros. Quando um recurso recebe uma entrada de registro, cada coletor de registros nesse recurso avalia a entrada de registro de forma independente. Como resultado, vários gravadores de registros podem encaminhar a mesma entrada de registro.
Por padrão, os dados de registro são armazenados no projeto de origem. No entanto, há vários motivos para mudar essa configuração:
- Para centralizar o armazenamento dos dados de registro.
- Para combinar seus dados de registros com outros dados comerciais.
- Para organizar os dados de registro de uma maneira que seja útil.
- Para transmitir os registros para outros aplicativos, outros repositórios ou terceiros. Por exemplo, talvez você queira exportar seus registros do Google Cloud para visualizá-los em uma plataforma de terceiros. Para exportar suas entradas de registro, crie um coletor de registros que as encaminhe para o Pub/Sub.
Um coletor de registros mal configurado não encaminha entradas de registro. Quando um coletor está mal configurado, as entradas de registro que informam o detalhe do erro são gravadas. Além disso, um e-mail é enviado aos contatos essenciais do recurso. Para mais informações, consulte Resolver problemas: visualizar erros.
Os coletores de registros não podem encaminhar entradas de registro retroativamente. Ou seja, um coletor de registros não pode direcionar uma entrada de registro recebida antes da criação do coletor. Da mesma forma, se um coletor estiver configurado incorretamente, ele só vai encaminhar as entradas de registro que chegarem depois que o erro de configuração for resolvido. No entanto, é possível copiar dados de registro de um bucket de registros para o Cloud Storage de forma retroativa. Para mais informações, consulte Copiar registros.
Suporte para organizações e pastas
Para ajudar você a gerenciar os dados de registros em uma organização ou pasta, faça o seguinte:
É possível criar coletores agregados, que encaminham entradas de registro de uma organização ou pasta e seus filhos para o destino especificado pelo coletor. Há dois tipos de gravadores agregados:
- Coletores agregados não interceptadores
- Interceptar coletores agregados
A diferença entre esses dois tipos de gravadores é que a interceptação de gravadores em um nível da hierarquia de recursos pode afetar o roteamento de recursos em níveis mais baixos. Os coletores não interceptores não afetam o roteamento de outros recursos. Quando um coletor de interceptação em um recurso corresponde a uma entrada de registro, ela não é enviada aos coletores em recursos filhos, exceto quando a entrada de registro é sempre enviada ao
_Required
coletor de registros no recurso de origem.É possível configurar as Configurações padrão de recursos para especificar a configuração do coletor
_Default
criado pelo sistema para novos recursos em uma organização ou pasta. Por exemplo, é possível usar essas configurações para desativar o gravador_Default
ou especificar os filtros nele.
Exemplos de roteamento
Esta seção ilustra como uma entrada de registro originada em um projeto pode fluir pelos coletores na hierarquia de recursos.
Exemplo: não há coletores agregados
Quando não há coletores agregados na hierarquia de recursos da entrada de registro, ela é enviada para os coletores no projeto de origem. Um coletor no nível do projeto encaminha a entrada de registro para o destino do coletor quando ela corresponde ao filtro de inclusão do coletor, mas não corresponde a nenhum dos filtros de exclusão.
Exemplo: existe um coletor agregado não interceptador
Suponha que um coletor agregado não interceptador exista na hierarquia de recursos para uma entrada de registro. Depois que o Log Router envia a entrada de registro para o coletor agregado não interceptador, ocorre o seguinte:
O coletor agregado não interceptador encaminha a entrada de registro para o destino do coletor quando ela corresponde ao filtro de inclusão, mas não a nenhum filtro de exclusão.
O roteador de registros envia a entrada de registro para os coletores no projeto em que ela foi criada.
Um coletor no nível do projeto encaminha a entrada de registro para o destino do coletor quando ela corresponde ao filtro de inclusão do coletor, mas não corresponde a nenhum dos filtros de exclusão.
Exemplo: existe um coletor agregado interceptor
Suponha que um coletor agregado de interceptação exista na hierarquia de recursos para uma entrada de registro. Depois que o Log Router envia a entrada de registro para o coletor agregado de interceptação, uma das seguintes situações ocorre:
A entrada de registro corresponde ao filtro de inclusão, mas não a nenhum filtro de exclusão:
- A entrada de registro é encaminhada para o destino do coletor agregado interceptor.
- A entrada de registro é enviada ao coletor
_Required
no projeto em que ela foi criada.
A entrada de registro não corresponde ao filtro de inclusão ou corresponde a pelo menos um filtro de exclusão:
- A entrada de registro não é roteada pelo coletor agregado interceptor.
O roteador de registros envia a entrada de registro para os coletores no projeto em que ela foi criada.
Um coletor no nível do projeto encaminha a entrada de registro para o destino do coletor quando ela corresponde ao filtro de inclusão do coletor, mas não corresponde a nenhum dos filtros de exclusão.
Filtros de coletores de registros
Cada coletor de registros contém um filtro de inclusão e pode ter vários filtros de exclusão. Esses filtros determinam se o coletor de registros vai rotear uma entrada de registro para o destino dele. Se você não especificar filtros, todas as entrada de registro serão roteadas para o destino do coletor.
Uma entrada de registro é roteada por um coletor de registros com base nestas regras:
Se a entrada de registro não corresponder ao filtro de inclusão, ela não será roteada. Quando um coletor não especifica um filtro de inclusão, todas as entrada de registro correspondem a esse filtro.
Se a entrada de registro corresponder ao filtro de inclusão e a pelo menos um filtro de exclusão, ela não será roteada.
Se a entrada de registro corresponder ao filtro de inclusão e não corresponder a nenhum filtro de exclusão, ela será roteada para o destino do coletor.
Os filtros em um coletor de registros são especificados usando a linguagem de consulta do Logging.
Não é possível usar filtros de exclusão para reduzir o consumo da sua cota da API entries.write
ou o número de chamadas da API entries.write
. Os filtros de exclusão são aplicados depois que as entradas de registro são recebidas pela API Logging.
Coletores de registros criados pelo sistema
Para cada projeto, conta de faturamento, pasta e organização do Google Cloud ,
o Cloud Logging cria dois coletores de registros, um chamado _Required
e outro
chamado _Default
. Os filtros de inclusão e exclusão desses coletores verificam se cada entrada de registro que chega ao recurso é roteada por um deles.
Os dois gravam dados de registros em um bucket de registros que está no mesmo recurso que o coletor de registros.
O restante desta seção fornece informações sobre os filtros e destinos dos coletores de registros criados pelo sistema.
Coletor de registros _Required
O coletor de registros _Required
em um recurso encaminha um subconjunto de registros de auditoria para o bucket de registros _Required
do recurso.
Esse coletor não especifica filtros de exclusão, e o filtro de inclusão
é mostrado abaixo:
LOG_ID("cloudaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("cloudaudit.googleapis.com/system_event") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR
LOG_ID("externalaudit.googleapis.com/access_transparency")
O coletor de registros _Required
só corresponde a entradas de registro originadas no
recurso em que o coletor de registros _Required
está definido. Por exemplo, suponha que um coletor de registros direcione uma entrada de registro de atividades do projeto A
para o projeto B
.
Como a entrada de registro não foi originada no projeto B
, o
coletor de registros _Required
no projeto B
não roteia essa entrada para o
bucket de registros _Required
.
Não é possível modificar ou excluir o coletor de registros _Required
.
Coletor de registros _Default
O coletor de registros _Default
em um recurso encaminha todas as entradas de registro, exceto aquelas que correspondem ao filtro do coletor de registros _Required
, para o bucket de registros _Default
do recurso.
Como o filtro de inclusão para esse coletor está vazio, ele corresponde a todas as entradas de registro. No entanto, o filtro de exclusão é configurado da seguinte maneira:
NOT LOG_ID("cloudaudit.googleapis.com/activity") AND
NOT LOG_ID("externalaudit.googleapis.com/activity") AND
NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND
NOT LOG_ID("externalaudit.googleapis.com/system_event") AND
NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND
NOT LOG_ID("externalaudit.googleapis.com/access_transparency")
É possível modificar e desativar o coletor de registros _Default
. Por exemplo, é possível editar o coletor de registros _Default
e mudar o destino. Você também pode
modificar qualquer filtro atual e adicionar filtros de exclusão.
Destinos do coletor
O destino de um coletor pode estar em um recurso diferente do coletor. Por exemplo, é possível usar um coletor de registros para encaminhar entradas de registro de um projeto para um bucket de registros armazenado em outro projeto.
Os seguintes destinos são compatíveis:
- Google Cloud projeto
Selecione esse destino quando quiser que os coletores de registros no projeto de destino redirecionem suas entradas de registro ou quando você tiver criado um coletor agregado de interceptação. Os coletores de registros no projeto que é o destino do coletor podem redirecionar as entradas de registro para qualquer destino compatível, exceto um projeto.
- Bucket de registros
Selecione esse destino quando quiser armazenar seus dados de registro em recursos gerenciados pelo Cloud Logging. Os dados de registro armazenados em buckets de registro podem ser visualizados e analisados usando serviços como o Explorador de registros e a Análise de registros.
Se você quiser unir seus dados de registro a outros dados comerciais, armazene os dados de registro em um bucket de registros e crie um conjunto de dados vinculado do BigQuery. Um conjunto de dados vinculado é um conjunto de dados somente leitura que pode ser consultado como qualquer outro conjunto de dados do BigQuery.
- Conjunto de dados do BigQuery
- Selecione esse destino quando quiser combinar seus dados de registro com outros dados da empresa. O conjunto de dados especificado precisa estar habilitado para gravação. Não defina o destino de um coletor como um conjunto de dados vinculado do BigQuery. Os conjuntos de dados vinculados são somente leitura.
- Bucket do Cloud Storage
- Selecione esse destino quando quiser armazenamento de longo prazo dos dados de registro. O bucket do Cloud Storage pode estar no mesmo projeto em que as entradas de registro foram criadas ou em um projeto diferente. As entradas de registro são armazenadas na forma de arquivos JSON.
- Tópico do Pub/Sub
- Selecione esse destino quando quiser exportar os dados de registro de Google Cloud e usar integrações de terceiros, como Splunk ou Datadog. As entradas de registro são formatadas em JSON e encaminhadas para um tópico do Pub/Sub.
Limitações de destino
Esta seção descreve limitações específicas do destino:
- Se você rotear entradas de registro para um bucket de registros em um Google Cloud projeto diferente, o Error Reporting não vai analisar essas entradas. Para mais informações, consulte Visão geral do Error Reporting.
- Se você encaminhar entradas de registro para um conjunto de dados do BigQuery, ele precisará estar habilitado para gravação. Não é possível encaminhar entradas de registro para conjuntos de dados vinculados, que são somente leitura.
- Os novos coletores que encaminham dados de registros para buckets do Cloud Storage podem levar várias horas para começar a encaminhar entradas de registro. Esses coletores são processados a cada hora.
As seguintes limitações se aplicam quando o destino de um coletor de registros é um projeto do Google Cloud :
- Há um limite de um salto.
- As entradas de registro que correspondem ao filtro do coletor de registros
_Required
só são encaminhadas para o bucket de registros_Required
do projeto de destino quando são originadas nele. - Somente coletores agregados que estão na hierarquia de recursos de uma entrada de registro processam a entrada de registro.
Por exemplo, suponha que o destino de um coletor de registros no projeto
A
seja o projetoB
. Então, o seguinte é verdadeiro:- Devido ao limite de um salto, os coletores de registros no projeto
B
não podem redirecionar entradas de registro para um projeto Google Cloud . - O bucket de registros
_Required
do projetoB
armazena apenas entradas de registro originadas no projetoB
. Esse bucket de registros não armazena entradas de registro originadas em outros recursos, incluindo as do projetoA
. - Se a hierarquia de recursos dos projetos
A
eB
for diferente, uma entrada de registro que um coletor de registros no projetoA
encaminha para o projetoB
não será enviada aos gravadores agregados na hierarquia de recursos do projetoB
. - Se os projetos
A
eB
tiverem a mesma hierarquia de recursos, as entradas de registro serão enviadas aos coletores agregados nessa hierarquia. Se uma entrada de registro não for interceptada por um coletor agregado, o roteador de registros vai enviar a entrada para os coletores no projetoA
.
Como o roteamento de entradas de registro afeta as métricas com base em registros
As métricas com base em registros são métricas do Cloud Monitoring que são derivadas do conteúdo das entradas de registro. Por exemplo, é possível usar uma métrica com base em registros para contar o número de entradas que contêm uma mensagem específica ou para extrair informações de latência registradas nas entradas. É possível mostrar métricas com base em registros em gráficos do Cloud Monitoring, e as políticas de alertas podem monitorar essas métricas.
As métricas com base em registros definidas pelo sistema são aplicadas no nível do projeto. As métricas com base em registros definidas pelo usuário podem ser aplicadas no nível do projeto ou do bucket de registros. As métricas com base em registros no escopo do bucket são úteis quando você usa coletores agregados para rotear entradas de registro a um bucket de registros e quando roteia entradas de registro de um projeto para um bucket de registros em outro projeto.
- Métricas com base em registros definidas pelo sistema
-
O roteador de registros conta uma entrada de registro quando todas as condições a seguir são verdadeiras:
- A entrada de registro passa pelos gravadores de registros do projeto em que a métrica com base em registros está definida.
A entrada de registro é armazenada em um bucket de registros. O bucket de registros pode estar em qualquer projeto.
Por exemplo, suponha que o projeto
A
tenha um coletor de registros cujo destino seja o projetoB
. Suponha também que os coletores de registros no projetoB
encaminhem as entradas de registro para um bucket de registros. Nesse cenário, as entradas de registro roteadas do projetoA
para o projetoB
contribuem para as métricas com base em registros definidas pelo sistema do projetoA
. Essas entradas de registro também contribuem para as métricas com base em registros definidas pelo sistema do projetoB
.
- Métricas com base em registros definidas pelo usuário
-
O roteador de registros conta uma entrada de registro quando todas as condições a seguir são verdadeiras:
- O faturamento está ativado no projeto em que a métrica com base em registros é definida.
- Para métricas com escopo de bucket, a entrada de registro é armazenada no bucket de registros em que a métrica com base em registros é definida.
- Para métricas no escopo do projeto, a entrada de registro passa pelos coletores de registros do projeto em que a métrica com base em registros está definida.
Para mais informações, consulte Visão geral das métricas com base em registros.
Práticas recomendadas
Para práticas recomendadas sobre como usar o roteamento para governança de dados ou para casos de uso comuns, consulte os seguintes documentos:
Dados de registros: um guia passo a passo para superar desafios comuns de conformidade
Governança de dados: princípios para proteger e gerenciar registros
Exemplos: centralizar o armazenamento de registros
Nesta seção, descrevemos como configurar o armazenamento centralizado. O armazenamento centralizado oferece um único lugar para consultar dados de registro, o que simplifica suas consultas quando você está procurando tendências ou investigando problemas. Do ponto de vista da segurança, você também tem um local de armazenamento, o que pode simplificar as tarefas dos analistas de segurança.
Se você centralizar o armazenamento de registros, considere colocar uma restrição no projeto que armazena os dados de registro. Uma garantia pode evitar a exclusão acidental de um projeto. Para saber mais, consulte Como proteger projetos com garantias.
Centralizar o armazenamento de registros para projetos em uma pasta
Suponha que você gerencie uma pasta e queira centralizar o armazenamento das entradas de registro. Para este caso de uso, faça o seguinte:
- Na pasta, crie um projeto chamado
CentralStorage
. - Crie um coletor agregado de interceptação para sua pasta e configure-o para rotear todas as entradas de registro. Você define o destino do coletor como o projeto chamado
CentralStorage
.
Quando uma entrada de registro originada na pasta ou em um dos recursos filhos dela chega, ela é enviada ao coletor agregado de interceptação que você criou. Esse coletor encaminha entradas de registro
para o projeto chamado CentralStorage
. Os coletores de registros neste projeto processam as entradas de registro:
O coletor de registros
_Default
encaminha para o bucket de registros_Default
todas as entradas de registro que correspondem ao filtro do coletor. Esse bucket de registros é seu local de armazenamento centralizado.O coletor de registros
_Required
encaminha para o bucket de registros_Required
as entradas de registro que correspondem aos filtros do coletor e que se originam no projetoCentralStorage
. Esse bucket de registros não é um local de armazenamento centralizado. No entanto, é possível armazenar todos os dados de registro de maneira centralizada. Por exemplo, consulte Armazenar registros de auditoria em um local central.
Depois que o processamento do coletor agregado for concluído, a entrada de registro será enviada para o _Required
no recurso em que ela foi criada. Quando a entrada de registro corresponde ao filtro no coletor de registros _Required
, ela é encaminhada para o bucket de registros _Required
do recurso. Como consequência, cada projeto Google Cloud na sua
pasta armazena entradas de registro no bucket de registros_Required
.
Centralizar o armazenamento de registros para um conjunto de projetos
Também é possível armazenar entradas de registro em um único local quando você não tem uma organização ou uma pasta. Por exemplo, você pode fazer o seguinte:
- Crie um projeto chamado
CentralStorage
. - Para cada projeto, exceto
CentralStorage
, edite o coletor de registros_Default
e defina o destino como o projeto chamadoCentralStorage
.
Talvez você se pergunte por que o exemplo anterior define o destino dos
coletores de registros _Default
como um projeto, em vez do bucket de registros _Default
nesse projeto. Os principais motivos são simplicidade e consistência.
Quando você encaminha entradas de registro para um projeto, os gravadores de registros no projeto de destino controlam quais entradas são armazenadas e onde.
Ou seja, você centraliza a funcionalidade de filtro e destino. Se você quiser mudar quais entradas de registro são armazenadas ou onde elas são armazenadas, basta modificar os coletores de registros em um projeto.
Centralizar o armazenamento de registros de auditoria
É possível armazenar centralmente as entradas de registro que correspondem ao
coletor de registros _Required
. Se você quiser armazenar essas entradas de registro
de forma centralizada, faça uma destas ações:
Crie coletores de registros que encaminhem entradas de registro correspondentes ao coletor de registros
_Required
para um bucket de registros centralizado.Configure coletores de registros como nos dois exemplos anteriores e adicione um coletor de registros no projeto de destino que roteia entradas de registro correspondentes ao coletor de registros
_Required
para um bucket de registros. Você também pode editar os filtros no coletor de registros_Default
.
Antes de implementar uma estratégia desse tipo, revise as diretrizes de preços.
Preços
Para saber mais sobre os preços do Cloud Logging, consulte Preços do Google Cloud Observability.
A seguir
Para ajudar você a rotear e armazenar dados do Cloud Logging, consulte os seguintes documentos:
Para criar coletores e rotear entradas de registro para destinos compatíveis, consulte Rotear registros para destinos compatíveis.
Para saber como criar coletores agregados que podem rotear entradas de registro dos recursos em pastas ou organizações, consulte Visão geral dos coletores agregados.
Para saber mais sobre o formato das entradas de registro roteadas e como os registros são organizados nos destinos, consulte os seguintes documentos: