Docker e Portainer Novo
Conectar Registros do contêiner para Excel, Planilhas e IA
O Docker grava um log para cada contêiner — consulte todos eles de uma vez. O arquivo JSON registra o que o daemon grava, o logs do docker Exporta arquivos salvos manualmente e também o próprio log do servidor do Portainer. Aponte o Query Streams para a pasta e cada linha se tornará uma linha — contendo o nome real do contêiner, sua imagem e seu serviço Compose, em vez de um diretório cheio de IDs de 64 caracteres.
Uma pasta de registros de contêineres se transforma em uma tabela.
O Query Streams lê os arquivos que o daemon já grava, fixa o formato e fornece colunas tipadas com o nome do contêiner ao lado de cada linha. Sem sidecar, sem pipeline de distribuição, sem índice para manter — e uma linha que o analisador não consegue ler é mantida como uma linha com uma justificativa, em vez de ser descartada silenciosamente.
a3f9c1…-json.logDocker
shopfront-stack_api.logexportar
portainer.logPortainerRotações, arquivos compactados e arquivos relidos — tratados
SELECIONAR aplicativo, compose_service,
contar(*) AS linhas
DE conjunto de arquivos.eventos
ONDE fluxo = 'stderr'
GRUPO POR aplicativo, serviço de composição
ORDER BY linhas DESCIntegre-o ao banco de dados do seu aplicativo na mesma consulta.
Os arquivos que o daemon já grava, agora uma tabela que você pode usar para gerar relatórios.
Duas ferramentas, três formatos, sem sidecar
Cada cartão indica exatamente quais arquivos o Query Streams lê e onde eles estão localizados. Você não precisa alterar o driver de registro para que isso funcione. arquivo json é o padrão do Docker, e o padrão é o suportado.
Registros de contêineres suportados
3 formatos · 2 ferramentas
Dockerdriver de registro de arquivo json
- Um
{"log","stream","time"}envelope por linha, escrito pelo demônio - O nome do contêiner vem do próprio Docker.
config.v2.jsonao lado do tronco - O projeto/serviço Image and Compose acompanha o fluxo como colunas.
- Geralmente
/var/lib/docker/containers - Apêndices; rotações numeradas e
.gzseguido
Dockerexportar logs do docker
- Arquivos que você salvou com
docker logs --timestamps - Um carimbo de nanossegundos RFC 3339, seguido da linha própria do contêiner.
- As linhas de cabeçalho do contêiner são ignoradas por declaração, não por acaso.
- Qualquer pasta onde você guarda os arquivos exportados.
- Um arquivo por serviço; o nome vem da raiz do arquivo.
PortainerLog do servidor, console zerolog
portainer.logou a própria saída do contêiner- Os códigos de cores ANSI foram removidos antes da análise, portanto, um nível é um nível.
- O
chave=valorA cauda se transforma em colunas; o restante cai emdados - As linhas de formato diferente do servidor de túnel embutido também são lidas.
- Carimbos com resolução de minutos, lidos como UTC
Novos formatos de log de contêiner são adicionados a cada versão do Agente. Como os Agentes se mantêm atualizados automaticamente, um formato adicionado posteriormente aparecerá no seu conector sem que ninguém precise acessar um servidor.
logs do docker exporta de um host Swarm e do log do servidor Portainer CE 2.39.1. Um detalhe importante: no Docker Desktop para Windows e Mac, os logs em formato JSON ficam armazenados dentro da máquina virtual, onde um Agente em execução como serviço não consegue acessá-los. Exporte-os com docker logs --timestamps e utilize o segundo perfil.
Contêineres em todas as regiões, registros lidos onde eles se sentam
Raramente todos os contêineres são executados em um único local. Um host no escritório, um cluster Swarm em uma região da nuvem, um único servidor em outro país. Cada local executa um Agente de Rede que lê os arquivos de log onde eles já estão armazenados e se conecta ao Query Streams. Para o seu firewall, essa é uma conexão de saída comum — não há nada para abrir nem uma VPN para configurar.
logs do docker exportação por serviço
disca
Três conexões de saída, um único local para consultá-las — sem porta de entrada, sem VPN, sem alteração de firewall.
Um agente por local
Um Agente abrange um site inteiro, em vez de uma única pasta: cada formato de log desejado se torna seu próprio conector de Conjunto de Arquivos nesse mesmo Agente. O padrão é um Agente por local. O plano gratuito executa um único Agente, enquanto os planos superiores executam mais.
1 site = 1 agente = vários conectores
Nada para abrir
O agente estabelece uma única conexão de saída criptografada, e tanto a solicitação de saída quanto as linhas de retorno trafegam por essa conexão. Sem necessidade de porta de entrada, VPN ou alteração de firewall — e as credenciais permanecem dentro da sua rede.
uma conexão, em ambas as direções
Uma única consulta em vários sites.
Cada fonte em um consulta federada Possui um agente próprio, permitindo que uma única instrução leia um registro em um país e um registro em outro, retornando um único resultado — ou combinando qualquer um deles em um banco de dados. Incluído nas versões Business e Enterprise.
2 países → 1 conjunto de resultados
Eles se mantêm atualizados
Os agentes se atualizam automaticamente, portanto, um formato de log de contêiner adicionado em uma versão posterior chega a todos os sites sem que ninguém precise acessar um servidor para instalá-lo. É isso que faz com que a lista acima seja um ponto de partida, e não uma lista fixa.
Novos formatos chegam com o Agente.
Nomes, relógios e códigos de cores
Um log de contêiner não é um arquivo de texto com uma data. Três problemas comuns ocorrem quando se tenta tratá-lo como dados, e cada um deles é tratado aqui por meio de declaração, em vez de tentativa e erro.
Nomes, não identificadores hexadecimais.
O Docker nomeia cada pasta de logs com o ID do contêiner, o que torna uma consulta agrupada ilegível. O Query Streams lê o registro que o Docker grava ao lado do log e extrai o nome real, mantendo o ID como uma coluna separada.
a3f9c1…-json.log → app = shopfront-api
O relógio do demônio
Um contêiner que imprime seu próprio carimbo de data/hora em segundos da época aterrissa em 1970, se você acreditar. O horário do evento é o horário de captura do daemon; o carimbo do próprio contêiner é mantido como uma coluna em vez de ser considerado confiável.
tempo do envelope → tempo_do_evento
Códigos de cores no arquivo
Os registradores de console gravam sequências de escape do terminal diretamente no log. Elas são removidas antes da análise, de modo que um nível é lido como um nível, em vez de um nível envolto em caracteres de escape — e os bytes originais permanecem intactos.
Códigos de escape removidos → nível = INF
Nada contava duas vezes.
Cada arquivo é identificado pelos seus primeiros 4 KB, de forma que um arquivo rotacionado seja reconhecido como o mesmo arquivo, em vez de ser lido novamente desde o início. Uma janela duplicada rolante captura a sobreposição quando um gravador reproduz a sua cauda.
Hash de prefixo de 4 KB · Janela de 20.000 registros
As colunas que você realmente obtém
Não se trata de um bloco de texto com um carimbo de data/hora ao lado. Cada formato é analisado e dividido em colunas tipadas que você pode filtrar, agrupar e agregar diretamente — e, quando um contêiner registra JSON estruturado, seus próprios campos também são desmembrados em colunas.
Cada linha também carrega hora do evento, o carimbo bruto do qual foi lido e o arquivo de onde veio. Cada formato adiciona sua coluna de identidade — aplicativo para arquivo JSON e Portainer, recipiente para exportação — e as linhas do arquivo JSON também carregam imagem, compor_projeto, compor_serviço e id_do_containerO único mensagem A coluna em uma exportação é intencional: a linha do próprio contêiner é mantida inteira em vez de ser estimada.
Para onde podem ser enviados os dados de log do seu contêiner.
Os arquivos de log não são um beco sem saída. Conecte a pasta uma única vez e essa mesma conexão somente leitura alimentará todas as superfícies compatíveis com o Query Streams — sem necessidade de uma segunda configuração, uma segunda cópia dos dados ou qualquer diferença no tratamento em comparação com um conector de banco de dados.
Registros do contêiner para Excel
Microsoft Excel · Suplemento do Excel
Extraia resultados de logs de contêineres em tempo real diretamente para uma planilha e atualize-os sob demanda — Excel para desktop, Excel Online, Microsoft 365.
Como funciona o ExcelRegistros de contêineres no Google Sheets
Suplemento de planilhas
Execute uma consulta de log de contêiner salva na barra lateral e arraste as linhas para a planilha. Os colaboradores que compartilharam a planilha podem atualizá-la por conta própria.
Como funciona o Google SheetsServidor MCP de logs de contêiner
Clientes Claude, Cursor e MCP · Servidor MCP
Conceda a um assistente de IA acesso somente leitura ao log do contêiner com o esquema necessário para escrever SQL corretamente — sem credenciais no chat.
Como funciona o MCPAPI REST de logs de contêiner
endpoint HTTP
Publique uma consulta de log de contêiner como um endpoint JSON autenticado que qualquer aplicativo pode chamar, com uma especificação OpenAPI 3.1 e coleções prontas para uso no Postman, Insomnia e Hoppscotch. Nenhuma porta de banco de dados é aberta.
Como funciona a API RESTOs registros do contêiner são enviados para o Airtable.
Plataforma de automação
Sincronize as linhas de log do contêiner com uma base do Airtable de acordo com uma programação ou busque-as dentro de um script de automação do Airtable.
Como funciona o AirtableO contêiner registra logs no Baserow.
Plataforma de automação
Forneça uma tabela Baserow a partir do log do contêiner por meio do endpoint REST — hospedado localmente ou na nuvem Baserow.
Como funciona o BaserowRegistros de contêineres para o SeaTable
Plataforma de automação
Mantenha uma base SeaTable atualizada com dados de registro de contêineres sem exportar um arquivo ou expor o banco de dados.
Como funciona o SeaTableRegistros do contêiner no Smartsheet
Plataforma de automação
Inserir os resultados dos logs do contêiner em uma grade do Smartsheet para que os planos e relatórios sejam lidos do sistema de origem, e não da exportação da semana passada.
Como funciona o SmartsheetO contêiner registra informações no Anvil.
Anvil Works · Plataforma de aplicativos
Faça backup de um aplicativo Python do Anvil com log de contêiner por meio do endpoint REST, em vez de incorporar as credenciais do banco de dados no aplicativo.
Como funciona o AnvilO contêiner registra informações no Power BI.
Power Query M
Cole o arquivo M do Power Query gerado no Editor Avançado do Power BI e o relatório lerá os resultados do log do contêiner em tempo real via HTTPS — sem driver ODBC, sem porta de banco de dados aberta.
Como funciona o Power BIAlertas e relatórios de logs de contêineres
Slack · Discord · E-mail · Webhook
Programe uma consulta de logs de contêineres para que as linhas sejam entregues no Slack, Discord, por e-mail ou por um webhook assinado — ou retenha a mensagem até que a contagem de linhas, um limite ou uma variação percentual ultrapasse o valor definido.
Como funcionam os alertas e relatóriosO que isso deliberadamente não faz
Não se trata de um rastreamento em tempo real. O Query Streams lê os arquivos tal como estão no disco no momento da execução da consulta, portanto, um loop de reinicialização aparece como linhas em vez de um fluxo que você monitora. Se você precisar de alertas com precisão inferior a um segundo para uma linha específica, assim que ela for impressa, um pipeline de logs é a ferramenta adequada.
A saída de um contêiner é de formato livre, e isso tem uma consequência que vale a pena mencionar claramente: tudo o que seu aplicativo imprime é o que vai parar na tabela. Se ele registrar um token ou um e-mail de cliente, essa string já estará no arquivo de log e também estará na coluna. Não há um mapa de cabeçalho para excluir, como existe em um log de servidor web — trate a tabela resultante com o mesmo cuidado que você trataria o arquivo.
Dois limites menores, nomeados em vez de ocultos. Em um logs do docker A linha de exportação do próprio contêiner é mantida inteira em um mensagem coluna; a análise sintática dessa linha interna, utilizando seu próprio formato, ainda não foi implementada. Além disso, os atributos opcionais que o Docker pode anexar a uma tag de log são reconhecidos apenas pelo formato — nenhum contêiner no conjunto de dados capturado os utilizou, portanto, esse caminho é declarado, não comprovado.
O restante segue o padrão usual. O Agente se conecta à rede externa e lê arquivos; nada é instalado no contêiner, nada é gravado de volta, o socket do Docker e a API nunca são acessados, e o acesso é somente leitura. O período de retenção começa em 30 dias para esta configuração predefinida e você pode alterá-lo.
Como funciona
Três etapas, e nada é instalado no contêiner.
Aponte para a pasta de registro.
Conceda ao Agente de Fluxos de Consulta acesso de leitura ao local onde os logs já são armazenados — /var/lib/docker/containers Em um host Docker, em uma pasta de exportações salvas ou em um compartilhamento onde você as armazena.
Ele reconhece o formato.
O Query Streams identifica o formato a partir do conteúdo das linhas, não do nome do arquivo — portanto, uma cópia renomeada ainda é lida, e um arquivo que não corresponde ao formato fixado é armazenado com uma justificativa, em vez de corromper a tabela.
Consulte-o ou junte-se a ele.
Execute consultas SQL a partir do portal, insira-as diretamente no Microsoft Excel ou no Google Sheets, ou utilize uma consulta federada para combinar os logs do contêiner com os usuários e pedidos no banco de dados do seu aplicativo — tudo em uma única instrução.
Perguntas frequentes sobre o registro de contêineres
Preciso alterar o driver de log do Docker?
Não. arquivo json é o driver padrão do Docker e é o driver suportado. Se você nunca configurou o registro de logs, os arquivos já estão lá e no formato correto.
Se você mudou para um driver diferente, o docker logs --timestamps O comando `export` é a rota de entrada: funciona independentemente do driver, porque a CLI lê através do daemon.
Como é que o programa sabe o nome do contêiner e não apenas o seu ID?
O Docker grava seu próprio registro de um contêiner na mesma pasta do log. O Query Streams lê o nome desse arquivo e o usa como coluna de identidade, com a imagem, o projeto Compose e o serviço mantidos como colunas adjacentes. O ID da pasta de 64 caracteres é mantido como id_do_containerAssim, nada se perde.
Se esse registro estiver ausente, ilegível ou não tiver um nome, o nome da pasta será usado em seu lugar e a varredura contabilizará quantas vezes isso aconteceu — portanto, uma alternativa aparecerá como um número que você pode consultar, e não como uma substituição silenciosa.
Estou usando o Docker Desktop para Windows ou Mac. Isso funciona?
Não diretamente contra os logs do arquivo JSON. O Docker Desktop os mantém dentro de sua própria máquina virtual, e um agente executado como serviço no host não pode acessá-los.
A solução é o perfil de exportação: docker logs --timestamps <container> redirecionado para um arquivo, em qualquer pasta que o Agente possa ler. Esse é um formato suportado por si só, não uma solução alternativa — é o mesmo método que as pessoas já usam para manter uma cópia de um log após a remoção de um contêiner.
Isso é em tempo real?
É sob demanda, e não por streaming. Os arquivos são lidos tal como estão no momento da execução da consulta, portanto, novas linhas aparecem à medida que seus contêineres as gravam e o arquivo é carregado — não em um cronograma fixo noturno, mas também não em um acompanhamento contínuo.
Para fazer uma pergunta sobre as últimas semanas em todos os contêineres e obter a resposta em uma planilha, essa é a forma útil e requer consideravelmente menos maquinário do que uma pilha de toras.
E quanto ao Kubernetes ou ao Podman?
Nenhuma das duas possui um perfil próprio atualmente, e preferimos afirmar isso a sugerir cobertura. O que se aplica é o formato de exportação: o perfil está vinculado ao formato exato. docker logs --timestamps Escreve — um carimbo de nanossegundos RFC 3339, um espaço e, em seguida, a própria linha do contêiner, um arquivo por serviço. As ferramentas que escrevem nesse mesmo formato leem com ele.
A maneira mais confiável de verificar isso para seus próprios arquivos é usar o Teste de conexão, que informa o que foi reconhecido antes de você confirmar qualquer coisa.
Meus contêineres registram JSON. Devo obter os campos deles como colunas?
Sim, para logs em formato JSON. O envelope do daemon é desembrulhado e o JSON do próprio contêiner dentro dele é dividido em colunas — nível, logger, mensagem, host e serviço, quando presentes. Tudo o que não corresponde a uma coluna nomeada é mantido em um espaço não especificado. dados coluna em vez de descartada, portanto, um campo incomum ainda pode ser consultado.
O único dado que não é extraído do JSON do contêiner é o carimbo de data/hora. Esse dado é fornecido pelo daemon, pois o carimbo de data/hora de um aplicativo pode estar em qualquer formato, e um formato incorreto desloca silenciosamente a linha no tempo.
E quanto a uma linha que o analisador sintático não consegue ler?
Ela é mantida, não descartada. Uma linha que não corresponde ao formato definido é retida como uma linha bruta com uma justificativa anexada, de modo que uma entrada malformada ou uma alteração inesperada no formato apareça como algo que você pode ver e consultar, em vez de como uma lacuna silenciosa em seus números.
Seus contêineres já estão se comunicando.
Conecte uma pasta de logs e execute sua primeira consulta em poucos minutos. Plano gratuito, sem necessidade de cartão de crédito, nada instalado em um contêiner.
Somente leitura · somente conexão de saída · seus registros permanecem no seu host












