Журналы аудита хранилищ из kubernetes в журналы CloudWatch через FluentD - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь отправить журналы Hashicorp Vault (работающие в k8s) в CloudWatch с помощью Fluentd. В основе этой настройки лежит руководство AWS https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-logs.html

. В данный момент я пытаюсь изменить конфигурационный файл FluentD container.conf, чтобы он мог анализировать журналы аудита хранилища. В настоящее время они отображаются в виде JSON строки, т. Е.

{
  "log": "{\"time\":\"2020-04-29T14:46:54.428627555Z\",\"type\":\"reques......."}\n",
  .......
}

. Я хотел бы, чтобы эта запись журнала отображалась как JSON объект в журналах CloudWatch.

Я обновил основной источник чтобы игнорировать журналы хранилища:

<source>
  @type tail
  @id in_tail_container_logs
  @label @containers
  path /var/log/containers/*.log
  exclude_path ["/var/log/containers/cloudwatch-agent*", "/var/log/containers/fluentd*", "/var/log/containers/vault-0*"]
  pos_file /var/log/fluentd-containers.log.pos
  tag *
  read_from_head true
  <parse>
    @type json
    time_format %Y-%m-%dT%H:%M:%S.%NZ
  </parse>
</source>

Я также добавил следующее в попытке заставить его проанализировать JSON в журналах хранилища:

<source>
  @type tail
  @id in_tail_vault_logs
  @label @vaultlogs
  path /var/log/containers/vault-0*
  pos_file /var/log/vault.log.pos
  tag *
  read_from_head true
  <parse>
    @type json
    time_format %Y-%m-%dT%H:%M:%S.%NZ
  </parse>
</source>

<label @vaultlogs>
  <filter **>
    @type kubernetes_metadata
    @id filter_kube_metadata_vault
  </filter>

  <filter **>
    @type record_transformer
    @id filter_vault_stream_transformer
    <record>
      stream_name ${tag_parts[3]}
    </record>
  </filter>

  <filter **>
    @type parser
    key_name log
    reserve_data true
    <parse>
      @type json
    </parse>
  </filter>

  <match **>
    @type relabel
    @label @NORMAL
  </match>
</label>

Однако журналы все еще отображаются в CloudWatch в виде строки JSON.

Есть ли способ сделать это

...