gpt4 book ai didi

java - 将 Docker 的 splunk 日志驱动程序拆分为多个索引

转载 作者:行者123 更新时间:2023-12-02 20:04:24 25 4
gpt4 key购买 nike

我有一个在 docker 内运行的小型 Java 应用程序。申请是 Dropwizard应用程序,这意味着它具有使用 log4j 记录的 Java 类,以及具有请求记录功能的 Web 端点 (JaxRS)。

现在,我想将我的容器日志转发到 Splunk。问题是我真的希望它们分成两个索引;一个用于应用程序日志,一个用于请求日志。我们可以调用索引 cool_appcool_req .

有没有办法做到这一点?启动我的 dropwizard 应用程序会导致它将应用程序日志和请求日志都输出到 stdout . (同时也记录到两个文件)

我已经尝试过 docker logdriver,但它似乎只适用于一个索引。

我可能会补充一点,如果可以选择,可以很容易地通过 regEx 分隔日志

最佳答案

让我首先建议(如果可能的话)将此容器拆分为多个容器。在同一个容器中运行多个进程是一种反模式,应该避免。所以这基本上是你有这个问题的一个原因。如果您将使用 Kubernetes,它将允许您在同一个 Pod 中调度多个容器,允许它们共享相同的卷和环回接口(interface),从而为您提供许多用于进程间通信的各种选项。

但我知道这并不总是可以做到的。这样,可能最好的解决方案是将这些日志保存为应用程序日志,这意味着您将拥有此容器的数据卷,它将存储这些日志,而不是将它们转发到标准输出。要将这些日志发送到 Splunk,您可以使用带有 Splunk Universal Forwarder 的 Sidecar 容器或我们的 collector (如果您是我们的客户或想成为)。

如果侧容器不是一个选项,最后的选择是将日志保留在容器中,并将 Splunk UF 添加到镜像并与应用程序进程一起运行。 https://docs.docker.com/config/containers/multi-service_container/

顺便说一句,我们正在开发一些新功能,这将允许以最少的配置更改转发应用程序日志。

关于java - 将 Docker 的 splunk 日志驱动程序拆分为多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51076235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com