У меня есть служба, развернутая в кластере kubernetes, с установленным fluentd в качестве набора демонов.И мне нужно разнообразить логи, которые он получает, чтобы они в конечном итоге оказались в разных сегментах s3.Одно ведро будет для всех журналов, сгенерированных kubernetes и нашим кодом отладки / обработки ошибок, а другое хранилище будет подмножеством журналов, генерируемых службой, которые анализируются структурированным регистратором и идентифицируются определенным полем в json.Подумайте об этом: один сегмент предназначен для состояния компьютера и ошибок, другой - для описания user_id созданного ресурса image_id at ts. Описание действий пользователя
Сам сервис не знает о fluentd, поэтому я не могу вручную установить тег длялоги, основанные на том, на каком контейнере s3 я хочу, чтобы они заканчивались. Теперь, при использовании fluentd.conf, я настраиваю s3 так:
<match **>
# docs: https://docs.fluentd.org/v0.12/articles/out_s3
# note: this configuration relies on the nodes have an IAM instance profile with access to your S3 bucket
type copy
<store>
type s3
log_level info
s3_bucket "#{ENV['S3_BUCKET_NAME']}"
s3_region "#{ENV['S3_BUCKET_REGION']}"
aws_key_id "#{ENV['AWS_ACCESS_KEY_ID']}"
aws_sec_key "#{ENV['AWS_SECRET_ACCESS_KEY']}"
s3_object_key_format %{path}%{time_slice}/cluster-log-%{index}.%{file_extension}
format json
time_slice_format %Y/%m/%d
time_slice_wait 1m
flush_interval 10m
utc
include_time_key true
include_tag_key true
buffer_chunk_limit 128m
buffer_path /var/log/fluentd-buffers/s3.buffer
</store>
<store>
...
</store>
</match>
Итак, я хотел бы иметь что-то вродеgrep plugin
<store>
type grep
<regexp>
key type
pattern client-action
</regexp>
</store>
, который бы отправлял журналы в отдельную корзину s3 на тот, который определен для всех журналов