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

时间:2019-11-21 03:15:04

标签: amazon-cloudwatch fluentd aws-eks

我使用以下配置文件在EKS中应用了流利的Cloudwatch DeamonSet:fluentd.yml

情况一:在line 302中用line 313-fluentd.yml进行注释,一切正常。我可以在 CLOUDWATCH PANEL 中看到新创建的日志组日志流

情况二:在line 302中未注释line 313-fluentd.yml的情况下,熟练无法将任何日志数据发送到云表日志组日志流不会自动创建。

我检查文件/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

我想使用/logs/fun-practice-log/将文件夹source中的日志流式传输到 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>

1 个答案:

答案 0 :(得分:0)

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