Skip to content

Commit 248bc43

Browse files
committed
WIP: first release
1 parent 50ad3e8 commit 248bc43

18 files changed

Lines changed: 475 additions & 427 deletions

README.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,49 @@ Helpers to collect, enrich and store Suricata events and network flows.
1515
</p>
1616
</div>
1717

18-
### Short description
19-
20-
Mongoose — lightweight Python toolkit to collect, enrich, store and forward
21-
network telemetry (Suricata EVE, flows from nfstream, and other sources).
18+
Mongoose — a lightweight dead-simple Python libray and daemon to collect, enrich, store and forward
19+
network events such as Suricata alerts and Deep Packet Inspection flows.
2220

2321
### Purpose
2422

2523
Mongoose provides a modular pipeline to ingest network events and flows,
2624
enrich them with metadata (for example GeoIP and Community ID), persist
27-
short-term state in a small SQLite store, and forward processed records to
25+
short-term state in a SQLite database, and forward processed records to
2826
files, webhooks or other sinks. It is designed to be simple to configure,
29-
extend and integrate into both production and testing workflows.
27+
extend and integrate into other applications.
3028

3129
### Overview
30+
**Mongoose** is a versatile Python-based framework designed for the collection,
31+
enrichment, and distribution of network security events and traffic flows. It acts
32+
as a central hub for processing data from various network monitoring tools, providing a
33+
modular and scalable pipeline for security analysts and researchers.
3234

33-
**Mongoose** is a versatile Python-based framework designed for the collection, enrichment, and distribution of network security events and traffic flows. It acts as a central hub for processing data from various network monitoring tools, providing a modular and scalable pipeline for security analysts and researchers.
34-
35-
At its core, Mongoose utilizes a thread-safe **pub-sub engine** that allows for concurrent processing of different data streams. Data is collected from sources like Suricata EVE logs and NFStream, published to specific topics, and then consumed by various modules for enrichment (e.g., GeoIP, Community ID), persistent storage (SQLite), or forwarding to external endpoints via webhooks or local files.
35+
At its core, Mongoose utilizes a thread-safe **pub-sub engine** that allows for
36+
concurrent processing of different data streams. Data is collected from sources
37+
like Suricata EVE logs and NFStream, published to specific topics, and then
38+
consumed by various modules for enrichment (e.g., GeoIP, Community ID), persistent
39+
storage (SQLite), or forwarding to external endpoints via webhooks or local files.
3640

37-
The project is built with extensibility in mind, making it easy to integrate new data sources and processing logic to adapt to different network monitoring needs.
41+
The project is built with extensibility in mind, making it easy to integrate new
42+
data sources and processing logic to adapt to different network monitoring needs.
3843

3944
### Key features
4045

4146
- Modular collectors: Suricata EVE, nfstream, file-based replay.
4247
- Enrichment: GeoIP lookup, Community ID calculation and custom enrichers.
4348
- Pluggable forwarders: file, webhook, Discord (extensible to new sinks).
44-
- Lightweight SQLite-backed store for short-term persistence and replay.
49+
- Lightweight SQLite storage for short-term persistence.
4550
- Thread-safe pub-sub engine and safe caches for concurrent ingestion.
46-
- Small test harness and example configuration to validate pipelines.
47-
48-
### Installation (quick)
4951

52+
### Installation
5053
Install in a virtual environment and editable mode for development:
5154

5255
```bash
5356
python -m venv .venv && source .venv/bin/activate
5457
pip install -e .
5558
```
5659

57-
### CLI usage (zsh)
58-
60+
### CLI usage
5961
```bash
6062
# show top-level help
6163
mongoose --help
@@ -64,12 +66,10 @@ mongoose --help
6466
mongoose --config docs/example_config_test.yaml
6567
```
6668

67-
### Python library usage (minimal)
68-
69-
Use Mongoose as a library when you want tighter integration inside an
70-
application or tests. The snippet below shows a common pattern: create an
71-
engine from a config and run a single pass. Replace the config path with
72-
your file or a parsed dict depending on your integration.
69+
### Python library usage
70+
Use Mongoose as a library when you can use in your application. The snippet
71+
below shows how to instanciate the engine with a config and run it.
72+
Replace the config path with your own file.
7373

7474
```python
7575
import time

debian/rules

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/make -f
2+
3+
export PYBUILD_NAME=mongoose
4+
5+
%:
6+
dh $@ --with quilt,python3.11 --buildsystem=pybuild
7+
8+
override_dh_builddeb:
9+
dh_builddeb -- -Zxz
10+
11+
override_dh_clean:
12+
dh_clean
13+
rm -rf mongoose.egg-info/

docs/_static/diagram.png

80.9 KB
Loading

0 commit comments

Comments
 (0)