我们计划使用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.log
和NAMESPACE_POD_CONTAINERID/CONTAINER/*.log
处。一旦将Pod移出节点,这些文件将被删除。