docker daemon 的日志是输出到标准输出和标准出错的.
为管理方便, 决定用 systemd 做 dockerd 的启停, 这样日志就被 systemd 的 journal 模块收集去了.
通过 journalctl -u docker -f -n 0
可以实时 follow, 类似 tail -f
.
对接 logstash 的 pipe 也没问题.
但不完美.
一旦 logstash 挂掉, 或者重启, 下次再重新 follow 日志的时候, 就接不上了, 会丢一部分.
看了几天的 systemd 没有找到好的方法.
现在正在考虑直接把 syslog 日志全部收集出来, 看有没有办法后面再做区分.
Nous avons ajouté une couche de fluentd et vidé les journaux journald/syslog/container vers s3 et ELK.
Fluentd dispose d'un tampon configurable qui s'arrête en cas d'erreur de logstash et reprend l'écriture après la reconnexion.