如何将应用程序的日志从一个容器转移到kubernetes中的另一个容器中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将应用程序的日志从一个容器转移到kubernetes中的另一个容器中相关的知识,希望对你有一定的参考价值。

我们计划使用Prometheus实施Kubernetes应用程序监视。我们的应用程序在apache中运行,并已部署到kubernetes集群。我们正在开发自定义Apache导出程序,该程序将在与我的应用程序容器相同的POD中运行,并从apache收集指标并将其推送到Prometheus。作为此监视的一部分,我们需要在apache中解析access.log以获得2xx,3xx,4xx和5xx请求的数量。但是我们在Kubernetes中部署的应用程序不会在POD内存储任何日志,但会记录到STDOUT。因此,我可以从kubectl logs命令访问日志。现在,我正在构建的Apache导出器托管在与应用程序容器相同的POD中。现在我的问题是我如何获取应用程序日志(access.log)以显示/访问我的apache导出器容器,以便我可以使用2xx,3xx,4xx和5xx之类的度量标准来解析逻辑和错误。

答案

[使用像loki这样的日志聚合工具,它与kubernetes和grafana很好地集成在一起,然后您可以在grafana仪表板中进行所有解析,然后在其中创建警报

另一答案

Kubernetes将容器的STDOUT分别以/var/logs/containers/var/logs/pods格式存储在每个节点的POD_NAMESPACE_CONTAINER_CONTAINERID.logNAMESPACE_POD_CONTAINERID/CONTAINER/*.log处。一旦将Pod移出节点,这些文件将被删除。

以上是关于如何将应用程序的日志从一个容器转移到kubernetes中的另一个容器中的主要内容,如果未能解决你的问题,请参考以下文章

如何将日志从 docker 容器转发到主机 journald/syslog 服务?

Docker最全教程——从理论到实战(十四)

由于文件持久性而从应用服务转移到 Docker 容器?

如何将特定日志文件从多容器 Docker Elastic Beanstalk 流式传输到 CloudWatch?

kubernate 分布式练习-redis-master创建

我可以将 CloudKit 数据转移到新的 Container 中吗?