Gelf消息是所有Json字符串的子集。如何使用Filebeat(或替代方法)作为轻量级解决方案将docker gelf日志可靠地转发到logstash?
更多信息:
我在运行docker容器的同一网络中有一个机器集群(目前为docker swarm)。我想使用--log-driver = gelf,因为我喜欢gelf格式,并希望docker添加到每个GELF日志条目的字段。
不幸的是, docker 通过UDP发送GELF日志,我担心会丢失日志条目。原因可能是由于软件包丢失,logstash丢失或Logstash的负载过多。我不想在每台主机上运行logstash,因为它是重量级的。
最佳答案
尝试将Rabbitmq或Redis放在GELF前面。
您将需要集中地从接收中分离出过滤条件,添加多个Logstash托运人,或者只是一种从任何类型的较慢解析中缓冲新日志的方法。您可以将原始log.conf分为两个文件,具体取决于它们是读入Redis还是从队列中获取,解析并发送给ES。