Application that retrieves logs from systems that aren’t natively supported by Google SecOps
Project description
LogReel
An open-source logging utility for reliable API-to-API log transport with modular plugin support.
LogReel is authored by Simone Roma, governed as a benevolent dictatorship, and distributed under license.
Introduction
In modern SaaS applications, logging is fundamentally different from traditional logging systems. SaaS applications expose APIs that must be periodically scraped to collect data, which is then stored in a logging system. Given the critical importance of logging for security and operational monitoring, any API logging service must ensure reliability and prevent data loss—even when remote systems experience temporary outages.
LogReel is a logging utility that simplifies API-based logging by fetching data from a source API and forwarding it to a destination API. It uses a cursor-based tracking mechanism to maintain continuity and prevent data duplication or loss. With its plugin-based architecture, users can easily create custom plugins to connect to different APIs, allowing LogReel to handle the continuous data collection and delivery.
Features
- Reliable API Logging, tracks the last successful fetch with a cursor-based mechanism.
- Plugin Architecture, allows users to implement their own plugins for source and destination APIs.
- Continuous Execution, executes user-defined plugins in a continuous loop for real-time logging.
- Containerised Deployment, deployable using Compose or Kubernetes for scalability and IaC integration.
Installation
Install using pip install logreel or poetry add logreel
Quickstart
-
Create your LogReel user environment repo
-
Add the
logreelpackage from pypi as a dependency -
Define your plugins that implement the corresponding base classes
from logreel import SourcePlugin, DestinationPlugin class MySourcePlugin(SourcePlugin): ... class MyDestinationPlugin(DestinationPlugin): ...
- Register the plugins using corresponding entrypoints and explicitly include the plugins packages
# pyproject.toml - example using Poetry [tool.poetry] ... packages = [ { include = "plugins/source" }, { include = "plugins/destination" } ] [tool.poetry.dependencies] logreel = "^0.2.0" ... [tool.poetry.plugins."logreel.sources"] my_source_plugin = "module_path:MySourcePlugin" [tool.poetry.plugins."logreel.destinations"] my_destination_plugin = "module_path:MyDestinationPlugin"
- Register the plugins using corresponding entrypoints and explicitly include the plugins packages
-
Create a docker compose file to run the service, using environment variables to specify the plugin names and parameters.
services: logreel_mysource_to_mydestination: build: context: . restart: always environment: - SOURCE_PLUGIN=my_source_plugin - DESTINATION_PLUGIN=my_destination_plugin - OTHER_PLUGIN_PARAMS_FOO=${FOO}
Versioning
Releases will follow semantic versioning (major.minor.patch). Before 1.0.0 breaking changes can be included in a minor release, therefore we highly recommend pinning this package.
Contributing
Suggest a feature or report a bug. Read our developer guide.
License
LogReel is distributed under the Apache 2.0 license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file logreel-0.2.2-py3-none-any.whl.
File metadata
- Download URL: logreel-0.2.2-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
187045f2a5e37b77beacc973a09face9e7baa37475d295bea1588905cb4937cb
|
|
| MD5 |
b573fdb0008821d15d31e68898529f7a
|
|
| BLAKE2b-256 |
9bd9a56274a5927a69f7671d5ac953cb6d51e967927d4dcf7ae2c1f95be0e0e3
|