Status: Highly Experimental
rlog collects logs locally and ship them to a remote logging destination. Collected logs are then written to a Quickwit instance.
- collect logs locally using syslog UDP protocol or GELF (graylog) protocol
- send logs to a remote log collector (mTLS gRPC)
- write logs to quickwit
TODO:
- config on collector
- resizeable buffers
- integration tests
Why not using Open Telemetry ecosystem and stop trying to do hacky stuff instead?
This software aims to be really easy to deploy on existing stacks (syslog&gelf). It is also an experiment used to validate some concepts. (especially quickwit)
This software relies on production ready Rust libraries (Tonic/Hyper/Rustls) and offers a minimal attack surface (gRPC endpoint is secured using mTLS).
rlog-shipper collects logs locally and sends them to a remote log collector.
Logs are collected locally using:
- GELF protocol
- syslog UDP protocol
And sent to the log collector using gRPC secured with mTLS. The protocol is described in rlog-service.proto
- implements the gRPC server described in rlog-service.proto
- all logs are sent to quickwit
- metrics of all shippers are collected and exposed though a prometheus
/metrics
HTTP endpoint
# generate a self signed certificate in ./ca directory needed to sign server&client certificates
rlog-helper cert generate-ca "My certificate authority"
# generate a server certificate signed by the ca, output is written in ./ca directory
rlog-helper cert generate-server localhost
# generate a client certificate signed by the ca, output is written in ./ca directory
rlog-helper cert generate-server client
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.