我有一个Go应用程序在一个容器中运行,它做了很多日志记录:
log.Println("Something happened!")
由于我可以ssh到它运行的服务器,我可以执行docker logs -f [id]
来查看stderr
的输出,这一切都很好。
但是现在我想把日志放到Elasticsearch中。
最好的方法是什么?我已经见过这么多复杂的方法了。
一种方法是使用GELF日志格式和Logstash,但是我能找到的唯一的Go GELF格式化程序是超级老的。
或者记录到一个文件并使用Filebeat。但我不想跳过文件这一步吗?
我会尝试用docker设置fluentd:
https://www.fluentd.org/guides/recipes/docker-logging
https://docs.docker.com/config/containers/logging/fluentd/
然后让fluentd推送到elasticsearch:
https://docs.fluentd.org/output/elasticsearch