使用弹性堆栈在{Karlnetes / Docker中进行可靠的集中式日志记录

时间:2016-02-23 17:37:29

标签: logging elasticsearch docker kubernetes syslog

我们正在CoreOS 上建立一个 Kubernetes集群,以运行50多个不同的应用程序(主要是Java应用程序),每个应用程序都可能以自己的格式生成日志。

我们希望使用 Elastic Stack (以前的ELK堆栈)从所有容器中集中日志,并满足一些特定要求:< / p>

    面对网络,容器或节点故障时,
  1. 可靠性
  2. 每个日志语句的
  3. 完全一次处理。即使发生了故障,解决方案也必须记住它停止的位置,并且应该继续从该点开始调度日志,一旦恢复正常。
  4. 在pod /复制控制器的配置中配置日志grokking模式。我们希望避免在集中的公共元素(例如Logstash)中配置特定于应用程序的模式。
  5. 我们提出的解决方案是使用:

    1. Logspout使用Docker日志 - 将它们转发到本地...
    2. rsyslog守护程序(例如syslog://localhost:514),会将它们转发给...
    3. Logstash实例在集群中运行并通过Kubernetes服务公开。
    4. Logstash会根据容器ID过滤和转换日志文件,并将结果发送给Elasticsearch。
    5. 这个解决方案是否可靠?这个解决方案似乎涵盖了我们的所有要求,除了#3(应用程序旁边的grokking模式)。

      你有什么建议吗?我们愿意使用Filebeat,流利或其他组件。

0 个答案:

没有答案