A Dockerized microservices setup for generating, processing, and querying security events using NATS messaging and InfluxDB.
-
Daemon Service
- Generates random security events with:
criticality(1-10)timestamp(ISO 8601 format)eventMessage
- Publishes to NATS subject
events
- Generates random security events with:
-
Writer Service
- Subscribes to
eventssubject - Writes events to InfluxDB
- Subscribes to
-
Reader Service
- Handles queries via NATS
- Retrieves events from InfluxDB
-
Client Service
- Queries last 10 critical events (configurable threshold)
- Docker 20.10+
- Docker Compose 2.0+
- Start the system
docker compose up -d --build
Ensure all services are running docker compose ps -a
Testing daemon events: docker compose logs -f daemon
Query events from commandline
docker run --rm --network=root_default natsio/nats-box
nats pub -s nats://nats-server:4222 query '{"limit":5, "min_criticality":7}'
Clean Up Services docker compose down -v
Currently pending Services - Incomplete
- Client
- Reader