Sign inSign up

logdna/logspout

By logdna

•Updated about 3 years ago

LogDNA Docker integration

Image
3

10M+

logdna/logspout repository overview

CircleCI

⁠LogDNA LogSpout

A Docker LogSpout image to stream logs from your containers to LogDNA.

⁠Change Log

⁠v1.3.0 - Released on April 20, 2021
  • Add a Makefile to do builds for multiple architectures (amd64, arm64)
    • Correct CI workflow to build from a Makefile
    • Use docker manifest to control tagging
⁠v1.2.0 - Released on February 20, 2020
  • Update License
  • Update Release Pipeline
  • Remove Log Line Sanitization
  • Update Making HTTP POST Requests and Retry Mechanism
  • Add User-Agent Header to the POST Requests
  • Update Authentication Mechanism
⁠v1.1.0 - Released on December 06, 2018
  • Get Tags from Templates
⁠v1.0.0 - Released on August 29, 2018
  • Initial Release

⁠How to Use

⁠Environment Variables

The following variables can be used to tune LogSpout for specific use cases.

⁠Log Router Specific
  • FILTER_NAME: Filter by Container Name with Wildcards, Optional
  • FILTER_ID: Filter by Container ID with Wildcards, Optional
  • FILTER_SOURCES: Filter by Comma-Separated List of Sources, Optional
  • FILTER_LABELS: Filter by Comma-Separated List of Labels, Optional

Note: More information can be found here⁠.

⁠Ingestion Specific
  • LOGDNA_KEY: LogDNA Ingestion Key, Required
  • HOSTNAME: Alternative Hostname, Optional
    • Default: System's Hostname
  • LOGDNA_URL: Specific Endpoint to Stream Log into, Optional
    • Default: logs.logdna.com/logs/ingest
  • TAGS: Comma-Separated List of Tags, Optional

Note: Logging the LogSpout Container is recommended to keep track of HTTP Request Errors or Exceptions.

⁠Limits
  • FLUSH_INTERVAL: How frequently batches of logs are sent (in milliseconds), Optional
    • Default: 250
  • HTTP_CLIENT_TIMEOUT: Time limit (in seconds) for requests made by this HTTP Client, Optional
  • INACTIVITY_TIMEOUT: How long to wait for inactivity before declaring failure in the Docker API and restarting, Optional
  • MAX_BUFFER_SIZE: The maximum size (in mb) of batches to ship to LogDNA, Optional
    • Default: 2
  • MAX_REQUEST_RETRY: The maximum number of retries for sending a line when there are network failures, Optional
    • Default: 5
⁠Docker

Create and run container named logdna from this image using CLI:

sudo docker run --name="logdna" --restart=always \
-d -v=/var/run/docker.sock:/var/run/docker.sock \
-e LOGDNA_KEY="<LogDNA Ingestion Key>" \
logdna/logspout:latest
⁠Docker Cloud

Append the following to your Docker Cloud stackfile:

logdna:
  autoredeploy: true
  deployment_strategy: every_node
  environment:
    - LOGDNA_KEY="<LogDNA Ingestion Key>"
    - TAGS='{{.Container.Config.Hostname}}'
  image: 'logdna/logspout:latest'
  restart: always
  volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
⁠Elastic Container Service (ECS)

Modify your ECS Cloud Configuration file to have LogDNA Service as described below:

services:
  logdna:
    environment:
        - LOGDNA_KEY="<LogDNA Ingestion Key>"
        - TAGS='{{ if .Container.Config.Labels }}{{index .Container.Config.Labels "com.amazonaws.ecs.task-definition-family"}}:{{index .Container.Config.Labels "com.amazonaws.ecs.container-name"}}{{ else }}{{.ContainerName}}{{ end }}'
    image: logdna/logspout:latest
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      mode: global
⁠Rancher

Modify your Rancher Compose Stackfile to have LogDNA Service as described below:

version: '2'
services:
  logdna:
    image: logdna/logspout:latest
    environment:
      LOGDNA_KEY="<LogDNA Ingestion Key>"
    restart: always
    labels:
      io.rancher.container.hostname_override: container_name
      io.rancher.container.pull_image: always
      io.rancher.os.scope: system
    volumes:
    - /var/run/docker.sock:/tmp/docker.sock
⁠Docker Swarm

Modify your Docker Swarm Compose file to have LogDNA Service as described below:

version: "3"
networks:
  logging:
services:
  logdna:
    image: logdna/logspout:latest
    networks:
      - logging
    volumes:
      - /etc/hostname:/etc/host_hostname:ro
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - LOGDNA_KEY="<LogDNA Ingestion Key>"
    deploy:
      mode: global
⁠Notes

Do not forget to add -u root (in CLI) or user: root (in YAML) in case of having permission issues.

⁠Contributing

Contributions are always welcome. See the contributing guide⁠ to learn how you can help. Build instructions for the agent are also in the guide.

Tag summary

Content type

Image

Digest

sha256:d0af738b1…

Size

6.6 MB

Last updated

about 3 years ago

docker pull logdna/logspout