{"id":15509527,"url":"https://github.com/gibbs/puppet-systemd_journal_remote","last_synced_at":"2025-03-28T19:17:43.830Z","repository":{"id":44563430,"uuid":"451462771","full_name":"gibbs/puppet-systemd_journal_remote","owner":"gibbs","description":"Puppet module for managing systemd journal remote, upload and gatewayd services.","archived":false,"fork":false,"pushed_at":"2024-02-18T14:24:03.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-19T22:26:54.917Z","etag":null,"topics":["puppet","puppet-module","systemd","systemd-journal-gatewayd","systemd-journal-remote","systemd-journal-upload"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gibbs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-24T12:51:50.000Z","updated_at":"2022-01-27T19:56:00.000Z","dependencies_parsed_at":"2024-02-18T12:34:26.445Z","dependency_job_id":"28c78731-e60e-4aea-9359-af293963ba1f","html_url":"https://github.com/gibbs/puppet-systemd_journal_remote","commit_stats":{"total_commits":26,"total_committers":2,"mean_commits":13.0,"dds":"0.038461538461538436","last_synced_commit":"e9998285c02fdce29711aba6d7ae9ce7a7752769"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gibbs%2Fpuppet-systemd_journal_remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gibbs%2Fpuppet-systemd_journal_remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gibbs%2Fpuppet-systemd_journal_remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gibbs%2Fpuppet-systemd_journal_remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gibbs","download_url":"https://codeload.github.com/gibbs/puppet-systemd_journal_remote/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246085645,"owners_count":20721213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["puppet","puppet-module","systemd","systemd-journal-gatewayd","systemd-journal-remote","systemd-journal-upload"],"created_at":"2024-10-02T09:43:05.126Z","updated_at":"2025-03-28T19:17:43.808Z","avatar_url":"https://github.com/gibbs.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# systemd journal remote\n\n[![Build Status](https://github.com/gibbs/puppet-systemd_journal_remote/workflows/CI/badge.svg)](https://github.com/gibbs/puppet-systemd_journal_remote/actions?query=workflow%3ACI)\n[![Release](https://github.com/gibbs/puppet-systemd_journal_remote/workflows/Release/badge.svg)](https://github.com/gibbs/puppet-systemd_journal_remote/actions?query=workflow%3ARelease)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/genv/systemd_journal_remote.svg?maxAge=2592000?style=plastic)](https://forge.puppet.com/genv/systemd_journal_remote)\n[![Apache-2 License](https://img.shields.io/github/license/gibbs/puppet-systemd_journal_remote.svg)](LICENSE)\n\n## Overview\n\nThis module installs, configures and manages the following remote journald\nservices:\n\n- `systemd-journal-remote`\n- `systemd-journal-upload`\n- `systemd-journal-gatewayd`\n\n## Package Management\n\nBy default, depending on the distribution, the `systemd-journal-remote` package\nis managed. The `::systemd_journal_remote` class is required by all other\nservices managed by this module.\n\n```puppet\n# Default package management\nclass { '::systemd_journal_remote':\n  manage_package =\u003e true,\n  package_name   =\u003e 'systemd-journal-remote',\n  package_ensure =\u003e present,\n}\n```\n\n## Example Usage\n\n### Remote Service\n\nThe `systemd-journal-remote` service can be used to receive journal messages\nover the network with the `::systemd_journal_remote::remote` class.\n\n```puppet\ninclude ::systemd_journal_remote::remote\n```\n\nBy default, to ensure the service runs without configuration, `journal-remote`\nlistens over HTTP and outputs to `/var/log/journal/remote/`.\n\nTo receive over HTTPS (recommended) and use trusted connections with Puppet\ncertificates:\n\n```puppet\n# Passive configuration example\nclass { '::systemd_journal_remote::remote':\n  command_flags =\u003e {\n    'listen-https' =\u003e '0.0.0.0:19532',\n    'compress'     =\u003e 'yes',\n    'output'       =\u003e '/var/log/journal/remote/',\n  },\n  options       =\u003e {\n    'SplitMode'              =\u003e 'host',\n    'ServerKeyFile'          =\u003e \"/etc/puppetlabs/puppet/ssl/private_keys/${trusted['certname']}.pem\",\n    'ServerCertificateFile'  =\u003e \"/etc/puppetlabs/puppet/ssl/certs/${trusted['certname']}.pem\",\n    'TrustedCertificateFile' =\u003e '/etc/puppetlabs/puppet/ssl/certs/ca.pem',\n  }\n}\n```\n\nTo pull data from another source in:\n\n```puppet\n# Active configuration example\nclass { '::systemd_journal_remote::remote':\n  command_flags =\u003e {\n    'url'    =\u003e 'https://some.host:19531/',\n    'getter' =\u003e \"'curl \\\"-HAccept: application/vnd.fdo.journal\\\" https://some.host:19531/'\",\n    'output' =\u003e '/var/log/journal/remote/',\n  },\n  options       =\u003e {\n    'SplitMode' =\u003e 'host',\n  }\n}\n```\n\nThe `command_flags` and `options` parameters available mirror those documented\nin `man systemd-journal-remote` and `man journal-remote.conf`.\n\n### Upload Service\n\nThe `systemd-journal-upload` service can be used to upload (send) journal\nmessages over the network with the `::systemd_journal_remote::upload` class.\n\nBy default this class is configured to upload over HTTP to\n`http://0.0.0.0:19532` and save its current state to\n`/var/lib/systemd/journal-upload/state`.\n\nTo send journal events over HTTPS using Puppet certificates:\n\n```puppet\n# Upload over HTTPS with Puppet certificates\nclass { '::systemd_journal_remote::upload':\n  command_flags =\u003e {\n    'save-state' =\u003e '/var/lib/systemd/journal-upload/state',\n  },\n  options       =\u003e {\n    'URL'                    =\u003e 'https://0.0.0.0:19532',\n    'ServerKeyFile'          =\u003e \"/etc/puppetlabs/puppet/ssl/private_keys/${trusted['certname']}.pem\",\n    'ServerCertificateFile'  =\u003e \"/etc/puppetlabs/puppet/ssl/certs/${trusted['certname']}.pem\",\n    'TrustedCertificateFile' =\u003e '/etc/puppetlabs/puppet/ssl/certs/ca.pem',\n    'NetworkTimeoutSec'      =\u003e '30',\n  }\n}\n```\n\n### Gateway Daemon Service\n\nThe `systemd-journal-gatewayd` service can be used as a HTTP server to request\njournal logs as server-sent events, binary or in text/JSON using the\n`::systemd_journal_remote::gatewayd` class.\n\nBy default the server listens on all interfaces over HTTP on port 19531. To use\nHTTPS add the `cert` option.\n\n```puppet\n# Expect HTTPS connection using Puppet certificates\nclass { '::systemd_journal_remote::gatewayd':\n  command_flags =\u003e {\n    'key'   =\u003e \"/etc/puppetlabs/puppet/ssl/private_keys/${trusted['certname']}.pem\",\n    'cert'  =\u003e \"/etc/puppetlabs/puppet/ssl/certs/${trusted['certname']}.pem\",\n    'trust' =\u003e '/etc/puppetlabs/puppet/ssl/certs/ca.pem',\n  }\n}\n```\n\n## Limitations\n\nSSL certificates are *not* managed by this module. You will need to ensure\nthe `systemd-journal-(remote|upload|gateway)` users have the correct access\nto the necessary files.\n\nThis module only manages the `systemd-journal-(remote|upload|gatewayd)` systemd\nservice `ExecStart`, `journal-remote.conf` and `journal-upload.conf`\nconfiguration files and the initial package installation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgibbs%2Fpuppet-systemd_journal_remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgibbs%2Fpuppet-systemd_journal_remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgibbs%2Fpuppet-systemd_journal_remote/lists"}