explaingit

gliderlabs/logspout

4,697GoAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

Logspout collects log output from all Docker containers on a host and forwards them in real time to a central destination like a syslog server, running as its own tiny Docker container.

Mindmap

mindmap
  root((Logspout))
    What it does
      Collects Docker logs
      Forwards in real time
      HTTP log streaming
    Configuration
      Exclude containers
      Label filters
      Multiple destinations
    Tech Stack
      Go
      Docker
    Audience
      DevOps engineers
      Sysadmins
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Collect logs from all containers on a Docker host and send them to a central syslog server.

USE CASE 2

Filter container logs by name or label and route only specific services to a monitoring destination.

USE CASE 3

Inspect a live stream of all container logs in your terminal with a curl command, no configuration needed.

USE CASE 4

Manage multiple log destinations at runtime through Logspout's HTTP interface without restarting it.

Tech stack

GoDocker

Getting it running

Difficulty · easy Time to first run · 5min

Runs as a single Docker container, pass a destination URL as a command argument and it starts collecting immediately.

In plain English

Logspout is a tool for collecting and forwarding log output from Docker containers. Docker is a system for running applications in isolated containers, and each container produces its own stream of log messages. When you have many containers running on a server, gathering their logs and sending them somewhere central for storage or monitoring becomes a practical problem. Logspout solves this by attaching to all containers on a host and routing their output to a destination you specify. It runs as its own Docker container, which makes setup consistent with how other services are deployed in a container-based environment. You point it at a destination by passing a URL as a command argument, such as a remote syslog server address. Logspout then collects the standard output and error output from every other container on the host and forwards those logs in real time. You can control which containers Logspout pays attention to. Individual containers can be excluded by setting an environment variable or a label when they are started. Conversely, you can set filters so Logspout only forwards logs from containers whose names, IDs, or labels match a pattern. Multiple destinations are also supported by separating destination URLs with commas. An optional HTTP interface lets you inspect the live stream of all container logs in a terminal using a simple curl command, without configuring any remote destination. Routes can also be created and managed at runtime through this HTTP interface, and routes can be persisted to disk by mounting a volume. Logspout is designed to be stateless and lightweight. Its Docker image is about 15 megabytes. It focuses only on getting logs out of containers in real time, not on storing or searching them.

Copy-paste prompts

Prompt 1
Run Logspout in Docker to forward all container logs to my remote syslog server at syslog://logs.example.com:514.
Prompt 2
How do I configure Logspout to skip logs from specific containers using environment variables or Docker labels?
Prompt 3
Use Logspout's HTTP interface to stream live logs from all containers to my terminal with a curl command.
Prompt 4
Set up Logspout to send container logs to two different destinations at the same time by separating destination URLs with commas.
Open on GitHub → Explain another repo

← gliderlabs on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.