如何为GKE流利的严重程度设置标准输出格式?

时间:2018-12-11 06:07:14

标签: kubernetes google-kubernetes-engine fluentd

我需要格式化应用程序中的控制台输出(标准输出),以便GKE可以区分不同的严重性级别。当前,所有内容都被解释为“信息”。

我徒劳地寻找了很多解决方案,但是我仍然没有办法解决它。奇怪的是,(似乎)没有文档描述如何执行此操作。

在GCP #kubernetes-engine备用频道上询问后,建议我需要一种日志格式,其中应包括:

  • 严重程度
  • 时间戳
  • 消息

我没有被告知这是纯文本还是JSON,所以我尝试了以下操作:

Severity:WARNING Timestamp:2018-12-11T00:00:00.000Z Message:Hello World!

{"Severity": "WARNING", "Timestamp": "2018-12-11T00:00:00.000Z", "Message": "Hello World!"}

但是这些解析似乎没有什么不同。 JSON实际上根本没有解析,只是在日志查看器中显示为JSON。我已经检查了GKE的默认配置是否流利,它包含以下部分:

<source>
  type tail
  path /var/log/containers/*.log
  pos_file /var/log/gcp-containers.log.pos
  tag reform.*
  read_from_head true
  format multi_format
  <pattern>
    format json
    time_key time
    time_format %Y-%m-%dT%H:%M:%S.%NZ
  </pattern>
  <pattern>
    format /^(?<time>.+) (?<stream>stdout|stderr) [^ ]* (?<log>.*)$/
    time_format %Y-%m-%dT%H:%M:%S.%N%:z
  </pattern>
</source>

<filter reform.**>
  type parser
  format /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<log>.*)/
  reserve_data true
  suppress_parse_error_log true
  key_name log
</filter>

<match reform.**>
  type record_reformer
  enable_ruby true
  tag raw.kubernetes.${tag_suffix[4].split('-')[0..-2].join('-')}
</match>

我不想更改默认的流畅配置,所以我想知道如何格式化数据以匹配将在此处工作的格式。正确的格式是什么?

0 个答案:

没有答案