1

我们在 Kubernetes 中部署了一个应用程序,所有应用程序都配置为记录到标准输出。我们使用 fluentd DaemonSet 从/var/lib/docker/containers/文件夹中收集日志并将它们发送到 ElasticSearch 集群。/var/lib/docker/containers/和两者中的 k8s 聚合日志文件kubectl logs <podname>都有订单应用程序中的日志行正确生成它们。ElasticSearch集群连接了一个Kibana实例,显示的日志是按 排序的@timestamp,这里的日志顺序是错误的(和flie中的顺序不一样)。由于应用程序的性质,在同一个日志中产生了多个日志@timestamp,只有那些没有正确排序。从 fluentd 发货时有没有办法发送行号或偏移量(递增数字)并使用以下组合@timestamp以及正确排序的值?kubectl logs <podname>还是有另一种方法可以获得与索引后显示的顺序相同的顺序?

4

1 回答 1

0

Docker 容器设置为使用 UTC 时间戳,因此如果您使用 fluentd 日志驱动程序将 docker 日志发送到 fluentd 容器,那么日志将被标记为 fluentd 容器的 UTC 时间戳。但是,如果您使用 journald 日志驱动程序向 fluentd 容器发送日志消息,那么它将保留本地时间戳。您可以在 docker-compose 文件中将容器的时间戳调整为本地时间,如下所示:

environment:
  - TZ=America/Los_Angeles debian:jessie date
于 2020-01-22T22:03:27.227 回答