Project for academic purpose
Cloud-native log collector
Goal: Collecting log from various source (system log, server log, common http message..)
- File
- HTTP log
- Common raw message
- Rust programming language
- Cargo (Rust package manager)
- Start the server:
$ cd path/to/project/root
$ cargo run --bin depot-server
...
--- Server started in ... ---
- Open a new terminal window and run writer client to send a message:
$ cd path/to/project/root
$ cargo run --bin depot-client -- runner --config-file <config-file-path>
...
--- Read new lines of log file: <target-file-path> ---
...
| Name | Description | Type | Note | |----------|----------|----------|----------|----------| | Row 1 | Data 1 | Data 2 | Data 3 | Data 4 | | Row 2 | Data 5 | Data 6 | Data 7 | Data 8 |
| Name | Description | Type | Note | |----------|----------|----------|----------|----------| | Row 1 | Data 1 | Data 2 | Data 3 | Data 4 | | Row 2 | Data 5 | Data 6 | Data 7 | Data 8 |
/depot-server
: Contains the server application/depot-client
: Contains the client command/depot-common
: Contains common features which are being used by server and client
- Capture file updates, http log, or else
- Send captured result to server, in raw format
- Put tag on each types, to make server know how to handle it
- Receive messages from client
- Based on tag, parse & filter messages and re-send to other systems (Kafka, Opensearch, or else)