我已经在这个问题上工作了几天了,一直没有找到答案。
设置是,我有几个主机正在运行一组码头容器,我需要拥有所有容器日志的本地副本以及集中的graylog2服务器上的副本。
graylog2服务器已经启动并运行,在端口9000上有GELF的输入,514上有syslog的输入。
有人对从这里到哪里有什么建议吗?我在想,如果我能以某种方式至少将container_name包括进来(也许带有一个标签),那么第3选项就更好了。我认为另一个很好的解决方案是,如果我能够让#4实际填充字段,这意味着不需要这样做:
source: $IP
message: $IP {"version","1.1","host":"$HOSTNAME","message":"$MESSAGE","container_name":"$CONTAINER_NAME","container_id":"$CONTAINER_ID",etc etc}它应该显示如下:
source: $HOSTNAME
container_name: $CONTAINER_NAME
container_id: $CONTAINER_ID
message: $MESSAGE有人知道我如何让graylog2 (或syslog-ng)格式化日志数据,使其看起来像下面的示例吗?请注意,当我使用GELF日志驱动程序将日志数据从docker直接发送到graylog2时,数据确实以这种格式出现,而且非常好,我们只需要在本地保存日志的副本。
谢谢您的输入!-Martin
发布于 2019-05-16 02:14:16
看起来像Docker允许您使用双重日志记录,请参阅https://docs.docker.com/config/containers/logging/configure/#limitations-of-logging-drivers
另一种选择是使用fluentd将日志发送到Graylog (而不是使用Docker的日志驱动程序),请参见https://jsblog.insiderattack.net/bunyan-json-logs-with-fluentd-and-graylog-187a23b49540
https://stackoverflow.com/questions/42586062
复制相似问题