通过google fluentd使Docker容器中的JSON日志字段在GCP日志中可用

通过google fluentd使Docker容器中的JSON日志字段在GCP日志中可用,docker,go,google-cloud-platform,fluentd,logrus,Docker,Go,Google Cloud Platform,Fluentd,Logrus,首先让我解释一下设置/系统: 我有一台虚拟的Ubuntu 18.04机器,通过GCP计算引擎运行。我已遵循GCP文档,并已通过apt get 在这台机器上,我有一个运行在Docker容器中的golang webservice,它用来输出如下所示的日志: {"message":"some interesting thing occured","severity":"INFO","timestamp"

首先让我解释一下设置/系统:

我有一台虚拟的Ubuntu 18.04机器,通过GCP计算引擎运行。我已遵循GCP文档,并已通过
apt get

在这台机器上,我有一个运行在Docker容器中的golang webservice,它用来输出如下所示的日志:

{"message":"some interesting thing occured","severity":"INFO","timestamp":{"seconds":1599668988,"nanos":567943787}}
{
  "insertId": "xxxxxxxxxxxxxxxx",
  "jsonPayload": {
    "stream": "stderr",
    "log": "{\"message\":\"some interesting thing occured\",\"severity\":\"INFO\",\"timestamp\":{\"seconds\":1599668988,\"nanos\":567943787}}\n"
  },
  "resource": {
    "type": "gce_instance",
    "labels": {
      "instance_id": "22222222222222222",
      "project_id": "xxxxxxx-333333",
      "zone": "us-east1-b"
    }
  },
  "timestamp": "2020-09-09T16:29:48.568042072Z",
  "labels": {
    "compute.googleapis.com/resource_name": "xxxxxxxx"
  },
  "logName": "some/folder/logs/docker.var.lib.docker.containers.7ec67d861ea6d2dbf20db456dad4e7efc43b91a498580dda325f76170b502509.7ec67d861ea6d2dbf20db456dad4e7efc43b91a498580dda325f76170b502509-json.log",
  "receiveTimestamp": "2020-09-09T16:33:29.159377657Z"
}
为了将这些日志从机器/容器获取到GCP日志,我创建了一个新的fluentd配置文件
/etc/google fluentd/config.d/docker.conf
,如下所示:

为了让GCP日志查看器能够理解日志,我还需要采取哪些其他步骤?我认为fluentd的过滤器/解析器配置足以实现这一点,特别是关于

  format json
  key_name log
您好,我发现了一个与您的问题类似的问题,您可以查看一下,并随时对该功能请求发表评论,以引起更多关注。然而,我也发现了一些文档,这些可能会帮助你获得更好的想法。嗨,我发现了一个类似于你的问题,你可以看看,并随时评论功能请求,以引起更多的注意。然而,我也发现了一些文档,这些可能会帮助你获得更好的想法。
  format json
  key_name log