diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e54a5f..f849e53 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,6 +58,11 @@ jobs: sudo apt-get update sudo apt-get install -y libsystemd-dev libsnappy-dev + - id: disable-apparmor-for-rsyslogd + run: | + sudo ln -s /etc/apparmor.d/usr.sbin.rsyslogd /etc/apparmor.d/disable/ + sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.rsyslogd + - id: prepare-python uses: actions/setup-python@v2 with: diff --git a/README.rst b/README.rst index 2c1f961..9f008fb 100644 --- a/README.rst +++ b/README.rst @@ -326,6 +326,13 @@ This feature requires latest version of ``python-systemd`` `with namespace suppo Require that the logs message matches only against certain _SYSTEMD_UNITs. If not set, we allow log events from all units. +``journald_filters`` (default ``[]``) + +Journald filters in the form of =. If not set, no filter will be applied. +Example: SYSLOG_IDENTIFIER=postgres + +Refer to https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html for a list of valid fields. + ``flags`` (default ``LOCAL_ONLY``) ``"LOCAL_ONLY"`` opens journal on local machine only; ``"RUNTIME_ONLY"`` opens only volatile journal files; diff --git a/journalpump/journalpump.py b/journalpump/journalpump.py index d59d834..1c01101 100644 --- a/journalpump/journalpump.py +++ b/journalpump/journalpump.py @@ -468,7 +468,8 @@ def get_reader(self, seek_to=None, reinit=False): for unit_to_match in self.config.get("units_to_match", []): self.journald_reader.add_match(_SYSTEMD_UNIT=unit_to_match) - + for journald_filter in self.config.get("journald_filters", []): + self.journald_reader.add_match(journald_filter) self.initialize_senders() return self.journald_reader diff --git a/requirements.txt b/requirements.txt index 1b55f5e..41e2004 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,9 @@ -kafka-python +kafka-python<2.0.4 requests -websockets +websockets<14.0 aiohttp-socks python-snappy +python-socks<2.7.0 botocore google-api-python-client google-auth diff --git a/setup.py b/setup.py index 1fd4722..a222bf5 100644 --- a/setup.py +++ b/setup.py @@ -10,9 +10,9 @@ packages=find_packages(exclude=["test", "systest"]), extras_require={}, install_requires=[ - "kafka-python", + "kafka-python<2.0.4", "requests", - "websockets", + "websockets<14.0", "aiohttp-socks", "botocore", "google-api-python-client",