Docker y Portainer Nuevo
Conectar Registros de contenedores a Excel, Hojas de cálculo y IA
Docker escribe un registro para cada contenedor; consúltelos todos a la vez. Los registros en formato JSON que escribe el demonio, registros de Docker Exporta manualmente los archivos que guardas y el registro del servidor de Portainer. Si apuntas Query Streams a la carpeta, cada línea se convierte en una fila que contiene el nombre real del contenedor, su imagen y su servicio Compose, en lugar de un directorio lleno de identificadores de 64 caracteres.
Una carpeta de registros de contenedores se convierte en una tabla.
Query Streams lee los archivos que el demonio ya ha escrito, fija el formato y proporciona columnas tipadas con el contenedor especificado junto a cada fila. Sin archivos auxiliares, sin canalización de envío, sin índice que mantener; y una línea que el analizador no puede leer se conserva como una fila con una explicación, en lugar de descartarse silenciosamente.
a3f9c1…-json.logEstibador
shopfront-stack_api.logexportar
portainer.logPorteadorRotaciones, archivos comprimidos y archivos releídos: gestionados
SELECCIONE aplicación, componer_servicio,
contar(*) AS pauta
DESDE eventos del conjunto de archivos
DONDE flujo = 'stderr'
GRUPO POR aplicación, servicio de composición
ORDENAR POR pauta DESCIntégrala a la base de datos de tu aplicación en la misma consulta.
Archivos que el demonio ya escribe, ahora una tabla sobre la que puede generar informes.
Dos herramientas, tres formatos, sin sidecar
Cada tarjeta nombra los archivos exactos que lee Query Streams y dónde se encuentran. No es necesario modificar el controlador de registro para que esto funcione. archivo json es el predeterminado de Docker, y el predeterminado es el compatible.
Registros de contenedores compatibles
3 formatos · 2 herramientas
Estibadorcontrolador de registro de archivos JSON
- Uno
{"registro","flujo","tiempo"}sobre por línea, escrito por el demonio - El nombre del contenedor proviene del propio Docker.
config.v2.jsonjunto al tronco - Imagen y componer proyecto/servicio recorrido como columnas
- Generalmente
/var/lib/docker/contenedores - Apéndices; rotaciones numeradas y
.gzseguido
EstibadorExportación de registros de Docker
- Archivos que guardaste con
Registros de Docker --marcas de tiempo - Un sello de nanosegundos RFC 3339, luego la propia línea del contenedor.
- Las líneas del banner del contenedor se omiten por declaración, no por casualidad.
- Cualquier carpeta donde guardes las exportaciones
- Un archivo por servicio; el nombre proviene de la raíz del archivo.
PorteadorRegistro del servidor, consola zerolog
portainer.logo la propia salida del contenedor- Los códigos de color ANSI se eliminan antes del análisis, por lo que un nivel es un nivel.
- El
clave=valorLa cola se convierte en columnas; el resto cae endatos - Las líneas con formas diferentes del servidor de túnel integrado también se leen.
- Sellos con resolución de minutos, leídos en UTC
Con cada nueva versión del Agente, se añaden nuevos formatos de registro de contenedores. Dado que los Agentes se actualizan automáticamente, un formato añadido posteriormente aparece en el conector sin necesidad de que nadie acceda al servidor.
registros de Docker Exporta desde un host Swarm y el registro del servidor de Portainer CE 2.39.1. Una cosa que debes saber de antemano: en Docker Desktop para Windows y Mac, los registros del archivo json se encuentran dentro de su máquina virtual, donde un agente que se ejecuta como un servicio no puede acceder a ellos. Exporta con Registros de Docker --marcas de tiempo y utilice el segundo perfil.
Contenedores en cada región, registros leídos donde se sientan
Es raro que todos los contenedores se ejecuten en un mismo lugar. Un host en la oficina, un clúster Swarm en una región de la nube, un único servidor en otro país. Cada ubicación ejecuta un Agente de red que lee los archivos de registro donde ya se encuentran y se conecta a Query Streams. Para su firewall, se trata de una conexión saliente normal: no hay nada que abrir ni ninguna VPN que configurar.
registros de Docker exportación por servicio
marca fuera
Tres conexiones salientes, un solo lugar para consultarlas: sin puerto de entrada, sin VPN, sin cambios en el firewall.
Un agente por ubicación
Un agente cubre todo un sitio en lugar de una sola carpeta: cada formato de registro que desee utilizar se convierte en su propio conector de conjunto de archivos en ese mismo agente. Lo habitual es un agente por ubicación. El plan gratuito ejecuta un solo agente y los planes superiores ejecutan más.
1 sitio = 1 agente = muchos conectores
Nada que abrir
El agente establece una conexión saliente cifrada, y tanto la solicitud saliente como las filas recibidas viajan a través de ella. No se requiere ningún puerto de entrada, VPN ni modificación del firewall; además, las credenciales permanecen dentro de su red.
una conexión, en ambas direcciones
Una consulta en varios sitios
Cada fuente en un consulta federada Asigna su propio agente, de modo que una sola instrucción puede leer un registro en un país y otro en un país diferente, y devolver un único resultado, o bien combinarlos en una base de datos. Incluido en los planes Business y Enterprise.
2 países → 1 conjunto de resultados
Se mantienen al día
Los agentes se actualizan automáticamente, por lo que un formato de registro de contenedores añadido en una versión posterior llega a todos los sitios sin que nadie tenga que iniciar sesión en un servidor para instalarlo. Eso es lo que convierte el muro anterior en un punto de partida, en lugar de una lista fija.
Llegan nuevos formatos con el Agente
Nombres, relojes y códigos de color
Un registro de contenedor no es un archivo de texto con una fecha. Suelen surgir tres problemas al intentar tratarlo como datos, y aquí se abordan mediante una declaración explícita en lugar de conjeturas.
Nombres, no identificadores hexadecimales
Docker nombra cada carpeta de registro según el ID del contenedor, lo que hace que una consulta agrupada sea ilegible. Query Streams lee el registro que Docker escribe junto al archivo de registro y toma el nombre real, manteniendo el ID como una columna aparte.
a3f9c1…-json.log → app = shopfront-api
El reloj del demonio
Un contenedor que imprime su propia marca de tiempo en segundos de época aterriza en 1970, si se le da crédito. La hora del evento es la hora de captura del demonio; la marca de tiempo del propio contenedor se guarda como una columna en lugar de ser considerada fiable.
tiempo de envoltura → tiempo_evento
Códigos de color en el archivo
Los registradores de consola escriben las secuencias de escape de terminal directamente en el registro. Estas se eliminan antes del análisis, por lo que un nivel se lee como un nivel en lugar de como un nivel envuelto en caracteres de escape, y los bytes originales permanecen intactos.
Códigos de escape eliminados → nivel = INF
Nada contó dos veces
Cada archivo se identifica mediante sus primeros 4 KB, de modo que un archivo rotado se reconoce como el mismo archivo en lugar de leerse de nuevo desde el principio. Una ventana de duplicados deslizante detecta la superposición cuando un escritor reproduce su cola.
Hash de prefijo de 4 KB · ventana de 20.000 registros
Las columnas que realmente obtienes
No se trata de un bloque de texto con una marca de tiempo al lado. Cada formato se analiza y se convierte en columnas tipificadas que se pueden filtrar, agrupar y agregar directamente; y cuando un contenedor registra JSON estructurado, sus propios campos también se descomponen en columnas.
Cada fila también lleva tiempo_del_evento, el sello original del que se leyó y el archivo del que proviene. Cada formato agrega su columna de identidad: aplicación para archivos json y Portainer, recipiente para una exportación — y las filas del archivo json además contienen imagen, componer_proyecto, servicio_componer y ID del contenedor. El único mensaje La columna en una exportación es intencional: la línea del propio contenedor se mantiene intacta en lugar de adivinarse.
Dónde se pueden almacenar los datos de registro de su contenedor.
Los archivos de registro no son un callejón sin salida. Conecta la carpeta una sola vez y la misma conexión de solo lectura alimenta todas las superficies que admite Query Streams; no se requiere una segunda configuración, ni una segunda copia de los datos, ni hay diferencias en el tratamiento por parte de un conector de base de datos.
Registros de contenedores a Excel
Microsoft Excel · Complemento de Excel
Obtenga los resultados de los registros de contenedores en tiempo real directamente en una hoja de cálculo y actualícelos cuando lo necesite: Excel de escritorio, Excel Online, Microsoft 365.
Cómo funciona ExcelRegistros de contenedores en Google Sheets
Complemento de hojas
Ejecute una consulta de registro de contenedor guardada desde la barra lateral y arrastre las filas a la hoja. Los colaboradores compartidos pueden actualizarla ellos mismos.
Cómo funciona Google SheetsServidor MCP de registros de contenedores
Claude, Cursor y clientes MCP · Servidor MCP
Otorgue a un asistente de IA acceso de solo lectura al registro del contenedor con el esquema que necesita para escribir SQL correcto; no se requieren credenciales en el chat.
Cómo funciona MCPAPI REST de registros de contenedores
punto final HTTP
Publica una consulta de registro de contenedor como un punto final JSON autenticado al que cualquier aplicación puede llamar, con una especificación OpenAPI 3.1 y colecciones predefinidas para Postman, Insomnia y Hoppscotch. No se abre ningún puerto de base de datos.
Cómo funciona la API RESTRegistros de contenedores en Airtable
Plataforma de automatización
Sincroniza las filas del registro del contenedor con una base de datos de Airtable según un cronograma, o recupéralas dentro de un script de automatización de Airtable.
Cómo funciona AirtableRegistros del contenedor en Baserow
Plataforma de automatización
Alimenta una tabla de Baserow desde el registro del contenedor a través del punto final REST, ya sea en servidores propios o en la nube de Baserow.
Cómo funciona BaserowRegistros de contenedores a SeaTable
Plataforma de automatización
Mantén actualizada una base de datos SeaTable con los datos de registro de los contenedores sin exportar ningún archivo ni exponer la base de datos.
Cómo funciona SeaTableRegistros de contenedores en Smartsheet
Plataforma de automatización
Los resultados del registro de contenedores se insertarán en una cuadrícula de Smartsheet para que los planes e informes se lean desde el sistema de origen, y no desde la exportación de la semana pasada.
Cómo funciona SmartsheetRegistros de contenedores en Anvil
Anvil Works · Plataforma de aplicaciones
Realice una copia de seguridad de una aplicación Python de Anvil con registro de contenedor a través del punto final REST en lugar de incrustar las credenciales de la base de datos en la aplicación.
Cómo funciona AnvilRegistros de contenedores en Power BI
Power Query M
Pegue la consulta Power Query M generada en el Editor avanzado de Power BI y el informe leerá los resultados del registro del contenedor en tiempo real a través de HTTPS, sin controlador ODBC ni puerto de base de datos abierto.
Cómo funciona Power BIRegistros de contenedores, alertas e informes
Slack · Discord · Correo electrónico · Webhook
Programe una consulta de registro de contenedor y haga que las filas se envíen a Slack, Discord, correo electrónico o un webhook firmado, o bien, retenga el mensaje hasta que un recuento de filas, un umbral o un cambio porcentual supere la línea que haya establecido.
Cómo funcionan las alertas y los informesLo que esto deliberadamente no hace
No se trata de una lectura en tiempo real. Query Streams lee los archivos tal como están en el disco al ejecutar la consulta, por lo que un bucle de reinicio se muestra como filas en lugar de como un flujo que se puede observar. Si necesita alertas con precisión de subsegundos sobre una línea a medida que se imprime, una canalización de registros es la herramienta adecuada.
La salida de un contenedor es de formato libre, y esto tiene una consecuencia que conviene aclarar: lo que imprime tu aplicación es lo que se guarda en la tabla. Si registra un token o un correo electrónico de un cliente, esa cadena ya está en el archivo de registro y también aparecerá en la columna. No hay un mapa de encabezados para excluir, como ocurre con el registro de un servidor web; trata la tabla resultante con el mismo cuidado que el archivo.
Dos límites más pequeños, nombrados en lugar de ocultos. En un registros de Docker La exportación de la propia línea del contenedor se mantiene intacta en una mensaje columna; el análisis de esa línea interna según su propio formato aún no está implementado. Además, los atributos opcionales que Docker puede adjuntar a una etiqueta de registro se reconocen únicamente por su forma; ningún contenedor del corpus capturado los utilizó, por lo que esa ruta se declara, no se demuestra.
El resto sigue el diseño habitual. El agente se conecta y lee archivos; no se instala nada en el contenedor, no se escribe nada, el socket y la API de Docker nunca se modifican y el acceso es de solo lectura. El campo de retención comienza en 30 días para esta configuración predeterminada y usted puede modificarlo.
Cómo funciona
Tres pasos y no se instala nada en un contenedor.
Señala la carpeta de registro.
Otorgue a un agente de Query Streams acceso de lectura a la ubicación donde ya se almacenan los registros. /var/lib/docker/contenedores en un host Docker, una carpeta de exportaciones guardadas o un recurso compartido donde las recopile.
Reconoce el formato
Query Streams identifica el formato a partir del contenido de las líneas, no del nombre del archivo; por lo tanto, una copia renombrada aún se puede leer, y un archivo que no coincide con el formato fijado se archiva con una explicación en lugar de dañar la tabla.
Consúltalo o únete a él.
Ejecute consultas SQL desde el portal, impórtelas directamente en Microsoft Excel o Google Sheets, o utilice una consulta federada para combinar los registros de contenedores con los usuarios y pedidos de la base de datos de su aplicación, todo en una sola instrucción.
Preguntas frecuentes sobre el registro de contenedores
¿Tengo que cambiar mi controlador de registro de Docker?
No. archivo json es el controlador predeterminado de Docker, y es el compatible. Si nunca has configurado el registro, los archivos ya están ahí y con el formato correcto.
Si se ha cambiado a un controlador diferente, el Registros de Docker --marcas de tiempo La exportación es la ruta de entrada: funciona independientemente del controlador, porque la CLI lee a través del demonio.
¿Cómo sabe el nombre del contenedor y no solo su ID?
Docker escribe su propio registro de un contenedor en la misma carpeta que el registro. Query Streams lee el nombre de ese archivo y lo usa como columna de identidad, con la imagen y el proyecto y servicio de Compose mantenidos como columnas adyacentes. El ID de carpeta de 64 caracteres se conserva como ID del contenedor, así que no se pierde nada.
Si ese registro falta, es ilegible o no tiene nombre, se utiliza el nombre de la carpeta y el sistema cuenta con qué frecuencia ocurrió, de modo que la solución alternativa aparece como un número que se puede consultar, no como una sustitución silenciosa.
Estoy usando Docker Desktop para Windows o Mac. ¿Esto funciona?
No se trata de acceder directamente a los registros en formato JSON. Docker Desktop los mantiene dentro de su propia máquina virtual, y un agente que se ejecuta como servicio en el host no puede acceder a ellos.
La solución es el perfil de exportación: docker logs --timestamps <contenedor> Se redirige a un archivo, en cualquier carpeta que el Agente pueda leer. Este es un formato compatible en sí mismo, no una solución alternativa; es el mismo método que ya se utiliza para conservar una copia de un registro después de que un contenedor desaparece.
¿Esto es en tiempo real?
Se trata de un sistema bajo demanda, no de transmisión continua. Los archivos se leen tal como están cuando se ejecuta la consulta, por lo que aparecen nuevas líneas a medida que los contenedores las escriben y se procesa el archivo; no se realiza según un horario fijo nocturno, pero tampoco se realiza un seguimiento en tiempo real.
Para hacer una pregunta sobre las últimas semanas en cada contenedor y obtener la respuesta en una hoja de cálculo, esa es la forma útil y requiere considerablemente menos maquinaria que una pila de troncos.
¿Qué hay de Kubernetes o Podman?
Ninguno de los dos tiene un perfil propio hoy en día, y preferimos decirlo en lugar de implicar cobertura. Lo que sí aplica es el formato de exportación: el perfil está vinculado a la forma exacta. Registros de Docker --marcas de tiempo escribe: un sello de nanosegundos RFC 3339, un espacio, luego la línea propia del contenedor, un archivo por servicio. Las herramientas que escriben con esa misma forma leen con ella.
La forma más fiable de comprobarlo para tus propios archivos es mediante la prueba de conexión, que informa de lo que ha detectado antes de que confirmes nada.
Mis contenedores registran datos en formato JSON. ¿Debo obtener sus campos como columnas?
Sí, para los registros de archivos JSON. El paquete del demonio se desempaqueta y el propio JSON del contenedor en su interior se aplana en columnas: nivel, registrador, mensaje, host y servicio, donde estén presentes. Todo lo que no se asigna a una columna con nombre se mantiene en un datos columna en lugar de descartarse, por lo que un campo inusual aún se puede consultar.
Lo único que no se toma del JSON del contenedor es la marca de tiempo. Esta proviene del demonio, ya que la marca de tiempo de una aplicación puede tener cualquier formato y un error en ella provoca una desincronización temporal silenciosa de la fila.
¿Qué ocurre con una línea que el analizador sintáctico no puede leer?
Se conserva, no se descarta. Una línea que no coincide con el formato fijado se mantiene como una fila sin formato con una explicación adjunta, de modo que una entrada mal formada o un cambio de formato inesperado se muestra como algo visible y consultable, en lugar de como un hueco silencioso en los números.
Tus contenedores ya están hablando.
Conecta una carpeta de registros y ejecuta tu primera consulta en pocos minutos. Plan gratuito, sin tarjeta de crédito, sin necesidad de instalar nada en un contenedor.
Solo lectura · Solo conexión saliente · Tus registros permanecen en tu host












