Com os coletores agregados no Cloud Logging, é possível combinar e encaminhar entradas de registro de todos os recursos em uma pasta ou organização para um destino central. É possível configurar um coletor agregado como interceptador ou não interceptador, definir filtros para controlar quais entradas de registro são roteadas e conceder ao coletor permissão para gravar no destino.
Limitações
Ao configurar um coletor agregado, as seguintes limitações se aplicam:
Um caminho de destino só pode incluir um endpoint de serviço global, como
pubsub.googleapis.com. Não é possível incluir um endpoint de serviço regional (REP, na sigla em inglês), comopubsub.LOCATION.rep.googleapis.com. Para uma lista de caminhos de destino compatíveis, consulte Formatos de caminho de destino.Não é possível rotear dados de registro para tópicos do Pub/Sub com restrições em trânsito. Se você configurar um coletor de registros para um tópico do Pub/Sub com restrições em trânsito, poderá encontrar erros de configuração
topic_region_not_allowede registros descartados.
Antes de começar
Antes de criar um coletor, verifique se:
Você conhece o comportamento dos coletores agregados. Para mais informações, consulte Visão geral dos coletores agregados.
Você tem uma pasta ou organização do Cloud de Confiance by S3NS com entradas de registro que podem ser vistas no Explorador de registros.
Você tem um dos seguintes papéis do Identity and Access Management para a organização ou pasta doCloud de Confiance de onde está roteando as entradas de registro:
- Proprietário (
roles/owner) - Administrador do Logging (
roles/logging.admin) - Gravador de configuração de registros (
roles/logging.configWriter)
As permissões contidas nesses papéis permitem criar, excluir ou modificar coletores. Para informações sobre como definir papéis do IAM, consulte o Guia de controle de acesso do Logging.
- Proprietário (
O destino do gravador agregado existe ou você pode criá-lo. O destino pode estar em qualquer projeto do Cloud de Confiance e em qualquer organização. Para uma lista de destinos compatíveis e as limitações deles, consulte Destinos compatíveis.
Selecione a interface que você quer usar:
Console
Quando você usa o console Cloud de Confiance para acessar os serviços e as APIs Cloud de Confiance by S3NS , não é necessário configurar a autenticação.
gcloud
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initREST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .
Criar um coletor agregado
Para configurar um coletor agregado, crie o coletor e conceda a ele as permissões para gravar no destino. Nesta seção, descrevemos como criar um gravador agregado. Para informações sobre como conceder permissões ao coletor, consulte Definir permissões de destino.
É possível criar até 200 coletores por pasta ou organização.
Console
Para criar um coletor agregado para sua pasta ou organização, faça o seguinte:
-
No console do Cloud de Confiance , acesse a página Roteador de registros.
Acessar o roteador de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Selecione uma pasta ou organização existente.
Selecione Criar coletor.
No painel Detalhes do coletor, insira os seguintes detalhes:
Nome do coletor: forneça um identificador para o coletor. Depois de criar o coletor, não será possível renomeá-lo, mas será possível excluí-lo e criar um novo.
Descrição do coletor (opcional): descreva a finalidade ou o caso de uso do coletor.
No menu Selecionar serviço do coletor, selecione o tipo de destino e preencha a caixa de diálogo para especificar o destino. Você pode selecionar um destino existente ou criar um.
Para um gravador de interceptação, selecione Cloud de Confiance project e insira o nome totalmente qualificado doCloud de Confiance projeto de destino:
logging.googleapis.com/projects/DESTINATION_PROJECT_IDPara um gravador não interceptador, selecione o destino e insira o nome totalmente qualificado dele. Os seguintes destinos são compatíveis:
Cloud de Confiance project
logging.googleapis.com/projects/DESTINATION_PROJECT_IDBucket do Logging
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Tópico do Pub/Sub
Não insira o nome de um tópico do Pub/Sub que aplique restrições em trânsito.
pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
No painel Escolher os registros para incluir no coletor, selecione os recursos que serão incluídos no coletor.
Para um gravador de interceptação, selecione Interceptar registros ingeridos por esta organização e todos os recursos filhos.
Para um coletor que não intercepta, selecione Incluir registros ingeridos por este recurso e todos os recursos filhos.
No campo Criar filtro de inclusão, insira uma expressão de filtro que corresponda às entradas de registro que você quer incluir. Se você não definir um filtro, todas as entradas de registro do recurso selecionado serão encaminhadas para o destino.
Por exemplo, talvez você queira criar um filtro para encaminhar todos os registros de auditoria de acesso a dados para um único bucket do Logging. Esse filtro é semelhante ao seguinte:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")Para ver exemplos, consulte Filtros para coletores agregados.
O comprimento de um filtro não pode exceder 20.000 caracteres.
Opcional: para verificar se você inseriu o filtro correto, selecione Visualizar registros. Isso abre a Análise de Registros em uma nova guia com o filtro pré-preenchido.
Opcional: no painel Escolher registros para excluir do coletor, faça o seguinte:
No campo Nome do filtro de exclusão, insira um nome.
No campo Criar um filtro de exclusão, insira uma expressão de filtro que corresponda às entradas de registro que você quer excluir. Também é possível usar a função
samplepara selecionar uma parte das entradas de registro a serem excluídas.Por exemplo, para impedir que as entradas de registro de um projeto específico sejam roteadas para o destino, adicione o seguinte filtro de exclusão:
logName:projects/PROJECT_ID
Para excluir entradas de registro de vários projetos, use o operador lógico OR para unir cláusulas
logName.
É possível criar até 50 filtros de exclusão por coletor. O comprimento de um filtro não pode exceder 20.000 caracteres.
Selecione Criar coletor.
Para concluir a configuração do coletor agregado, conceda à conta de serviço dele a permissão para gravar entradas de registro no destino do coletor. Para mais informações, consulte Definir permissões de destino.
gcloud
Para criar um coletor agregado, use o
comando logging sinks create:
Para criar um coletor, execute o comando
gcloud logging sinks createe inclua a flag--include-children.Antes de usar o comando a seguir, faça estas substituições:
- SINK_NAME: o nome do coletor de registros. Não é possível mudar o nome de um coletor depois que ele é criado.
- SINK_DESTINATION: o serviço ou projeto para onde você quer rotear as entradas de registro. Para informações sobre o formato desses destinos, consulte Formatos de caminho de destino.
- INCLUSION_FILTER: o filtro de inclusão para um gravador. Para ver exemplos, consulte Filtros para coletores agregados.
- FOLDER_ID: o ID da pasta. Se você quiser criar um coletor
no nível da organização, substitua
--folder=FOLDER_IDpor--organization=ORGANIZATION_ID.
Execute o comando
gcloud logging sinks create:gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="INCLUSION_FILTER"
Para criar um coletor de interceptação, inclua também a flag
--intercept-children.Por exemplo, se você estiver criando um coletor agregado no nível da pasta cujo destino é um tópico do Pub/Sub, o comando será semelhante a este:
gcloud logging sinks create SINK_NAME \ pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \ --folder=FOLDER_ID --log-filter="logName:activity"
Conceda à conta de serviço do coletor permissão para gravar no destino do coletor. Para mais informações, consulte Definir permissões de destino.
REST
Para criar um coletor agregado, use o método
organizations.sinks.create ou
folders.sinks.create da API Logging.
Prepare os argumentos do método da seguinte maneira:
Defina o campo
parentcomo a organização ou pasta do Cloud de Confiance em que o coletor será criado. O pai precisa ser um dos seguintes parâmetros:organizations/ORGANIZATION_IDfolders/FOLDER_ID
No objeto
LogSinkno corpo da solicitação do método, faça uma destas ações:Defina
includeChildrencomotrue.Para criar um coletor de interceptação, defina também o campo
interceptChildrencomotrue.
Defina o campo
filterpara corresponder às entradas de registro que você quer incluir.Para exemplos, consulte Filtros para gravadores agregados.
O tamanho de um filtro não pode exceder 20.000 caracteres.
Defina os campos
LogSinkrestantes como faria com qualquer gravador. Para mais informações, consulte Rotear registros para destinos compatíveis.Chame
organizations.sinks.createoufolders.sinks.createpara criar o gravador.Conceda à conta de serviço do coletor permissão para gravar no destino do coletor. Para mais informações, consulte Definir permissões de destino.
Qualquer mudança feita em um coletor pode levar alguns minutos para ser aplicada.
Definir permissões de destino
Nesta seção, descrevemos como conceder à identidade do gravador de um coletor de registros as permissões do IAM necessárias para que o coletor possa gravar entradas de registro no destino. A identidade do gravador é o ID da conta de serviço associada ao coletor. Essa identidade inclui um endereço de e-mail que identifica o principal que precisa ter acesso para gravar dados no destino.
Não é necessário definir permissões de destino quando um coletor de registros encaminha entradas de registro para um bucket de registros no mesmo projeto. Para essa configuração, não é necessário ter uma conta de serviço. Para todas as outras configurações, o Logging cria e gerencia automaticamente a conta de serviço de um coletor de registros, e você precisa definir as permissões de destino:
- A partir de 22 de maio de 2023, o Logging usa a mesma conta de serviço para todos os coletores no recurso subjacente. Os recursos podem ser um projeto doCloud de Confiance , uma organização, uma pasta ou uma conta de faturamento.
- Antes de 22 de maio de 2023, o Logging criava uma conta de serviço para cada coletor.
Para definir permissões a fim de rotear o coletor para o destino, faça o seguinte:
Console
Para receber informações sobre a conta de serviço do seu gravador, faça o seguinte:
-
No console do Cloud de Confiance , acesse a página Roteador de registros.
Acessar o roteador de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Selecione more_vert Menu e, depois, Ver detalhes do coletor. A identidade do gravador é exibida no painel Detalhes do coletor.
Se o valor do campo
writerIdentitycontiver um endereço de e-mail, prossiga para a próxima etapa. Quando o valor éNone, não é necessário configurar as permissões de destino.Copie a identidade do gravador do coletor para a área de transferência. As identidades do gravador podem parecer diferentes dependendo do recurso a que o coletor pertence, mas sempre têm o prefixo
serviceAccount:. Veja a seguir um exemplo de identidade de gravador:serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com
-
Conceda ao principal especificado pela identidade do gravador do coletor a permissão para gravar dados de registro no destino:
-
No console do Cloud de Confiance , acesse a página IAM:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
Na barra de ferramentas do console do Cloud de Confiance , selecione o projeto que armazena o destino do coletor agregado. Quando o destino for um projeto, selecione-o.
Clique em Conceder acesso.
Insira o principal especificado pela identidade do gravador do coletor e conceda um papel do IAM:
- Para todos os destinos, conceda o
papel de Gravador de registros
(
roles/logging.logWriter). Especificamente, um principal precisa da permissãologging.logEntries.route. - Conceda um dos seguintes papéis com base no destino:
- Bucket de registros: conceda o
papel de Gravador de bucket de registros
(
roles/logging.bucketWriter). - Tópico do Pub/Sub: conceda o
papel de Publicador do Pub/Sub
(
roles/pubsub.publisher).
- Bucket de registros: conceda o
papel de Gravador de bucket de registros
(
- Para todos os destinos, conceda o
papel de Gravador de registros
(
-
gcloud
Verifique se você tem acesso de proprietário ao projetoCloud de Confiance que contém o destino. Se você não tiver acesso de Proprietário ao destino do gravador, peça a um proprietário do projeto para adicionar a identidade do gravador como um principal.
Para receber informações sobre a conta de serviço do seu gravador, execute o comando
gcloud logging sinks describe.Antes de usar o comando a seguir, faça estas substituições:
- SINK_NAME: o nome do coletor de registros. Não é possível mudar o nome de um coletor depois que ele é criado.
Execute o comando
gcloud logging sinks describe:gcloud logging sinks describe SINK_NAMESe os detalhes do coletor tiverem um campo chamado
writerIdentity, prossiga para a próxima etapa. Quando os detalhes não incluem um campowriterIdentity, não é necessário configurar as permissões de destino para o coletor.Copie a identidade do gravador do coletor para a área de transferência. Veja a seguir uma identidade de gravador:
serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.comConceda à identidade de gravador do coletor a permissão para gravar dados de registro no destino executando o comando
gcloud projects add-iam-policy-binding.Antes de usar o comando a seguir, faça as seguintes substituições:
- PROJECT_ID: o identificador do projeto. Selecione o projeto que armazena o destino do coletor agregado. Quando o destino for um projeto, selecione-o.
- PRINCIPAL: um identificador do principal a quem você quer
conceder o papel. Os identificadores dos principais geralmente têm o seguinte formato:
PRINCIPAL-TYPE:ID. Por exemplo,principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com. Para uma lista completa dos formatos quePRINCIPALpode ter, consulte Identificadores principais. ROLE: um papel do IAM. Conceda à identidade do gravador do coletor um papel do IAM com base no destino do coletor de registros:
- Para todos os destinos, conceda o
papel de Gravador de registros
(
roles/logging.logWriter). Especificamente, um principal precisa da permissãologging.logEntries.route. - Conceda um dos seguintes papéis com base no destino:
- Bucket de registros: conceda o
papel de Gravador de bucket de registros
(
roles/logging.bucketWriter). - Tópico do Pub/Sub: conceda o
papel de editor do Pub/Sub
(
roles/pubsub.publisher).
- Bucket de registros: conceda o
papel de Gravador de bucket de registros
(
- Para todos os destinos, conceda o
papel de Gravador de registros
(
Execute o comando
gcloud projects add-iam-policy-binding:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Recomendamos que você use o console do Cloud de Confiance ou a Google Cloud CLI para conceder um papel à conta de serviço.
Filtros para coletores agregados
Nesta seção, apresentamos exemplos de filtros que podem ser usados em um gravador agregado. Para mais exemplos, consulte Exemplos de consultas usando a Análise de registros.
Alguns exemplos utilizam a seguinte notação:
:: é o operador de substring. Não substitua o operador=....representa qualquer comparação de filtros adicional.- As variáveis são indicadas por texto colorido. As substitua por valores válidos.
O tamanho de um filtro é restrito a 20.000 caracteres.
Para mais detalhes sobre a sintaxe da filtragem, consulte Linguagem de consulta do Logging.
Selecionar a origem do registro
Para rotear entradas de registro de todos os recursos filhos, não especifique um projeto, uma pasta ou uma organização nos filtros de inclusão e exclusão do coletor. Por exemplo, suponha que você configure um coletor agregado para uma organização com o seguinte filtro:
resource.type="gce_instance"
Com esse filtro, o coletor agregado encaminha as entradas de registro das instâncias do Compute Engine em qualquer recurso filho dessa organização para o destino.
No entanto, pode haver situações em que você queira usar um coletor agregado
para rotear entradas de registro apenas de recursos filhos específicos. Por exemplo, por motivos de conformidade, talvez você queira armazenar registros de auditoria de pastas ou projetos específicos em um bucket do Cloud Storage próprio. Nessas situações, configure o filtro de inclusão para especificar cada recurso filho cujas entradas de registro você quer rotear. Se você quiser rotear entradas de registro de uma pasta e de todos os projetos dentro dela, o filtro precisará listar a pasta e cada um dos projetos contidos nela, além de unir as instruções com uma cláusula OR.
Os filtros a seguir restringem as entradas de registro a projetos, pastas ou organizações específicos do Cloud de Confiance :
logName:"projects/PROJECT_ID/logs/" AND ...
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ...
logName:"folders/FOLDER_ID/logs/" AND ...
logName:"organizations/ORGANIZATION_ID/logs/" AND ...
Por exemplo, para encaminhar apenas entradas de registro geradas por
instâncias do Compute Engine e originadas na pasta my-folder,
use o seguinte filtro:
logName:"folders/my-folder/logs/" AND resource.type="gce_instance"
Com esse filtro, as entradas de registro que se originam em qualquer recurso que não seja
my-folder, incluindo entradas de registro que se originam em projetos do Cloud de Confiance
que são filhos de my-folder, não são roteadas para o destino.
Selecione o recurso monitorado.
Para rotear entradas de registro de apenas um recurso monitorado específico em um projeto doCloud de Confiance , use várias comparações para especificar o recurso exato:
logName:"projects/PROJECT_ID/logs" AND resource.type=RESOURCE_TYPE AND resource.labels.instance_id=INSTANCE_ID
Para uma lista de tipos de recursos, consulte Tipos de recursos monitorados.
Selecione uma amostra de entradas de registro
Para encaminhar uma amostra aleatória de entradas de registro, adicione a função incorporada sample. Por exemplo, para rotear somente 10% das entradas de registro
correspondentes ao seu filtro atual, use esta adição:
sample(insertId, 0.10) AND ...
Para mais informações, consulte a função sample.
Para informações sobre os filtros do Logging, consulte Linguagem de consulta do Logging.
A seguir
Criar visualizações de registros em um bucket de registros: as visualizações de registros permitem conceder aos principais acesso de leitura a um subconjunto das entradas de registro armazenadas em um bucket de registros.
Encaminhar registros para destinos compatíveis: gerenciar coletores