Skip to main content
Build status

Forward systemd journal logs to CloudWatch.

A log forwarder daemon similar to Amazon’s awslogs agent, but using per systemd unit journal output instead of text log files.

Installing

Use your system package manager to install systemd Python 3 binding. The required package is named python3-systemd both in Ubuntu and Fedora:

dnf install python3-systemd

If on Ubuntu, install python3-venv too:

apt install python3-venv

Create dedicated virtualenv for awslogs-sd:

python3 -m venv --system-site-packages /opt/awslogs-sd
/opt/awslogs-sd/bin/pip install wheel

And finally:

/opt/awslogs-sd/bin/pip install awslogs-sd

Daemon binary will be available under /opt/awslogs-sd/bin/awslogs-sd.

AWS setup

Similarly to Amazon’s awslogs, awslogs-sd requires an IAM policy attached to EC2 instance. Configuration is the same as in Amazon awslogs documentation.

Usage

awslogs-sd requires path to configuration file as a positional argument.

You can use --logging-conf to pass optional YAML logging configuration in dictConfig format. See Python logging documentation. Following loggers can be configured:

  • awslogs: main daemon logger

  • metrics: daemon statistics printed at INFO level every 10 seconds

Configuration

Configuration file uses ini format and is designed to be similar to Amazon awslogs configuration.

There are two main ini sections general and include. Every other section has arbitrary name and contains a single systemd unit configuration.

general

Following option is required:

  • state_file: path to daemon database. Must be in persistent storage.

Example:

[general]
state_file = /var/lib/awslogs-sd/state

include

Optional section with a single option:

  • path: an Unix glob pattern to specify locations of additional configuration files to load and merge with main one. Used mostly to support popular conf.d drop-in pattern.

Example:

[include]
path = /etc/awslogs-sd.conf.d/*.conf

Unit sections

Example:

[httpd_error]
unit = httpd.service
priority = ERR
syslog_ident = httpd_error
syslog_facility = local1
log_group_name = httpd-access
log_stream_name = {instance_id}

Following options are supported:

  • unit (required): systemd unit name

  • log_group_name (required): destination CloudWatch log group

  • log_stream_name (required): CloudWatch stream name inside group; support basic variable interpolation (see below)

  • priority: minimum journal priority to match (default: INFO). See Arch wiki.

  • format: output log format, one of text or json (default: text)

  • datetime_format: datetime format in strftime format if text output is used (default: %b %d %H:%M:%S)

  • syslog_ident: match by syslog ident (aka “tag”) if syslog transport is used

  • syslog_facility: match by syslog facility if syslog transport is used

Stream name variables

Stream names support variable interpolation with {var} syntax. Following variables are available:

  • instance_id: local EC2 instance id

  • hostname: machine hostname

Metadata

Release files for awslogs-sd 0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awslogs-sd 0.5
File Size Uploaded
awslogs-sd-0.5.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for awslogs-sd 0.5
File Interpreter ABI Platform
awslogs_sd-0.5-py3-none-any.whl Python 3 none any Details

Total release size: 22.7 kB

Release files / awslogs-sd-0.5.tar.gz

Download URL awslogs-sd-0.5.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6d37e2396abb76fefef563ed9528c702becff6dd2428123ea439c003af54cdf2
BLAKE2b-256 checksum
How to use checksums
7152037f1b25cd4024274c5b31b291a0e998fb17105ef82ee5336438fdd059e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / awslogs_sd-0.5-py3-none-any.whl

Download URL awslogs_sd-0.5-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9f8e13ca249a7a1d24831b806b271dec8409906dcd38909d5d6f2f9a63546ca
BLAKE2b-256 checksum
How to use checksums
fe87f0ea89b8b96dc3c0ccfe7ede5c4aeb441765c7199fb805cdab7dc581b385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.5 This release

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page