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)
| File | Size | Uploaded | |
|---|---|---|---|
| awslogs-sd-0.5.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 |