为什么 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 313
在 fluentd.yml
中评论,一切正常。我可以在 CLOUDWATCH PANEL.
中看到新创建的 log group 和 log streams
情况二:line 302
- line 313
在 fluentd.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-log
和 mountPath: /logs/fun-practice-log
设置为 readOnly: true
。
只需删除参数,一切正常。
我使用如下配置文件在 EKS 中应用了一个 fluentd-cloudwatch DeamonSet:fluentd.yml
情况一:line 302
- line 313
在 fluentd.yml
中评论,一切正常。我可以在 CLOUDWATCH PANEL.
情况二:line 302
- line 313
在 fluentd.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-log
和 mountPath: /logs/fun-practice-log
设置为 readOnly: true
。
只需删除参数,一切正常。