Injest 在 Container Optimized OS 中记录为 JSON
Injest logs as JSON in Container Optimized OS
借助 Container Optimized OS 中的 stackdriver 日志代理的帮助,我能够将日志注入 Google 日志查看器,如 JSON。
它将日志作为消息的值注入,而不是作为具有默认配置的json有效负载
我试过什么?
我已将 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf 中的 fluentd 配置更改为以下内容:
<source>
@type tail
format json
path /var/lib/docker/containers/*/*.log
<parse>
@type json
</parse>
pos_file /var/log/google-fluentd/containers.log.pos
tag reform_contain
read_from_head true
</source>
但是无法将日志发送到日志查看器
OS: 容器优化 OS cos-81-12871-1196-0
我在 Google's Public Issue Tracker 上发现了这个问题,它讨论了您在用例中提到的相同问题。 Google 产品团队已收到有关此限制的通知,他们正在努力解决。您只需转到那里并单击标题旁边的星标,即可获得有关该问题的更新并提高该问题的知名度。
作为@Kamelia Y mentioned about the https://issuetracker.google.com/issues/137517429
提到了使用的解决方法
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
上面的代码片段将日志解析为 JSON 并注入 Cloud Logging。
在 Stackdriver Google Groups 的讨论中,我们讨论了如何将其与启动脚本一起使用。
这是启动脚本的片段。
cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save
# Shorter version of the above: cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf{,-save}
(
head -n -2 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save; cat <<EOF
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
EOF
) > /etc/stackdriver/logging.config.d/fluentd-lakitu.conf
sudo systemctl start stackdriver-logging
此图像可用于生成随机 JSON 日志。
https://hub.docker.com/repository/docker/patelathreya/json-random-logger
借助 Container Optimized OS 中的 stackdriver 日志代理的帮助,我能够将日志注入 Google 日志查看器,如 JSON。
它将日志作为消息的值注入,而不是作为具有默认配置的json有效负载
我试过什么?
我已将 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf 中的 fluentd 配置更改为以下内容:
<source>
@type tail
format json
path /var/lib/docker/containers/*/*.log
<parse>
@type json
</parse>
pos_file /var/log/google-fluentd/containers.log.pos
tag reform_contain
read_from_head true
</source>
但是无法将日志发送到日志查看器
OS: 容器优化 OS cos-81-12871-1196-0
我在 Google's Public Issue Tracker 上发现了这个问题,它讨论了您在用例中提到的相同问题。 Google 产品团队已收到有关此限制的通知,他们正在努力解决。您只需转到那里并单击标题旁边的星标,即可获得有关该问题的更新并提高该问题的知名度。
作为@Kamelia Y mentioned about the https://issuetracker.google.com/issues/137517429
提到了使用的解决方法
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
上面的代码片段将日志解析为 JSON 并注入 Cloud Logging。
在 Stackdriver Google Groups 的讨论中,我们讨论了如何将其与启动脚本一起使用。
这是启动脚本的片段。
cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save
# Shorter version of the above: cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf{,-save}
(
head -n -2 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save; cat <<EOF
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
EOF
) > /etc/stackdriver/logging.config.d/fluentd-lakitu.conf
sudo systemctl start stackdriver-logging
此图像可用于生成随机 JSON 日志。 https://hub.docker.com/repository/docker/patelathreya/json-random-logger