gpt4 book ai didi

logging - 分布式环境中日志事件的相关性

转载 作者:行者123 更新时间:2023-12-03 02:06:14 26 4
gpt4 key购买 nike

我们使用ELK(ElasticSearch + Logstash + Kibana)堆栈进行日志管理,但是问题是,kibana分别显示每个组件的统计信息。
我想让多个组件中的事件相互关联,例如,tomcat服务器中的异常,为客户带来了HTTP 404。

请提出如何实现的建议,如果无法通过ELK提出建议,请提出其他一些开源解决方案。

最佳答案

您需要在特定事件之间添加连接。没有什么是开箱即用的。您必须自己添加它,这取决于您使用哪种系统。

PHP

您可以使用mod_unique_id创建由Apache服务器创建的唯一请求ID。该ID可以在您的PHP环境中用于日志记录($_SERVER['UNIQUE_ID'])。另请参阅[1]

Java

如果您使用Java,则我希望使用稍微不同的方法。在您的应用程序中生成用于标识特定请求的请求ID。您可以将请求ID添加到MDC(消息诊断上下文)中。 MDC可以由各种GELF连接器连同向logstash发送的日志消息一起提交。还在HTTP响应中将请求ID用作Apache的 header 。您可以将响应 header 记录在Apache访问日志中。有关Java部分,请参见[2]。

通常,如果您的环境不仅仅包含Apache和Application服务器,则值得在系统中的所有调用之间传递RequestId(也许是SessionId)。这样,您可以关联请求/ session 中的所有 Activity 。

链接

  • [1] How can I access Unique ID in apache?
  • [2] http://www.paluch.biz/blog/91-tracking-requests-in-a-distributed-environment.html
  • 关于logging - 分布式环境中日志事件的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26113938/

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