Log server for RabbitMQ consumer.
Project description
python3-cyberfusion-rabbitmq-consumer-log-server
Log server for RabbitMQ consumer.
Use the RabbitMQ consumer? The log server gives you an overview of RPC requests/responses - from all your RabbitMQ consumers - in one place.
Install
PyPI
Run the following command to install the package from PyPI:
pip3 install python3-cyberfusion-rabbitmq-consumer-log-server
Debian
Run the following commands to build a Debian package:
mk-build-deps -i -t 'apt -o Debug::pkgProblemResolver=yes --no-install-recommends -y'
dpkg-buildpackage -us -uc
Configure
The log server consists of two parts: a web-based GUI, and an API.
API
The RabbitMQ consumer writes RPC requests/responses to the API. To let the consumer ship logs to the log server, see the consumer's README.
In the consumer, an API token must be set. Set it in /etc/rabbitmq-consumer-log-server/api_token (regular text file).
You can generate a random API token using openssl: openssl rand -hex 32
You don't need to keep the API token confidential: it's only used by the RabbitMQ consumer to write logs. Therefore, abuse would be a nuisance at the worst, not a data breach.
GUI
Use the web-based GUI to view RPC requests/responses.
The web GUI uses basic authentication. Set a password in /etc/rabbitmq-consumer-log-server/gui_password (regular text file).
You can generate a random password using openssl: openssl rand -hex 32
You can use any basic authentication username - it's ignored.
Retention
By default, logs are kept for 45 days. To override this, set the environment variable KEEP_DAYS to the number of days.
Periodic tasks
Using the Debian package? You don't have to do anything - periodic tasks are automatically executed using cron.
Otherwise, run the following commands periodically:
rabbitmq-consumer-log-server-purge-logs(every 24 hours)
Usage
Run
Manually
- Run migrations:
alembic upgrade head - Run the app using an ASGI server such as Uvicorn.
systemd
The server runs on :::4194.
systemctl start rabbitmq-consumer-log-server.service
Web GUI
Once the server is started, access the web GUI on /rpc-requests.
SSL
Use a proxy that terminates SSL. E.g. HAProxy.
When using a reverse proxy, 127.0.0.1 is trusted by default. To override this, set the FORWARDED_ALLOW_IPS environment variable.
For more information, see the Uvicorn documentation (look for --proxy-headers and --forwarded-allow-ips).
⚠️ Development
Developing the RabbitMQ consumer? Access the API documentation on /redoc (Redoc) and /docs (Swagger).
Developing the log server? After installing it, and running migrations, seed your database with example data:
python3 seed_example_data.py
You can run the seeder multiple times to fill up your database with more data.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 python3_cyberfusion_rabbitmq_consumer_log_server-1.1.2.tar.gz.
File metadata
- Download URL: python3_cyberfusion_rabbitmq_consumer_log_server-1.1.2.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29bcd433949a8a253a2bc98aacd5d8700b60e06d5054bd8d76647c2446ba7bae
|
|
| MD5 |
7f53d3baa879af10f4a06c912bf6d38c
|
|
| BLAKE2b-256 |
c4fc76d20c6f2ef1f991a647f17347a4960495bc330377043492244a554219fa
|
File details
Details for the file python3_cyberfusion_rabbitmq_consumer_log_server-1.1.2-py3-none-any.whl.
File metadata
- Download URL: python3_cyberfusion_rabbitmq_consumer_log_server-1.1.2-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48e63aee43a617626845d389b62b96369da4d50b69d8327130f58991ef606f2e
|
|
| MD5 |
112d774fc0e2a6330c1be599bbdd239e
|
|
| BLAKE2b-256 |
df4f31eb01f4a222efb9c3680a929ead0ea411776c86ebfe981a93a2f192cfed
|