为什么 fluentd-cloudwatch Kube deamonSet 无法将日志从指定目录发送到 cloudwatch?

Why fluentd-cloudwatch Kube deamonSet cannot send logs from specified dir to cloudwatch?

我使用如下配置文件在 EKS 中应用了一个 fluentd-cloudwatch DeamonSet:fluentd.yml

情况一line 302 - line 313fluentd.yml 中评论,一切正常。我可以在 CLOUDWATCH PANEL.

中看到新创建的 log grouplog streams

情况二line 302 - line 313fluentd.yml 中未注释,fluentd 不能将任何日志数据发送到 CLOUDWATCH日志组日志流不会自动创建。

我检查 /logs/fun-practice-log/server.log.0 文件存在于 fluentd-cloudwatch pod 中。 server.log.0中的内容如下:

unknown - 2019-11-21 00:42:44,588 - WARNING - 404 GET /latest/dynamic/instance-identity/document (10.10.130.37) 0.38ms
unknown - 2019-11-21 00:42:44,818 - WARNING - 405 CONNECT 34.116.211.122:80 (10.10.130.217) 0.51ms
unknown - 2019-11-21 00:42:45,752 - WARNING - 405 CONNECT 34.116.211.122:80 (10.10.130.217) 0.64ms
f6c5a62f536a4444bbb12c0e45973141 - 2019-11-21 02:17:19,605 - INFO - 200 POST /fun_practice/v1.1/get_stat?user_token=seYBtp39Uko0lfsYoDBrQlZV8SWuF (10.0.15.188) 895.95ms

我想使用 source 将文件夹 /logs/fun-practice-log/ 中的日志流式传输到 CLOUDWATCH,如下所示,我不知道我在配置文件中遗漏了什么。

    <source>
      @type tail
      @id in_tail_svc
      @label @hostlogs
      path /logs/fun-practice-log/server.log.0
      pos_file /logs/fun-practice-log/server.log.pos
      tag host.svc
      read_from_head true
      refresh_interval 5
      <parse>
        @type regexp
        expression /(?<request_id>[^ ]*) - (?<timestamp>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3}) - (?<log_type>[^ ]*) - (?<message>.*)/
        time_key timestamp
        time_format %Y-%m-%d %H:%M:%S,%z
      </parse>
    </source>

我终于弄清楚我在fluentd.yml中做错了什么。 我不应该将 mountPath: /logs/account-svc-logmountPath: /logs/fun-practice-log 设置为 readOnly: true。 只需删除参数,一切正常。