【问题标题】:Get logs from Kubectl POD between specific range time and hours从 Kubectl POD 获取特定范围时间和小时之间的日志
【发布时间】:2022-07-16 04:16:44
【问题描述】:

我想获取特定日期和时间范围的日志...

例子

来自2022-04-13 09:43:09

直到2022-04-13 10:51:21

kubectl logs -f -n the-namespace the-pod --since-time ???

有类似until-time的方法吗?

如何查看指定日期时间的日志?

如果有多种选择,请放在这里...

提前致谢。

【问题讨论】:

标签: logging time kubectl kubernetes-pod


【解决方案1】:

我不确定它本身是否可以使用 kubectl。但是,您可以将它与awk 配对使用,如下所示:

kubectl logs <pod-name> -n <namespace> --timestamps |awk '/^<start-time>/,/^<end-time>/'

例子:

kubectl logs  coredns-96cc4f57d-5qn94 -n kube-system --timestamps |awk '/^2022-04-13T18:51:27/,/^2022-04-13T18:57:12/'
2022-04-13T18:51:27.622412935Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:52:02.070172737Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:52:36.517823872Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:53:10.965847767Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:53:45.413690095Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:54:19.861341989Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:54:54.308750908Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:55:28.756958499Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:56:03.204435238Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:56:37.674301446Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server
2022-04-13T18:57:12.100152757Z [WARNING] No files matching import glob pattern: /etc/coredns/custom/*.server

如果使用--prefix=true标志,则需要通过删除^来调整正则表达式。

【讨论】:

  • 不,不要使用开始,结束范围,因为这需要输入中存在特定的时间戳。这也是低效的,因为它会在结束时间过去后继续读取。
【解决方案2】:

如果您使用 awk,正确的做法是使用字符串比较和标志,例如:

whatever | awk '$0>="2022-04-13 09:43:09"{f=1} f; $0>="2022-04-13 10:51:21"{exit}'

无论输入中是否存在特定的时间戳,这都会起作用,并且一旦时间范围过去,它将有效地停止读取输入。

未测试,因为您没有提供我们可以测试的示例输入/输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 2016-07-23
    • 2014-02-09
    相关资源
    最近更新 更多