Esta arquitetura de referência descreve como pode importar registos que foram exportados anteriormente para o Cloud Storage de volta para o Cloud Logging.
Esta arquitetura de referência destina-se a engenheiros e programadores, incluindo DevOps, engenheiros de fiabilidade do site (SREs) e investigadores de segurança, que pretendem configurar e executar a tarefa de importação de registos. Este documento pressupõe que está familiarizado com a execução de tarefas do Cloud Run e com a utilização do Cloud Storage e do Cloud Logging.
Arquitetura
O diagrama seguinte mostra como os Google Cloud serviços são usados nesta arquitetura de referência:
Este fluxo de trabalho inclui os seguintes componentes:
- Contentor do Cloud Storage: contém os registos exportados anteriormente que quer importar novamente para o Cloud Logging. Uma vez que estes registos foram exportados anteriormente, estão organizados no formato de exportação esperado.
- Cloud Run
job: executa o processo de registos de importação:
- Lê os objetos que armazenam entradas de registo do Cloud Storage.
- Encontra registos exportados para o ID de registo especificado, no intervalo de tempo pedido, com base na organização dos registos exportados no contentor do Cloud Storage.
- Converte os objetos em estruturas da API Cloud Logging
LogEntry
. Várias estruturasLogEntry
são agregadas em lotes para reduzir o consumo de quotas da API Cloud Logging. A arquitetura processa os erros de quota quando necessário. - Escreve as entradas de registo convertidas no Cloud Logging. Se executar a mesma tarefa várias vezes, podem ocorrer entradas duplicadas. Para mais informações, consulte o artigo Execute a tarefa de importação.
- Cloud Logging: carrega e armazena as entradas do registo convertidas.
As entradas do registo são processadas conforme descrito na
Vista geral do encaminhamento e armazenamento.
- Aplicam-se as quotas e os limites do Logging, incluindo as quotas e os limites da API Cloud Logging e um período de retenção de 30 dias. Esta arquitetura de referência foi concebida para funcionar com as quotas de escrita predefinidas, com um mecanismo de repetição básico. Se a sua quota de gravação for inferior à predefinição, a implementação pode falhar.
- Os registos importados não estão incluídos nas métricas baseadas em registos, porque as respetivas datas/horas estão no passado. No entanto, se optar por usar uma etiqueta, a indicação de tempo regista a hora de importação e os registos são incluídos nos dados das métricas.
- BigQuery: usa SQL para executar consultas analíticas em registos importados (opcional). Para importar registos de auditoria do Cloud Storage, esta arquitetura modifica os IDs dos registos. Tem de ter em conta esta mudança de nome quando consultar os registos importados.
Exemplo de utilização
Pode optar por implementar esta arquitetura se a sua organização exigir uma análise de registos adicional para investigações de incidentes ou outras auditorias de eventos passados. Por exemplo, pode querer analisar as ligações às suas bases de dados no primeiro trimestre do ano passado como parte de uma auditoria de acesso à base de dados.
Alternativas de design
Esta secção descreve alternativas ao design predefinido apresentado neste documento de arquitetura de referência.
Período de retenção e registos importados
O Cloud Logging requer que as entradas de registo recebidas tenham datas/horas que não excedam um período de retenção de 30 dias. As entradas de registo importadas com datas/horas com mais de 30 dias a partir da hora de importação não são armazenadas.
Esta arquitetura valida o intervalo de datas definido na tarefa do Cloud Run para evitar a importação de registos com mais de 29 dias, deixando uma margem de segurança de um dia.
Para importar registos com mais de 29 dias, tem de fazer as seguintes alterações ao código de implementação e, em seguida, criar uma nova imagem de contentor para usar na configuração da tarefa do Cloud Run.
- Remova a validação de 30 dias do intervalo de datas
- Adicione a data/hora original como uma etiqueta de utilizador à entrada do registo
- Reponha a etiqueta de data/hora da entrada do registo para permitir que seja carregada com a data/hora atual
Quando usa esta modificação, tem de usar o campo labels
em vez do campo timestamp
nas suas consultas do Log Analytics. Para mais informações sobre consultas e exemplos do Log Analytics, consulte o artigo Exemplos de consultas SQL.
Considerações de design
As diretrizes seguintes podem ajudar a desenvolver uma arquitetura que cumpra os requisitos da sua organização.
Otimização de custos
O custo da importação de registos através desta arquitetura de referência tem vários fatores contribuintes.
Usa os seguintes componentes faturáveis de Google Cloud:
- Cloud Logging (período de retenção de registos aplicam-se custos)
- Cloud Run
- API Cloud Storage
Considere os seguintes fatores que podem aumentar os custos:
- Duplicação de registos: para evitar custos adicionais de armazenamento de registos, não execute a tarefa de importação com a mesma configuração várias vezes.
- Armazenamento em destinos adicionais: para evitar custos adicionais de armazenamento de registos, desative as políticas de encaminhamento no projeto de destino para impedir o armazenamento de registos em localizações adicionais ou o encaminhamento de registos para outros destinos, como o Pub/Sub ou o BigQuery.
- CPU e memória adicionais: se o trabalho de importação exceder o limite de tempo, pode ter de aumentar a CPU e a memória do trabalho de importação na configuração do trabalho de importação. O aumento destes valores pode aumentar os custos do Cloud Run incorridos.
- Tarefas adicionais: se o número esperado de registos a importar todos os dias dentro do intervalo de tempo for elevado, pode ter de aumentar o número de tarefas na configuração da tarefa de importação. O trabalho divide o intervalo de tempo igualmente entre as tarefas, pelo que cada tarefa processa um número semelhante de dias do intervalo em simultâneo. Aumentar o número de tarefas pode aumentar os custos do Cloud Run incorridos.
- Classe de armazenamento: se a classe de armazenamento do seu contentor do Cloud Storage for diferente de Standard, como Nearline, Durable Reduced Availability (DRA) ou Coldline, pode incorrer em custos adicionais.
- Tráfego de dados entre diferentes localizações: configure a tarefa de importação para ser executada na mesma localização que o contentor do Cloud Storage a partir do qual importa os registos. Caso contrário, podem ser incorridos custos de saída da rede.
Para gerar uma estimativa de custo com base na sua utilização projetada, incluindo tarefas do Cloud Run, use a calculadora de preços.
Eficiência operacional
Esta secção descreve as considerações para gerir consultas analíticas após a implementação da solução.
Registar nomes e consultas
Os registos são armazenados no projeto definido no campo logName
da entrada do registo. Para importar os registos para o projeto selecionado, esta arquitetura modifica o campo logName
de cada registo importado. Os registos de importação são armazenados no contentor de registos predefinido do projeto selecionado que tem o ID do registo imported_logs
(a menos que o projeto tenha uma política de encaminhamento de registos que altere o destino de armazenamento).
O valor original do campo logName
é preservado no campo labels
com a chave original_logName
.
Tem de ter em conta a localização do valor logName
original quando consulta os registos importados. Para mais informações sobre consultas e exemplos do Log Analytics,
consulte o artigo Consultas SQL de exemplo.
Otimização do desempenho
Se o volume de registos que está a importar exceder os limites de capacidade do Cloud Run, o trabalho pode exceder o tempo limite antes de a importação estar concluída. Para evitar uma importação de dados incompleta, considere aumentar o valor de tasks
na tarefa de importação. Aumentar os recursos de CPU e memória também pode ajudar a melhorar o desempenho das tarefas quando aumenta o número de tarefas.
Implementação
Para implementar esta arquitetura, consulte o artigo Implemente uma tarefa para importar registos do Cloud Storage para o Cloud Logging.
O que se segue
- Reveja o código de implementação no repositório do GitHub.
- Saiba como analisar registos importados através da análise de registos e do SQL.
- Para ver mais arquiteturas de referência, diagramas e práticas recomendadas, explore o Centro de arquitetura na nuvem.
Colaboradores
Autor: Leonid Yankulin | Developer Relations Engineer
Outros colaboradores:
- Summit Tuladhar | Senior Staff Software Engineer
- Wilton Wong | Enterprise Architect
- Xiang Shen | Solutions Architect