Splitting these in two lets users better configure how the logs show up in Stackdriver Logging.
2.8 KiB
journaldriver
This is a small daemon used to forward logs from journald
(systemd's
logging service) to Stackdriver Logging.
Most existing log services are written in inefficient dynamic languages with error-prone "cover every use-case" configuration. This tool aims to fit a specific use-case very well, instead of covering every possible logging setup.
In the initial version journaldriver
will only work if deployed
directly to a Google Compute Engine instance and will use the
metadata server to figure out credentials and instance
identification.
Features
journaldriver
persists the last forwarded position in the journal and will resume forwarding at the same position after a restartjournaldriver
will recognise log entries in JSON format and forward them appropriately to make structured log entries available in Stackdriverjournaldriver
can be used outside of GCP by configuring static credentials
Usage on Google Cloud Platform
journaldriver
does not require any configuration when running on GCP
instances.
-
Install
journaldriver
on the instance from which you wish to forward logs. -
Ensure that the instance has the appropriate permissions to write to Stackdriver. Google continously changes how IAM is implemented on GCP, so you will have to refer to Google's documentation.
By default instances have the required permissions if Stackdriver Logging support is enabled in the project.
-
Start
journaldriver
, for example viasystemd
.
Usage outside of Google Cloud Platform
When running outside of GCP, the following extra steps need to be performed:
-
Create a Google Cloud Platform service account with the "Log Writer" role and download its private key in JSON-format.
-
When starting
journaldriver
, configure the following environment variables:GOOGLE_CLOUD_PROJECT
: Name of the GCP project to which logs should be written.GOOGLE_APPLICATION_CREDENTIALS
: Filesystem path to the JSON-file containing the service account's private key.LOG_STREAM
: Name of the target log stream in Stackdriver Logging. This will be automatically created if it does not yet exist.LOG_NAME
: Name of the target log to write to. This defaults tojournaldriver
if unset, but it is recommended to - for example - set it to the machine hostname.