Docker Fluent logging driver compatible piece for submitting Docker logs to Mongo
Madis Mägi
b7b36548f4
All checks were successful
gitea-kspace/mongo-logger/pipeline/head This commit looks good
|
||
---|---|---|
.flake8 | ||
.gitignore | ||
.pre-commit-config.yaml | ||
docker-compose.yml | ||
Dockerfile | ||
Jenkinsfile | ||
logger.py | ||
overnode.yml | ||
README.md | ||
tailer.py |
Mongo logger
This is Mongo backed logging system that makes use of the fluentd
driver found in Docker.
Running in production
To collect container logs on a Docker host
populate .env
with MONGO_URI
and
deploy docker-compose.yml
on all Docker hosts.
In Docker host adjust /etc/docker/daemon.json
{
"log-driver": "fluentd",
"log-opts": {
"fluentd-address": "127.0.0.1:24224",
"fluentd-sub-second-precision": true
}
}
Proceed to reload Docker daemon.
Enable syslog forwarding:
echo '*.* @127.0.0.1:5140' | tee /etc/rsyslog.d/fwd.conf
systemctl restart rsyslog
Dumping logs
To dump logs on console:
pip3 install motor termcolor
source .env
export MONGO_URI
python3 tailer.py
Why not Loki?
Loki is ridiculously complex to set up for HA setup.
Why not Fluentd?
After spending great deal of time working around bugs and design flaws in Fluentd we gave up. For reasoning see here