Seq Documentation and Support

Seq Documentation and Support

Welcome to the Seq documentation hub. You'll find comprehensive guides and documentation to help you start working with Seq as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Getting Started with Docker

Seq's Linux-based Docker image is ideal for deployment to Linux hosts and container orchestrators, and for for local development on Linux or macOS.

Seq is a centralized log server for ingesting and querying structured log events.

Seq is distributed for Linux as a Docker container. Docker is a lightweight platform for bundling applications and their platform dependencies as a single unit.

Running Seq in a Docker container

Seq is run using the officially supported datalust/seq container image from the Docker Store. An example of running Seq in a docker container as a shared background service is:

$ docker run \
  -d \
  --restart unless-stopped \
  --name seq \
  -e ACCEPT_EULA=Y \
  -v $HOST_PATH_TO_SEQ:/data \
  -p $HOST_HTTP_PORT:80 \
  datalust/seq:latest

where:

  • $HOST_PATH_TO_SEQ is an absolute path on the container host for the Seq instance to use for configuration and event storage. The path needs to exist already, but may be empty. If the container is stopped a new one can be started using the same path.
  • $HOST_HTTP_PORT is a port on the host to expose the Seq UI and web API on.

The container can then be stopped and started using the docker stop seq and docker start seq commands. It will be automatically started when the Docker daemon does unless it's been explicitly stopped.

Enabling authentication

A local development instance that isn't exposed to the outside world might be fine without authentication on the UI and API. In most cases, though, your next step should be visiting Settings > Users and enabling authentication.

Ingesting log events

Before you can benefit from Seq, your applications need to be configured to send log events to it. Quick integrations into Serilog, ASP.NET Core, Node.js/Bunyan, and several other libraries are available: see the Inputs heading in the topic list on the left-hand side of this page for a longer list.

Your applications can also log events by tailing their output with the seqcli command-line client

$ ./my-app | seqcli ingest

or posting JSON directly to Seq:

$ curl -XPOST "http://your-seq-host/api/events/raw?clef" \
  -d "{'@t':'2018-06-07T03:44:57.8532799Z','@mt':'Hello, {User}','User':'alice'}"

Exposing the ingestion port from a container

Containers can expose the limited ingestion port in addition to or instead of the API port. In the container the ingestion port is mapped to 5341:

$ docker run \
  -e ACCEPT_EULA=Y \
  -v $HOST_PATH_TO_SEQ:/data \
  -p $HOST_HTTP_PORT:80 \
  -p $HOST_INGESTION_PORT:5341 \
  datalust/seq:latest

where:

  • $HOST_PATH_TO_SEQ is an absolute path on the container host for the Seq instance to use.
  • $HOST_INGESTION_PORT is a port on the host to expose the Seq ingestion endpoint on.

Running other Seq commands in a docker container

Any arguments specified after the datalust/seq:latest image in the docker run command will be passed as arguments to the Seq binary:

$ docker run \
  --rm \
  -e ACCEPT_EULA=Y \
  -v $HOST_PATH_TO_SEQ:/data \
  datalust/seq:latest version

where:

  • $HOST_PATH_TO_SEQ is an absolute path on the container host for the Seq instance to use.

Container environment

File paths

Important file paths used by Seq in the container.

Value Description
/data Location of Seq extents and logs

Ports

Important ports used by Seq in the container.

Value Description
:80 The port that Seq binds to the API and UI
:5341 The port that Seq binds to the ingestion-only endpoint

Environment variables

Environment variables used by Seq in the container.

Value Description
ACCEPT_EULA Must be set to Y to indicate acceptance of the Seq EULA
BASE_URI The external uri that can be used to reach Seq outside of the container