diff --git a/ansible/roles/common/templates/conf/output/00-local.conf.j2 b/ansible/roles/common/templates/conf/output/00-local.conf.j2 index 62c7965bfa..2c82f539fc 100644 --- a/ansible/roles/common/templates/conf/output/00-local.conf.j2 +++ b/ansible/roles/common/templates/conf/output/00-local.conf.j2 @@ -37,6 +37,7 @@ logstash_format true logstash_prefix {{ opensearch_log_index_prefix }} reconnect_on_error true + retry_tag retry_es request_timeout {{ fluentd_elasticsearch_request_timeout }} suppress_type_name true bulk_message_request_threshold {{ fluentd_bulk_message_request_threshold }} @@ -70,6 +71,7 @@ logstash_format true logstash_prefix {{ opensearch_log_index_prefix }} reconnect_on_error true + retry_tag retry_os request_timeout {{ fluentd_opensearch_request_timeout }} suppress_type_name true bulk_message_request_threshold {{ fluentd_bulk_message_request_threshold }} diff --git a/ansible/roles/common/templates/conf/output/01-es.conf.j2 b/ansible/roles/common/templates/conf/output/01-es.conf.j2 index 91d011391b..6c4831ef75 100644 --- a/ansible/roles/common/templates/conf/output/01-es.conf.j2 +++ b/ansible/roles/common/templates/conf/output/01-es.conf.j2 @@ -1,4 +1,5 @@ - +{% for match_pattern in ['retry_es', '**',] %} + @type copy @type elasticsearch @@ -22,14 +23,22 @@ logstash_format true logstash_prefix {{ opensearch_log_index_prefix }} reconnect_on_error true +{% if match_pattern != 'retry_es' %} + retry_tag retry_es +{% endif %} request_timeout {{ fluentd_elasticsearch_request_timeout }} suppress_type_name true bulk_message_request_threshold {{ fluentd_bulk_message_request_threshold }} @type file +{% if match_pattern == 'retry_es' %} + path /var/lib/fluentd/data/elasticsearch.buffer/openstack_retry.* +{% else %} path /var/lib/fluentd/data/elasticsearch.buffer/openstack.* +{% endif %} flush_interval 15s chunk_limit_size {{ fluentd_buffer_chunk_limit_size }} +{% endfor %} diff --git a/ansible/roles/common/templates/conf/output/03-opensearch.conf.j2 b/ansible/roles/common/templates/conf/output/03-opensearch.conf.j2 index 6f4beb2d64..dd60f1e1cc 100644 --- a/ansible/roles/common/templates/conf/output/03-opensearch.conf.j2 +++ b/ansible/roles/common/templates/conf/output/03-opensearch.conf.j2 @@ -1,4 +1,5 @@ - +{% for match_pattern in ['retry_os', '**',] %} + @type copy @type opensearch @@ -22,14 +23,22 @@ logstash_format true logstash_prefix {{ opensearch_log_index_prefix }} reconnect_on_error true +{% if match_pattern != 'retry_os' %} + retry_tag retry_os +{% endif %} request_timeout {{ fluentd_opensearch_request_timeout }} suppress_type_name true bulk_message_request_threshold {{ fluentd_bulk_message_request_threshold }} @type file +{% if match_pattern == 'retry_os' %} + path /var/lib/fluentd/data/opensearch.buffer/openstack_retry.* +{% else %} path /var/lib/fluentd/data/opensearch.buffer/openstack.* +{% endif %} flush_interval 15s chunk_limit_size {{ fluentd_buffer_chunk_limit_size }} +{% endfor %} diff --git a/releasenotes/notes/bugfix-fluentd-retry-tag-383dd788a42fddd6.yaml b/releasenotes/notes/bugfix-fluentd-retry-tag-383dd788a42fddd6.yaml new file mode 100644 index 0000000000..0a5370e4ba --- /dev/null +++ b/releasenotes/notes/bugfix-fluentd-retry-tag-383dd788a42fddd6.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Set retry_tag in ElasticSearch/OpenSearch Fluentd output plugins. This + is to prevent log messages from being re-processed by non-idempotent + Fluentd pipeline configuration. See + `LP#2064104 `__