Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Injest在容器优化操作系统中以JSON形式记录_Docker_Logging_Google Cloud Platform_Stackdriver_Google Container Optimized Os - Fatal编程技术网

Docker Injest在容器优化操作系统中以JSON形式记录

Docker Injest在容器优化操作系统中以JSON形式记录,docker,logging,google-cloud-platform,stackdriver,google-container-optimized-os,Docker,Logging,Google Cloud Platform,Stackdriver,Google Container Optimized Os,在stackdriver日志代理的帮助下,我能够将来自容器优化操作系统的日志作为JSON输入到Google日志查看器 它将日志作为消息的值输入,但不作为默认配置的json有效负载 我试过什么? 我已将/etc/stackdriver/logging.config.d/fluentd-lakitu.conf中的fluentd配置更改为以下内容: <source> @type tail format json path /var/lib/docker/containers/*

在stackdriver日志代理的帮助下,我能够将来自容器优化操作系统的日志作为JSON输入到Google日志查看器

它将日志作为消息的值输入,但不作为默认配置的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>

@型尾
格式json
路径/var/lib/docker/containers/*/*.log
@类型json
pos_文件/var/log/google fluentd/containers.log.pos
标签包含
从你的头上读出来是真的
但它无法将日志发送到日志查看器

操作系统:容器优化操作系统cos-81-12871-1196-0

我发现了这个问题,它讨论了您在用例中提到的相同问题。谷歌产品团队已经收到了关于这一限制的通知,他们正在努力解决这一问题。您只需点击标题旁边的星号,就可以获得有关该问题的最新信息,并使该问题更具可视性。

如前所述

这里提到了使用的变通方法

<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>

@类型分析器
格式json
密钥名称消息
保留数据错误
发出\u无效\u记录\u到\u错误false
上面的代码片段将日志解析为JSON,并将其插入到云日志中

在关于Stackdriver的讨论中,我们讨论了如何将其与启动脚本一起使用

下面是启动脚本的代码段

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
cp/etc/stackdriver/logging.config.d/fluentd-lakitu.conf/etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save
#上面的较短版本:cp/etc/stackdriver/logging.config.d/fluentd-lakitu.conf{,-save}
(
head-n-2/etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save;cat