Skip to main content

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.

RPC requests overview

RPC request detail

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


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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file python3_cyberfusion_rabbitmq_consumer_log_server-1.1.3.tar.gz.

File metadata

File hashes

Hashes for python3_cyberfusion_rabbitmq_consumer_log_server-1.1.3.tar.gz
Algorithm Hash digest
SHA256 e91225f86793d685835e48e600c128afc3812c96616b57aaaf262f5e58837b06
MD5 77c5caa203c3c13fc2dcbef6c3ae8623
BLAKE2b-256 7fb5009bfbcade84d79c7133bf5d8e26f92519063e4dbf4eb7d8a0e696f583f8

See more details on using hashes here.

File details

Details for the file python3_cyberfusion_rabbitmq_consumer_log_server-1.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for python3_cyberfusion_rabbitmq_consumer_log_server-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7564b149f4d703a571a76052b54acb4d7630d859640491105bd58fd36325e4be
MD5 a17ee94c578f59d11ae372ab3c03e0e2
BLAKE2b-256 f2071f33fcf0fa18bda6628dbb738671387107ddafb85a4eea7bbe1f4f234b78

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page