使用Filebeat和Logstash记录的Docker应用
我有一组分散在多个服务器上的dockerized应用程序,并尝试使用ELK设置生产级别的集中式日志记录。我对ELK部件本身还可以,但是我对如何将日志转发到我的日志感到有些困惑。我正在尝试使用Filebeat,因为它具有负载平衡功能。我还想避免将Filebeat(或其他任何东西)打包到我的所有docker中,并使其分开,是否被dockerized。
我该如何进行?
我一直在尝试以下方法。我的Docker在stdout上登录,因此将非dockerized Filebeat配置为从stdin读取,我这样做:
泊坞窗日志-f mycontainer | ./filebeat -e -c filebeat.yml
这似乎在一开始就起作用。第一个日志转发到我的logstash。我猜是缓存的。但是在某些时候,它会卡住并继续发送相同的事件
这仅仅是一个错误还是我走错了方向?您设置了什么解决方案?
回答:
Docker允许您指定使用中的logDriver。此答案与Filebeat或负载平衡无关。
在演示中,我使用syslog将日志转发到侦听端口5000的Logstash(ELK)实例。以下命令不断通过syslog将消息发送到Logstash:
docker run -t -d --log-driver=syslog --log-opt syslog-address=tcp://127.0.0.1:5000 ubuntu /bin/bash -c 'while true; do echo "Hello $(date)"; sleep 1; done'
以上是 使用Filebeat和Logstash记录的Docker应用 的全部内容, 来源链接: utcz.com/qa/403199.html