diff --git a/Makefile b/Makefile index d097d368d..605312c23 100644 --- a/Makefile +++ b/Makefile @@ -8,46 +8,46 @@ IMAGE_NAME := fluent/fluentd-kubernetes X86_IMAGES := \ - v1.19/debian-azureblob:v1.19.2-debian-azureblob-amd64-1.0,v1.19-debian-azureblob-amd64-1 \ - v1.19/debian-elasticsearch8:v1.19.2-debian-elasticsearch8-amd64-1.0,v1.19-debian-elasticsearch8-amd64-1 \ - v1.19/debian-elasticsearch7:v1.19.2-debian-elasticsearch7-amd64-1.0,v1.19-debian-elasticsearch7-amd64-1,v1-debian-elasticsearch-amd64 \ - v1.19/debian-opensearch:v1.19.2-debian-opensearch-amd64-1.0,v1.19-debian-opensearch-amd64-1 \ - v1.19/debian-loggly:v1.19.2-debian-loggly-amd64-1.0,v1.19-debian-loggly-amd64-1 \ - v1.19/debian-logentries:v1.19.2-debian-logentries-amd64-1.0,v1.19-debian-logentries-amd64-1 \ - v1.19/debian-cloudwatch:v1.19.2-debian-cloudwatch-amd64-1.0,v1.19-debian-cloudwatch-amd64-1 \ - v1.19/debian-s3:v1.19.2-debian-s3-amd64-1.0,v1.19-debian-s3-amd64-1 \ - v1.19/debian-syslog:v1.19.2-debian-syslog-amd64-1.0,v1.19-debian-syslog-amd64-1 \ - v1.19/debian-forward:v1.19.2-debian-forward-amd64-1.0,v1.19-debian-forward-amd64-1 \ - v1.19/debian-gcs:v1.19.2-debian-gcs-amd64-1.0,v1.19-debian-gcs-amd64-1 \ - v1.19/debian-graylog:v1.19.2-debian-graylog-amd64-1.0,v1.19-debian-graylog-amd64-1 \ - v1.19/debian-papertrail:v1.19.2-debian-papertrail-amd64-1.0,v1.19-debian-papertrail-amd64-1 \ - v1.19/debian-logzio:v1.19.2-debian-logzio-amd64-1.0,v1.19-debian-logzio-amd64-1 \ - v1.19/debian-kafka:v1.19.2-debian-kafka-amd64-1.0,v1.19-debian-kafka-amd64-1 \ - v1.19/debian-kafka2:v1.19.2-debian-kafka2-amd64-1.0,v1.19-debian-kafka2-amd64-1 \ - v1.19/debian-kinesis:v1.19.2-debian-kinesis-amd64-1.0,v1.19-debian-kinesis-amd64-1 \ - v1.19/debian-datadog:v1.19.2-debian-datadog-amd64-1.0,v1.19-debian-datadog-amd64-1 + v1.19/debian-azureblob:v1.19.2-debian-azureblob-amd64-1.1,v1.19-debian-azureblob-amd64-1 \ + v1.19/debian-elasticsearch8:v1.19.2-debian-elasticsearch8-amd64-1.1,v1.19-debian-elasticsearch8-amd64-1 \ + v1.19/debian-elasticsearch7:v1.19.2-debian-elasticsearch7-amd64-1.1,v1.19-debian-elasticsearch7-amd64-1,v1-debian-elasticsearch-amd64 \ + v1.19/debian-opensearch:v1.19.2-debian-opensearch-amd64-1.1,v1.19-debian-opensearch-amd64-1 \ + v1.19/debian-loggly:v1.19.2-debian-loggly-amd64-1.1,v1.19-debian-loggly-amd64-1 \ + v1.19/debian-logentries:v1.19.2-debian-logentries-amd64-1.1,v1.19-debian-logentries-amd64-1 \ + v1.19/debian-cloudwatch:v1.19.2-debian-cloudwatch-amd64-1.1,v1.19-debian-cloudwatch-amd64-1 \ + v1.19/debian-s3:v1.19.2-debian-s3-amd64-1.1,v1.19-debian-s3-amd64-1 \ + v1.19/debian-syslog:v1.19.2-debian-syslog-amd64-1.1,v1.19-debian-syslog-amd64-1 \ + v1.19/debian-forward:v1.19.2-debian-forward-amd64-1.1,v1.19-debian-forward-amd64-1 \ + v1.19/debian-gcs:v1.19.2-debian-gcs-amd64-1.1,v1.19-debian-gcs-amd64-1 \ + v1.19/debian-graylog:v1.19.2-debian-graylog-amd64-1.1,v1.19-debian-graylog-amd64-1 \ + v1.19/debian-papertrail:v1.19.2-debian-papertrail-amd64-1.1,v1.19-debian-papertrail-amd64-1 \ + v1.19/debian-logzio:v1.19.2-debian-logzio-amd64-1.1,v1.19-debian-logzio-amd64-1 \ + v1.19/debian-kafka:v1.19.2-debian-kafka-amd64-1.1,v1.19-debian-kafka-amd64-1 \ + v1.19/debian-kafka2:v1.19.2-debian-kafka2-amd64-1.1,v1.19-debian-kafka2-amd64-1 \ + v1.19/debian-kinesis:v1.19.2-debian-kinesis-amd64-1.1,v1.19-debian-kinesis-amd64-1 \ + v1.19/debian-datadog:v1.19.2-debian-datadog-amd64-1.1,v1.19-debian-datadog-amd64-1 # :,,,... ARM64_IMAGES := \ - v1.19/arm64/debian-azureblob:v1.19.2-debian-azureblob-arm64-1.0,v1.19-debian-azureblob-arm64-1 \ - v1.19/arm64/debian-elasticsearch8:v1.19.2-debian-elasticsearch8-arm64-1.0,v1.19-debian-elasticsearch8-arm64-1 \ - v1.19/arm64/debian-elasticsearch7:v1.19.2-debian-elasticsearch7-arm64-1.0,v1.19-debian-elasticsearch7-arm64-1,v1-debian-elasticsearch-arm64 \ - v1.19/arm64/debian-opensearch:v1.19.2-debian-opensearch-arm64-1.0,v1.19-debian-opensearch-arm64-1 \ - v1.19/arm64/debian-loggly:v1.19.2-debian-loggly-arm64-1.0,v1.19-debian-loggly-arm64-1 \ - v1.19/arm64/debian-logentries:v1.19.2-debian-logentries-arm64-1.0,v1.19-debian-logentries-arm64-1 \ - v1.19/arm64/debian-cloudwatch:v1.19.2-debian-cloudwatch-arm64-1.0,v1.19-debian-cloudwatch-arm64-1 \ - v1.19/arm64/debian-s3:v1.19.2-debian-s3-arm64-1.0,v1.19-debian-s3-arm64-1 \ - v1.19/arm64/debian-syslog:v1.19.2-debian-syslog-arm64-1.0,v1.19-debian-syslog-arm64-1 \ - v1.19/arm64/debian-forward:v1.19.2-debian-forward-arm64-1.0,v1.19-debian-forward-arm64-1 \ - v1.19/arm64/debian-gcs:v1.19.2-debian-gcs-arm64-1.0,v1.19-debian-gcs-arm64-1 \ - v1.19/arm64/debian-graylog:v1.19.2-debian-graylog-arm64-1.0,v1.19-debian-graylog-arm64-1 \ - v1.19/arm64/debian-papertrail:v1.19.2-debian-papertrail-arm64-1.0,v1.19-debian-papertrail-arm64-1 \ - v1.19/arm64/debian-logzio:v1.19.2-debian-logzio-arm64-1.0,v1.19-debian-logzio-arm64-1 \ - v1.19/arm64/debian-kafka:v1.19.2-debian-kafka-arm64-1.0,v1.19-debian-kafka-arm64-1 \ - v1.19/arm64/debian-kafka2:v1.19.2-debian-kafka2-arm64-1.0,v1.19-debian-kafka2-arm64-1 \ - v1.19/arm64/debian-kinesis:v1.19.2-debian-kinesis-arm64-1.0,v1.19-debian-kinesis-arm64-1 \ - v1.19/arm64/debian-datadog:v1.19.2-debian-datadog-arm64-1.0,v1.19-debian-datadog-arm64-1 + v1.19/arm64/debian-azureblob:v1.19.2-debian-azureblob-arm64-1.1,v1.19-debian-azureblob-arm64-1 \ + v1.19/arm64/debian-elasticsearch8:v1.19.2-debian-elasticsearch8-arm64-1.1,v1.19-debian-elasticsearch8-arm64-1 \ + v1.19/arm64/debian-elasticsearch7:v1.19.2-debian-elasticsearch7-arm64-1.1,v1.19-debian-elasticsearch7-arm64-1,v1-debian-elasticsearch-arm64 \ + v1.19/arm64/debian-opensearch:v1.19.2-debian-opensearch-arm64-1.1,v1.19-debian-opensearch-arm64-1 \ + v1.19/arm64/debian-loggly:v1.19.2-debian-loggly-arm64-1.1,v1.19-debian-loggly-arm64-1 \ + v1.19/arm64/debian-logentries:v1.19.2-debian-logentries-arm64-1.1,v1.19-debian-logentries-arm64-1 \ + v1.19/arm64/debian-cloudwatch:v1.19.2-debian-cloudwatch-arm64-1.1,v1.19-debian-cloudwatch-arm64-1 \ + v1.19/arm64/debian-s3:v1.19.2-debian-s3-arm64-1.1,v1.19-debian-s3-arm64-1 \ + v1.19/arm64/debian-syslog:v1.19.2-debian-syslog-arm64-1.1,v1.19-debian-syslog-arm64-1 \ + v1.19/arm64/debian-forward:v1.19.2-debian-forward-arm64-1.1,v1.19-debian-forward-arm64-1 \ + v1.19/arm64/debian-gcs:v1.19.2-debian-gcs-arm64-1.1,v1.19-debian-gcs-arm64-1 \ + v1.19/arm64/debian-graylog:v1.19.2-debian-graylog-arm64-1.1,v1.19-debian-graylog-arm64-1 \ + v1.19/arm64/debian-papertrail:v1.19.2-debian-papertrail-arm64-1.1,v1.19-debian-papertrail-arm64-1 \ + v1.19/arm64/debian-logzio:v1.19.2-debian-logzio-arm64-1.1,v1.19-debian-logzio-arm64-1 \ + v1.19/arm64/debian-kafka:v1.19.2-debian-kafka-arm64-1.1,v1.19-debian-kafka-arm64-1 \ + v1.19/arm64/debian-kafka2:v1.19.2-debian-kafka2-arm64-1.1,v1.19-debian-kafka2-arm64-1 \ + v1.19/arm64/debian-kinesis:v1.19.2-debian-kinesis-arm64-1.1,v1.19-debian-kinesis-arm64-1 \ + v1.19/arm64/debian-datadog:v1.19.2-debian-datadog-arm64-1.1,v1.19-debian-datadog-arm64-1 ALL_IMAGES := $(X86_IMAGES) $(ARM64_IMAGES) diff --git a/README.md b/README.md index 923143b4e..e30f16176 100644 --- a/README.md +++ b/README.md @@ -28,173 +28,173 @@ See also dockerhub tags page: https://hub.docker.com/r/fluent/fluentd-kubernetes ##### Multi-Arch images - `Azureblob` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-1` - `Elasticsearch8` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-1` - `Elasticsearch7` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch` - `Opensearch` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-1` - `Loggly` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-1` - `Logentries` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-1` - `Cloudwatch` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-1` - `S3` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-1` - `Syslog` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-1` - `Forward` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-1` - `Gcs` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-1` - `Graylog` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-1` - `Papertrail` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-1` - `Logzio` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-1` - `Kafka` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-1` - `Kafka2` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-1` - `Kinesis` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-1` - `Datadog` - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-1` ##### x86_64 images - `Azureblob` [Dockerfile](docker-image/v1.19/debian-azureblob/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-amd64-1` - `Elasticsearch8` [Dockerfile](docker-image/v1.19/debian-elasticsearch8/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-amd64-1` - `Elasticsearch7` [Dockerfile](docker-image/v1.19/debian-elasticsearch7/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-amd64-1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch-amd64` - `Opensearch` [Dockerfile](docker-image/v1.19/debian-opensearch/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-amd64-1` - `Loggly` [Dockerfile](docker-image/v1.19/debian-loggly/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-amd64-1` - `Logentries` [Dockerfile](docker-image/v1.19/debian-logentries/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-amd64-1` - `Cloudwatch` [Dockerfile](docker-image/v1.19/debian-cloudwatch/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-amd64-1` - `S3` [Dockerfile](docker-image/v1.19/debian-s3/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-amd64-1` - `Syslog` [Dockerfile](docker-image/v1.19/debian-syslog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-amd64-1` - `Forward` [Dockerfile](docker-image/v1.19/debian-forward/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-amd64-1` - `Gcs` [Dockerfile](docker-image/v1.19/debian-gcs/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-amd64-1` - `Graylog` [Dockerfile](docker-image/v1.19/debian-graylog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-amd64-1` - `Papertrail` [Dockerfile](docker-image/v1.19/debian-papertrail/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-amd64-1` - `Logzio` [Dockerfile](docker-image/v1.19/debian-logzio/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-amd64-1` - `Kafka` [Dockerfile](docker-image/v1.19/debian-kafka/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-amd64-1` - `Kafka2` [Dockerfile](docker-image/v1.19/debian-kafka2/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-amd64-1` - `Kinesis` [Dockerfile](docker-image/v1.19/debian-kinesis/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-amd64-1` - `Datadog` [Dockerfile](docker-image/v1.19/debian-datadog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-amd64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-amd64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-amd64-1` ##### arm64 images - `Azureblob` [Dockerfile](docker-image/v1.19/arm64/debian-azureblob/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-azureblob-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-arm64-1` - `Elasticsearch8` [Dockerfile](docker-image/v1.19/arm64/debian-elasticsearch8/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch8-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-arm64-1` - `Elasticsearch7` [Dockerfile](docker-image/v1.19/arm64/debian-elasticsearch7/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-elasticsearch7-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-arm64-1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch-arm64` - `Opensearch` [Dockerfile](docker-image/v1.19/arm64/debian-opensearch/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-opensearch-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-arm64-1` - `Loggly` [Dockerfile](docker-image/v1.19/arm64/debian-loggly/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-loggly-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-arm64-1` - `Logentries` [Dockerfile](docker-image/v1.19/arm64/debian-logentries/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logentries-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-arm64-1` - `Cloudwatch` [Dockerfile](docker-image/v1.19/arm64/debian-cloudwatch/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-cloudwatch-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-arm64-1` - `S3` [Dockerfile](docker-image/v1.19/arm64/debian-s3/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-s3-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-arm64-1` - `Syslog` [Dockerfile](docker-image/v1.19/arm64/debian-syslog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-syslog-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-arm64-1` - `Forward` [Dockerfile](docker-image/v1.19/arm64/debian-forward/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-forward-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-arm64-1` - `Gcs` [Dockerfile](docker-image/v1.19/arm64/debian-gcs/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-gcs-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-arm64-1` - `Graylog` [Dockerfile](docker-image/v1.19/arm64/debian-graylog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-graylog-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-arm64-1` - `Papertrail` [Dockerfile](docker-image/v1.19/arm64/debian-papertrail/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-papertrail-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-arm64-1` - `Logzio` [Dockerfile](docker-image/v1.19/arm64/debian-logzio/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-logzio-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-arm64-1` - `Kafka` [Dockerfile](docker-image/v1.19/arm64/debian-kafka/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-arm64-1` - `Kafka2` [Dockerfile](docker-image/v1.19/arm64/debian-kafka2/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kafka2-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-arm64-1` - `Kinesis` [Dockerfile](docker-image/v1.19/arm64/debian-kinesis/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-kinesis-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-arm64-1` - `Datadog` [Dockerfile](docker-image/v1.19/arm64/debian-datadog/Dockerfile) - - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-arm64-1.0` + - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19.2-debian-datadog-arm64-1.1` - `docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-arm64-1` diff --git a/docker-image/v1.19/arm64/debian-azureblob/Gemfile.lock b/docker-image/v1.19/arm64/debian-azureblob/Gemfile.lock index c34512552..bb64996a8 100644 --- a/docker-image/v1.19/arm64/debian-azureblob/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-azureblob/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) azure-storage-blob (2.0.3) azure-storage-common (~> 2.0) @@ -150,7 +150,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -168,7 +168,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -178,24 +178,24 @@ GEM net-http-persistent (4.0.8) connection_pool (>= 2.2.4, < 4) netrc (0.11.0) - nokogiri (1.19.0) + nokogiri (1.19.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-gnu) + nokogiri (1.19.1-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-musl) + nokogiri (1.19.1-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-gnu) + nokogiri (1.19.1-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-musl) + nokogiri (1.19.1-arm-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm64-darwin) + nokogiri (1.19.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-darwin) + nokogiri (1.19.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-gnu) + nokogiri (1.19.1-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-musl) + nokogiri (1.19.1-x86_64-linux-musl) racc (~> 1.4) oj (3.16.15) bigdecimal (>= 3.0) @@ -211,7 +211,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) racc (1.8.1) rake (13.3.1) recursive-open-struct (1.3.1) @@ -235,7 +235,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-azureblob/entrypoint.sh b/docker-image/v1.19/arm64/debian-azureblob/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-azureblob/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-azureblob/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-cloudwatch/Gemfile.lock b/docker-image/v1.19/arm64/debian-cloudwatch/Gemfile.lock index fbefd48ec..119e38ae3 100644 --- a/docker-image/v1.19/arm64/debian-cloudwatch/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-cloudwatch/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-cloudwatchlogs (1.124.0) aws-sdk-core (~> 3, >= 3.228.0) aws-sigv4 (~> 1.5) @@ -131,7 +131,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -150,7 +150,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -170,7 +170,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -192,7 +192,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-cloudwatch/entrypoint.sh b/docker-image/v1.19/arm64/debian-cloudwatch/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-cloudwatch/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-cloudwatch/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-datadog/Gemfile.lock b/docker-image/v1.19/arm64/debian-datadog/Gemfile.lock index 1d5628d94..aefd2e130 100644 --- a/docker-image/v1.19/arm64/debian-datadog/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-datadog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -117,7 +117,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -135,7 +135,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -157,7 +157,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-datadog/entrypoint.sh b/docker-image/v1.19/arm64/debian-datadog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-datadog/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-datadog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-elasticsearch7/Gemfile.lock b/docker-image/v1.19/arm64/debian-elasticsearch7/Gemfile.lock index d23d8da84..b2fcbfe8c 100644 --- a/docker-image/v1.19/arm64/debian-elasticsearch7/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-elasticsearch7/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -44,7 +44,7 @@ GEM multi_json elasticsearch-xpack (7.17.11) elasticsearch-api (>= 6) - excon (1.3.2) + excon (1.4.0) logger faraday (1.10.5) faraday-em_http (~> 1.0) @@ -156,7 +156,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -174,7 +174,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) multipart-post (2.4.1) @@ -195,7 +195,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -218,7 +218,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-elasticsearch7/entrypoint.sh b/docker-image/v1.19/arm64/debian-elasticsearch7/entrypoint.sh index f7820b6b5..0d4267180 100755 --- a/docker-image/v1.19/arm64/debian-elasticsearch7/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-elasticsearch7/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-elasticsearch8/Dockerfile b/docker-image/v1.19/arm64/debian-elasticsearch8/Dockerfile index 90072c25a..15943dc66 100644 --- a/docker-image/v1.19/arm64/debian-elasticsearch8/Dockerfile +++ b/docker-image/v1.19/arm64/debian-elasticsearch8/Dockerfile @@ -14,7 +14,7 @@ ENV GEM_HOME /fluentd/vendor/bundle/ruby/3.4.0 ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 COPY Gemfile* /fluentd/ -RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev" \ +RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev build-essential libcurl4-openssl-dev" \ runtimeDeps="" \ && apt-get update \ && apt-get upgrade -y \ diff --git a/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile b/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile index 725408609..eb4d9e6f3 100644 --- a/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile +++ b/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile @@ -18,6 +18,7 @@ gem "fluent-plugin-parser-cri", "~> 0.1.1" gem "elasticsearch", "~> 8.0" gem "fluent-plugin-elasticsearch", "~> 5.4.0" gem "fluent-plugin-dedot_filter", "~> 1.0" +gem "faraday-typhoeus", "~> 1.1.0" gem "fluent-plugin-kubernetes_metadata_filter", "~> 3.8.0" gem "ffi" gem "fluent-plugin-systemd", "~> 1.1.1" diff --git a/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile.lock b/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile.lock index 93da43ead..26c27aa1d 100644 --- a/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-elasticsearch8/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -42,7 +42,9 @@ GEM ostruct elasticsearch-api (8.19.3) multi_json - excon (1.3.2) + ethon (0.15.0) + ffi (>= 1.15.0) + excon (1.4.0) logger faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) @@ -53,6 +55,9 @@ GEM faraday (>= 2.11.0, < 3) faraday-net_http (3.4.2) net-http (~> 0.5) + faraday-typhoeus (1.1.0) + faraday (~> 2.0) + typhoeus (~> 1.4) ffi (1.17.3) ffi (1.17.3-aarch64-linux-gnu) ffi (1.17.3-aarch64-linux-musl) @@ -141,7 +146,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -159,7 +164,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -179,7 +184,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -199,9 +204,11 @@ GEM systemd-journal (2.1.2) ffi (~> 1.9) traces (0.18.2) + typhoeus (1.5.0) + ethon (>= 0.9.0, < 0.16.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) @@ -223,6 +230,7 @@ PLATFORMS DEPENDENCIES elasticsearch (~> 8.0) + faraday-typhoeus (~> 1.1.0) ffi fluent-plugin-concat (~> 2.6.0) fluent-plugin-dedot_filter (~> 1.0) diff --git a/docker-image/v1.19/arm64/debian-elasticsearch8/entrypoint.sh b/docker-image/v1.19/arm64/debian-elasticsearch8/entrypoint.sh index f7820b6b5..0d4267180 100755 --- a/docker-image/v1.19/arm64/debian-elasticsearch8/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-elasticsearch8/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-forward/Gemfile.lock b/docker-image/v1.19/arm64/debian-forward/Gemfile.lock index edb6332af..8384a5983 100644 --- a/docker-image/v1.19/arm64/debian-forward/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-forward/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -113,7 +113,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -131,7 +131,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -151,7 +151,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -173,7 +173,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-forward/entrypoint.sh b/docker-image/v1.19/arm64/debian-forward/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-forward/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-forward/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-gcs/Gemfile.lock b/docker-image/v1.19/arm64/debian-gcs/Gemfile.lock index 9e9393d80..ef002bebc 100644 --- a/docker-image/v1.19/arm64/debian-gcs/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-gcs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -126,7 +126,7 @@ GEM retriable (~> 3.1) google-apis-iamcredentials_v1 (0.26.0) google-apis-core (>= 0.15.0, < 2.a) - google-apis-storage_v1 (0.60.0) + google-apis-storage_v1 (0.61.0) google-apis-core (>= 0.15.0, < 2.a) google-cloud-core (1.8.0) google-cloud-env (>= 1.0, < 3.a) @@ -145,7 +145,7 @@ GEM googleauth (~> 1.9) mini_mime (~> 1.0) google-logging-utils (0.2.0) - googleauth (1.16.1) + googleauth (1.16.2) faraday (>= 1.0, < 3.a) google-cloud-env (~> 2.2) google-logging-utils (~> 0.1) @@ -164,7 +164,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -184,7 +184,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_mime (1.1.5) msgpack (1.8.0) multi_json (1.19.1) @@ -206,7 +206,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -219,7 +219,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - retriable (3.1.2) + retriable (3.2.1) rexml (3.4.4) serverengine (2.4.0) base64 (~> 0.1) @@ -239,7 +239,7 @@ GEM trailblazer-option (0.1.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uber (0.1.0) uri (1.1.1) diff --git a/docker-image/v1.19/arm64/debian-gcs/entrypoint.sh b/docker-image/v1.19/arm64/debian-gcs/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-gcs/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-gcs/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-graylog/Gemfile.lock b/docker-image/v1.19/arm64/debian-graylog/Gemfile.lock index f53298903..fe417fd2b 100644 --- a/docker-image/v1.19/arm64/debian-graylog/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-graylog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -118,7 +118,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -136,7 +136,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -156,7 +156,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -178,7 +178,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-graylog/entrypoint.sh b/docker-image/v1.19/arm64/debian-graylog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-graylog/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-graylog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-kafka/Gemfile.lock b/docker-image/v1.19/arm64/debian-kafka/Gemfile.lock index 170f10e9a..fee9defb0 100644 --- a/docker-image/v1.19/arm64/debian-kafka/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-kafka/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) avro (1.12.1) multi_json (~> 1.0) @@ -69,7 +69,7 @@ GEM fluent-plugin-json-in-json-2 (1.0.2) fluentd (>= 0.14.0, < 2) yajl-ruby (~> 1.0) - fluent-plugin-kafka (0.19.5) + fluent-plugin-kafka (0.19.6) bigdecimal (~> 3.1) fluentd (>= 0.10.58, < 2) ltsv @@ -128,7 +128,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -147,7 +147,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -168,7 +168,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) rdkafka (0.22.2) ffi (~> 1.15) @@ -213,7 +213,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-kafka/entrypoint.sh b/docker-image/v1.19/arm64/debian-kafka/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-kafka/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-kafka/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-kafka2/Gemfile.lock b/docker-image/v1.19/arm64/debian-kafka2/Gemfile.lock index 170f10e9a..fee9defb0 100644 --- a/docker-image/v1.19/arm64/debian-kafka2/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-kafka2/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) avro (1.12.1) multi_json (~> 1.0) @@ -69,7 +69,7 @@ GEM fluent-plugin-json-in-json-2 (1.0.2) fluentd (>= 0.14.0, < 2) yajl-ruby (~> 1.0) - fluent-plugin-kafka (0.19.5) + fluent-plugin-kafka (0.19.6) bigdecimal (~> 3.1) fluentd (>= 0.10.58, < 2) ltsv @@ -128,7 +128,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -147,7 +147,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -168,7 +168,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) rdkafka (0.22.2) ffi (~> 1.15) @@ -213,7 +213,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-kafka2/entrypoint.sh b/docker-image/v1.19/arm64/debian-kafka2/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-kafka2/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-kafka2/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-kinesis/Gemfile.lock b/docker-image/v1.19/arm64/debian-kinesis/Gemfile.lock index fbc4fb56f..304e2c719 100644 --- a/docker-image/v1.19/arm64/debian-kinesis/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-kinesis/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -125,33 +125,33 @@ GEM webrick (~> 1.4) yajl-ruby (~> 1.0) zstd-ruby (~> 1.5) - google-protobuf (4.33.5) + google-protobuf (4.34.0) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-aarch64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-aarch64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-aarch64-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-aarch64-linux-musl) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-arm64-darwin) + rake (~> 13.3) + google-protobuf (4.34.0-arm64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-musl) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-darwin) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-linux-musl) bigdecimal - rake (>= 13) + rake (~> 13.3) http (5.3.1) addressable (~> 2.8) http-cookie (~> 1.0) @@ -163,7 +163,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -182,7 +182,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -202,7 +202,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -224,7 +224,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-kinesis/entrypoint.sh b/docker-image/v1.19/arm64/debian-kinesis/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-kinesis/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-kinesis/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-logentries/Gemfile.lock b/docker-image/v1.19/arm64/debian-logentries/Gemfile.lock index edb6332af..8384a5983 100644 --- a/docker-image/v1.19/arm64/debian-logentries/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-logentries/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -113,7 +113,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -131,7 +131,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -151,7 +151,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -173,7 +173,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-logentries/entrypoint.sh b/docker-image/v1.19/arm64/debian-logentries/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-logentries/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-logentries/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-loggly/Gemfile.lock b/docker-image/v1.19/arm64/debian-loggly/Gemfile.lock index fa8ac54cd..823c94712 100644 --- a/docker-image/v1.19/arm64/debian-loggly/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-loggly/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -116,7 +116,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -134,7 +134,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -155,7 +155,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -177,7 +177,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-loggly/entrypoint.sh b/docker-image/v1.19/arm64/debian-loggly/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-loggly/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-loggly/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-logzio/Gemfile.lock b/docker-image/v1.19/arm64/debian-logzio/Gemfile.lock index 377265ced..ec22d9f3e 100644 --- a/docker-image/v1.19/arm64/debian-logzio/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-logzio/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -118,7 +118,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -136,7 +136,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -158,7 +158,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -180,7 +180,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-logzio/entrypoint.sh b/docker-image/v1.19/arm64/debian-logzio/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-logzio/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-logzio/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-opensearch/Dockerfile b/docker-image/v1.19/arm64/debian-opensearch/Dockerfile index 90072c25a..15943dc66 100644 --- a/docker-image/v1.19/arm64/debian-opensearch/Dockerfile +++ b/docker-image/v1.19/arm64/debian-opensearch/Dockerfile @@ -14,7 +14,7 @@ ENV GEM_HOME /fluentd/vendor/bundle/ruby/3.4.0 ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 COPY Gemfile* /fluentd/ -RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev" \ +RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev build-essential libcurl4-openssl-dev" \ runtimeDeps="" \ && apt-get update \ && apt-get upgrade -y \ diff --git a/docker-image/v1.19/arm64/debian-opensearch/Gemfile b/docker-image/v1.19/arm64/debian-opensearch/Gemfile index 651fc1841..7fc324de8 100644 --- a/docker-image/v1.19/arm64/debian-opensearch/Gemfile +++ b/docker-image/v1.19/arm64/debian-opensearch/Gemfile @@ -16,6 +16,7 @@ gem "fluent-plugin-detect-exceptions", "~> 0.0.16" gem "fluent-plugin-rewrite-tag-filter", "~> 2.4.0" gem "fluent-plugin-parser-cri", "~> 0.1.1" gem "fluent-plugin-opensearch", "~> 1.1.5" +gem "faraday-typhoeus", "~> 1.1.0" gem "fluent-plugin-kubernetes_metadata_filter", "~> 3.8.0" gem "ffi" gem "fluent-plugin-systemd", "~> 1.1.1" diff --git a/docker-image/v1.19/arm64/debian-opensearch/Gemfile.lock b/docker-image/v1.19/arm64/debian-opensearch/Gemfile.lock index 996a24929..f7dbd504d 100644 --- a/docker-image/v1.19/arm64/debian-opensearch/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-opensearch/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -45,7 +45,9 @@ GEM csv (3.3.5) domain_name (0.6.20240107) drb (2.2.3) - excon (1.3.2) + ethon (0.15.0) + ffi (>= 1.15.0) + excon (1.4.0) logger faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) @@ -56,6 +58,9 @@ GEM faraday (>= 2.11.0, < 3) faraday-net_http (3.4.2) net-http (~> 0.5) + faraday-typhoeus (1.1.0) + faraday (~> 2.0) + typhoeus (~> 1.4) faraday_middleware-aws-sigv4 (1.0.1) aws-sigv4 (~> 1.0) faraday (>= 2.0, < 3) @@ -147,7 +152,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -166,7 +171,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -189,7 +194,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -209,9 +214,11 @@ GEM systemd-journal (2.1.2) ffi (~> 1.9) traces (0.18.2) + typhoeus (1.5.0) + ethon (>= 0.9.0, < 0.16.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) @@ -232,6 +239,7 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES + faraday-typhoeus (~> 1.1.0) ffi fluent-plugin-concat (~> 2.6.0) fluent-plugin-detect-exceptions (~> 0.0.16) diff --git a/docker-image/v1.19/arm64/debian-opensearch/entrypoint.sh b/docker-image/v1.19/arm64/debian-opensearch/entrypoint.sh index 0b73c29dc..f1ff33c4f 100755 --- a/docker-image/v1.19/arm64/debian-opensearch/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-opensearch/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-papertrail/Gemfile.lock b/docker-image/v1.19/arm64/debian-papertrail/Gemfile.lock index 2dc3360de..73c7ea67f 100644 --- a/docker-image/v1.19/arm64/debian-papertrail/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-papertrail/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -119,7 +119,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -137,7 +137,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -157,7 +157,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) uuidtools (3.0.0) diff --git a/docker-image/v1.19/arm64/debian-papertrail/entrypoint.sh b/docker-image/v1.19/arm64/debian-papertrail/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-papertrail/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-papertrail/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-s3/Gemfile.lock b/docker-image/v1.19/arm64/debian-s3/Gemfile.lock index 94669fec9..535b830c2 100644 --- a/docker-image/v1.19/arm64/debian-s3/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-s3/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -32,10 +32,10 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.121.0) + aws-sdk-kms (1.122.0) aws-sdk-core (~> 3, >= 3.241.4) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.213.0) + aws-sdk-s3 (1.214.0) aws-sdk-core (~> 3, >= 3.241.4) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) @@ -100,7 +100,7 @@ GEM fluent-plugin-rewrite-tag-filter (2.4.0) fluent-config-regexp-type fluentd (>= 0.14.2, < 2) - fluent-plugin-s3 (1.8.3) + fluent-plugin-s3 (1.8.4) aws-sdk-s3 (~> 1.60) aws-sdk-sqs (~> 1.23) fluentd (>= 0.14.22, < 2) @@ -139,7 +139,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -158,7 +158,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -178,7 +178,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -200,7 +200,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-s3/entrypoint.sh b/docker-image/v1.19/arm64/debian-s3/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-s3/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-s3/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/arm64/debian-syslog/Gemfile.lock b/docker-image/v1.19/arm64/debian-syslog/Gemfile.lock index a6e778156..b58452533 100644 --- a/docker-image/v1.19/arm64/debian-syslog/Gemfile.lock +++ b/docker-image/v1.19/arm64/debian-syslog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -116,7 +116,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -134,7 +134,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -154,11 +154,11 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct - remote_syslog_sender (1.2.3) + remote_syslog_sender (1.2.4) syslog_protocol rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/arm64/debian-syslog/entrypoint.sh b/docker-image/v1.19/arm64/debian-syslog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/arm64/debian-syslog/entrypoint.sh +++ b/docker-image/v1.19/arm64/debian-syslog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-azureblob/Gemfile.lock b/docker-image/v1.19/debian-azureblob/Gemfile.lock index c34512552..bb64996a8 100644 --- a/docker-image/v1.19/debian-azureblob/Gemfile.lock +++ b/docker-image/v1.19/debian-azureblob/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) azure-storage-blob (2.0.3) azure-storage-common (~> 2.0) @@ -150,7 +150,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -168,7 +168,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -178,24 +178,24 @@ GEM net-http-persistent (4.0.8) connection_pool (>= 2.2.4, < 4) netrc (0.11.0) - nokogiri (1.19.0) + nokogiri (1.19.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-gnu) + nokogiri (1.19.1-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-musl) + nokogiri (1.19.1-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-gnu) + nokogiri (1.19.1-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-musl) + nokogiri (1.19.1-arm-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm64-darwin) + nokogiri (1.19.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-darwin) + nokogiri (1.19.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-gnu) + nokogiri (1.19.1-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-musl) + nokogiri (1.19.1-x86_64-linux-musl) racc (~> 1.4) oj (3.16.15) bigdecimal (>= 3.0) @@ -211,7 +211,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) racc (1.8.1) rake (13.3.1) recursive-open-struct (1.3.1) @@ -235,7 +235,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-azureblob/entrypoint.sh b/docker-image/v1.19/debian-azureblob/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-azureblob/entrypoint.sh +++ b/docker-image/v1.19/debian-azureblob/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-cloudwatch/Gemfile.lock b/docker-image/v1.19/debian-cloudwatch/Gemfile.lock index fbefd48ec..119e38ae3 100644 --- a/docker-image/v1.19/debian-cloudwatch/Gemfile.lock +++ b/docker-image/v1.19/debian-cloudwatch/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-cloudwatchlogs (1.124.0) aws-sdk-core (~> 3, >= 3.228.0) aws-sigv4 (~> 1.5) @@ -131,7 +131,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -150,7 +150,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -170,7 +170,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -192,7 +192,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-cloudwatch/entrypoint.sh b/docker-image/v1.19/debian-cloudwatch/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-cloudwatch/entrypoint.sh +++ b/docker-image/v1.19/debian-cloudwatch/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-datadog/Gemfile.lock b/docker-image/v1.19/debian-datadog/Gemfile.lock index 1d5628d94..aefd2e130 100644 --- a/docker-image/v1.19/debian-datadog/Gemfile.lock +++ b/docker-image/v1.19/debian-datadog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -117,7 +117,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -135,7 +135,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -157,7 +157,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-datadog/entrypoint.sh b/docker-image/v1.19/debian-datadog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-datadog/entrypoint.sh +++ b/docker-image/v1.19/debian-datadog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-elasticsearch7/Gemfile.lock b/docker-image/v1.19/debian-elasticsearch7/Gemfile.lock index d23d8da84..b2fcbfe8c 100644 --- a/docker-image/v1.19/debian-elasticsearch7/Gemfile.lock +++ b/docker-image/v1.19/debian-elasticsearch7/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -44,7 +44,7 @@ GEM multi_json elasticsearch-xpack (7.17.11) elasticsearch-api (>= 6) - excon (1.3.2) + excon (1.4.0) logger faraday (1.10.5) faraday-em_http (~> 1.0) @@ -156,7 +156,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -174,7 +174,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) multipart-post (2.4.1) @@ -195,7 +195,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -218,7 +218,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-elasticsearch7/entrypoint.sh b/docker-image/v1.19/debian-elasticsearch7/entrypoint.sh index f7820b6b5..0d4267180 100755 --- a/docker-image/v1.19/debian-elasticsearch7/entrypoint.sh +++ b/docker-image/v1.19/debian-elasticsearch7/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-elasticsearch8/Dockerfile b/docker-image/v1.19/debian-elasticsearch8/Dockerfile index 37d8df3a8..4eebf92ca 100644 --- a/docker-image/v1.19/debian-elasticsearch8/Dockerfile +++ b/docker-image/v1.19/debian-elasticsearch8/Dockerfile @@ -13,7 +13,7 @@ ENV GEM_HOME /fluentd/vendor/bundle/ruby/3.4.0 ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 COPY Gemfile* /fluentd/ -RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev" \ +RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev build-essential libcurl4-openssl-dev" \ runtimeDeps="" \ && apt-get update \ && apt-get upgrade -y \ diff --git a/docker-image/v1.19/debian-elasticsearch8/Gemfile b/docker-image/v1.19/debian-elasticsearch8/Gemfile index 725408609..eb4d9e6f3 100644 --- a/docker-image/v1.19/debian-elasticsearch8/Gemfile +++ b/docker-image/v1.19/debian-elasticsearch8/Gemfile @@ -18,6 +18,7 @@ gem "fluent-plugin-parser-cri", "~> 0.1.1" gem "elasticsearch", "~> 8.0" gem "fluent-plugin-elasticsearch", "~> 5.4.0" gem "fluent-plugin-dedot_filter", "~> 1.0" +gem "faraday-typhoeus", "~> 1.1.0" gem "fluent-plugin-kubernetes_metadata_filter", "~> 3.8.0" gem "ffi" gem "fluent-plugin-systemd", "~> 1.1.1" diff --git a/docker-image/v1.19/debian-elasticsearch8/Gemfile.lock b/docker-image/v1.19/debian-elasticsearch8/Gemfile.lock index 93da43ead..26c27aa1d 100644 --- a/docker-image/v1.19/debian-elasticsearch8/Gemfile.lock +++ b/docker-image/v1.19/debian-elasticsearch8/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -42,7 +42,9 @@ GEM ostruct elasticsearch-api (8.19.3) multi_json - excon (1.3.2) + ethon (0.15.0) + ffi (>= 1.15.0) + excon (1.4.0) logger faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) @@ -53,6 +55,9 @@ GEM faraday (>= 2.11.0, < 3) faraday-net_http (3.4.2) net-http (~> 0.5) + faraday-typhoeus (1.1.0) + faraday (~> 2.0) + typhoeus (~> 1.4) ffi (1.17.3) ffi (1.17.3-aarch64-linux-gnu) ffi (1.17.3-aarch64-linux-musl) @@ -141,7 +146,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -159,7 +164,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -179,7 +184,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -199,9 +204,11 @@ GEM systemd-journal (2.1.2) ffi (~> 1.9) traces (0.18.2) + typhoeus (1.5.0) + ethon (>= 0.9.0, < 0.16.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) @@ -223,6 +230,7 @@ PLATFORMS DEPENDENCIES elasticsearch (~> 8.0) + faraday-typhoeus (~> 1.1.0) ffi fluent-plugin-concat (~> 2.6.0) fluent-plugin-dedot_filter (~> 1.0) diff --git a/docker-image/v1.19/debian-elasticsearch8/entrypoint.sh b/docker-image/v1.19/debian-elasticsearch8/entrypoint.sh index f7820b6b5..0d4267180 100755 --- a/docker-image/v1.19/debian-elasticsearch8/entrypoint.sh +++ b/docker-image/v1.19/debian-elasticsearch8/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-forward/Gemfile.lock b/docker-image/v1.19/debian-forward/Gemfile.lock index edb6332af..8384a5983 100644 --- a/docker-image/v1.19/debian-forward/Gemfile.lock +++ b/docker-image/v1.19/debian-forward/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -113,7 +113,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -131,7 +131,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -151,7 +151,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -173,7 +173,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-forward/entrypoint.sh b/docker-image/v1.19/debian-forward/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-forward/entrypoint.sh +++ b/docker-image/v1.19/debian-forward/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-gcs/Gemfile.lock b/docker-image/v1.19/debian-gcs/Gemfile.lock index 9e9393d80..ef002bebc 100644 --- a/docker-image/v1.19/debian-gcs/Gemfile.lock +++ b/docker-image/v1.19/debian-gcs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -126,7 +126,7 @@ GEM retriable (~> 3.1) google-apis-iamcredentials_v1 (0.26.0) google-apis-core (>= 0.15.0, < 2.a) - google-apis-storage_v1 (0.60.0) + google-apis-storage_v1 (0.61.0) google-apis-core (>= 0.15.0, < 2.a) google-cloud-core (1.8.0) google-cloud-env (>= 1.0, < 3.a) @@ -145,7 +145,7 @@ GEM googleauth (~> 1.9) mini_mime (~> 1.0) google-logging-utils (0.2.0) - googleauth (1.16.1) + googleauth (1.16.2) faraday (>= 1.0, < 3.a) google-cloud-env (~> 2.2) google-logging-utils (~> 0.1) @@ -164,7 +164,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -184,7 +184,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_mime (1.1.5) msgpack (1.8.0) multi_json (1.19.1) @@ -206,7 +206,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -219,7 +219,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - retriable (3.1.2) + retriable (3.2.1) rexml (3.4.4) serverengine (2.4.0) base64 (~> 0.1) @@ -239,7 +239,7 @@ GEM trailblazer-option (0.1.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uber (0.1.0) uri (1.1.1) diff --git a/docker-image/v1.19/debian-gcs/entrypoint.sh b/docker-image/v1.19/debian-gcs/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-gcs/entrypoint.sh +++ b/docker-image/v1.19/debian-gcs/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-graylog/Gemfile.lock b/docker-image/v1.19/debian-graylog/Gemfile.lock index f53298903..fe417fd2b 100644 --- a/docker-image/v1.19/debian-graylog/Gemfile.lock +++ b/docker-image/v1.19/debian-graylog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -118,7 +118,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -136,7 +136,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -156,7 +156,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -178,7 +178,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-graylog/entrypoint.sh b/docker-image/v1.19/debian-graylog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-graylog/entrypoint.sh +++ b/docker-image/v1.19/debian-graylog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-kafka/Gemfile.lock b/docker-image/v1.19/debian-kafka/Gemfile.lock index 170f10e9a..fee9defb0 100644 --- a/docker-image/v1.19/debian-kafka/Gemfile.lock +++ b/docker-image/v1.19/debian-kafka/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) avro (1.12.1) multi_json (~> 1.0) @@ -69,7 +69,7 @@ GEM fluent-plugin-json-in-json-2 (1.0.2) fluentd (>= 0.14.0, < 2) yajl-ruby (~> 1.0) - fluent-plugin-kafka (0.19.5) + fluent-plugin-kafka (0.19.6) bigdecimal (~> 3.1) fluentd (>= 0.10.58, < 2) ltsv @@ -128,7 +128,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -147,7 +147,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -168,7 +168,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) rdkafka (0.22.2) ffi (~> 1.15) @@ -213,7 +213,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-kafka/entrypoint.sh b/docker-image/v1.19/debian-kafka/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-kafka/entrypoint.sh +++ b/docker-image/v1.19/debian-kafka/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-kafka2/Gemfile.lock b/docker-image/v1.19/debian-kafka2/Gemfile.lock index 170f10e9a..fee9defb0 100644 --- a/docker-image/v1.19/debian-kafka2/Gemfile.lock +++ b/docker-image/v1.19/debian-kafka2/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) avro (1.12.1) multi_json (~> 1.0) @@ -69,7 +69,7 @@ GEM fluent-plugin-json-in-json-2 (1.0.2) fluentd (>= 0.14.0, < 2) yajl-ruby (~> 1.0) - fluent-plugin-kafka (0.19.5) + fluent-plugin-kafka (0.19.6) bigdecimal (~> 3.1) fluentd (>= 0.10.58, < 2) ltsv @@ -128,7 +128,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -147,7 +147,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) mini_portile2 (2.8.9) msgpack (1.8.0) multi_json (1.19.1) @@ -168,7 +168,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) rdkafka (0.22.2) ffi (~> 1.15) @@ -213,7 +213,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-kafka2/entrypoint.sh b/docker-image/v1.19/debian-kafka2/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-kafka2/entrypoint.sh +++ b/docker-image/v1.19/debian-kafka2/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-kinesis/Gemfile.lock b/docker-image/v1.19/debian-kinesis/Gemfile.lock index fbc4fb56f..304e2c719 100644 --- a/docker-image/v1.19/debian-kinesis/Gemfile.lock +++ b/docker-image/v1.19/debian-kinesis/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -125,33 +125,33 @@ GEM webrick (~> 1.4) yajl-ruby (~> 1.0) zstd-ruby (~> 1.5) - google-protobuf (4.33.5) + google-protobuf (4.34.0) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-aarch64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-aarch64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-aarch64-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-aarch64-linux-musl) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-arm64-darwin) + rake (~> 13.3) + google-protobuf (4.34.0-arm64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-musl) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-darwin) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-darwin) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-linux-gnu) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-linux-gnu) bigdecimal - rake (>= 13) - google-protobuf (4.33.5-x86_64-linux-musl) + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-linux-musl) bigdecimal - rake (>= 13) + rake (~> 13.3) http (5.3.1) addressable (~> 2.8) http-cookie (~> 1.0) @@ -163,7 +163,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -182,7 +182,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -202,7 +202,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -224,7 +224,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-kinesis/entrypoint.sh b/docker-image/v1.19/debian-kinesis/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-kinesis/entrypoint.sh +++ b/docker-image/v1.19/debian-kinesis/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-logentries/Gemfile.lock b/docker-image/v1.19/debian-logentries/Gemfile.lock index edb6332af..8384a5983 100644 --- a/docker-image/v1.19/debian-logentries/Gemfile.lock +++ b/docker-image/v1.19/debian-logentries/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -113,7 +113,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -131,7 +131,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -151,7 +151,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -173,7 +173,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-logentries/entrypoint.sh b/docker-image/v1.19/debian-logentries/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-logentries/entrypoint.sh +++ b/docker-image/v1.19/debian-logentries/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-loggly/Gemfile.lock b/docker-image/v1.19/debian-loggly/Gemfile.lock index fa8ac54cd..823c94712 100644 --- a/docker-image/v1.19/debian-loggly/Gemfile.lock +++ b/docker-image/v1.19/debian-loggly/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -116,7 +116,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -134,7 +134,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -155,7 +155,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -177,7 +177,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-loggly/entrypoint.sh b/docker-image/v1.19/debian-loggly/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-loggly/entrypoint.sh +++ b/docker-image/v1.19/debian-loggly/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-logzio/Gemfile.lock b/docker-image/v1.19/debian-logzio/Gemfile.lock index 377265ced..ec22d9f3e 100644 --- a/docker-image/v1.19/debian-logzio/Gemfile.lock +++ b/docker-image/v1.19/debian-logzio/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -118,7 +118,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -136,7 +136,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -158,7 +158,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -180,7 +180,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-logzio/entrypoint.sh b/docker-image/v1.19/debian-logzio/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-logzio/entrypoint.sh +++ b/docker-image/v1.19/debian-logzio/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-opensearch/Dockerfile b/docker-image/v1.19/debian-opensearch/Dockerfile index 37d8df3a8..4eebf92ca 100644 --- a/docker-image/v1.19/debian-opensearch/Dockerfile +++ b/docker-image/v1.19/debian-opensearch/Dockerfile @@ -13,7 +13,7 @@ ENV GEM_HOME /fluentd/vendor/bundle/ruby/3.4.0 ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 COPY Gemfile* /fluentd/ -RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev" \ +RUN buildDeps="sudo make gcc g++ libc-dev libffi-dev build-essential libcurl4-openssl-dev" \ runtimeDeps="" \ && apt-get update \ && apt-get upgrade -y \ diff --git a/docker-image/v1.19/debian-opensearch/Gemfile b/docker-image/v1.19/debian-opensearch/Gemfile index 651fc1841..7fc324de8 100644 --- a/docker-image/v1.19/debian-opensearch/Gemfile +++ b/docker-image/v1.19/debian-opensearch/Gemfile @@ -16,6 +16,7 @@ gem "fluent-plugin-detect-exceptions", "~> 0.0.16" gem "fluent-plugin-rewrite-tag-filter", "~> 2.4.0" gem "fluent-plugin-parser-cri", "~> 0.1.1" gem "fluent-plugin-opensearch", "~> 1.1.5" +gem "faraday-typhoeus", "~> 1.1.0" gem "fluent-plugin-kubernetes_metadata_filter", "~> 3.8.0" gem "ffi" gem "fluent-plugin-systemd", "~> 1.1.1" diff --git a/docker-image/v1.19/debian-opensearch/Gemfile.lock b/docker-image/v1.19/debian-opensearch/Gemfile.lock index 996a24929..f7dbd504d 100644 --- a/docker-image/v1.19/debian-opensearch/Gemfile.lock +++ b/docker-image/v1.19/debian-opensearch/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -45,7 +45,9 @@ GEM csv (3.3.5) domain_name (0.6.20240107) drb (2.2.3) - excon (1.3.2) + ethon (0.15.0) + ffi (>= 1.15.0) + excon (1.4.0) logger faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) @@ -56,6 +58,9 @@ GEM faraday (>= 2.11.0, < 3) faraday-net_http (3.4.2) net-http (~> 0.5) + faraday-typhoeus (1.1.0) + faraday (~> 2.0) + typhoeus (~> 1.4) faraday_middleware-aws-sigv4 (1.0.1) aws-sigv4 (~> 1.0) faraday (>= 2.0, < 3) @@ -147,7 +152,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -166,7 +171,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -189,7 +194,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -209,9 +214,11 @@ GEM systemd-journal (2.1.2) ffi (~> 1.9) traces (0.18.2) + typhoeus (1.5.0) + ethon (>= 0.9.0, < 0.16.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) @@ -232,6 +239,7 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES + faraday-typhoeus (~> 1.1.0) ffi fluent-plugin-concat (~> 2.6.0) fluent-plugin-detect-exceptions (~> 0.0.16) diff --git a/docker-image/v1.19/debian-opensearch/entrypoint.sh b/docker-image/v1.19/debian-opensearch/entrypoint.sh index 0b73c29dc..f1ff33c4f 100755 --- a/docker-image/v1.19/debian-opensearch/entrypoint.sh +++ b/docker-image/v1.19/debian-opensearch/entrypoint.sh @@ -13,4 +13,52 @@ if [ -n "$SIMPLE_SNIFFER" -a -f "$SIMPLE_SNIFFER" ] ; then fi +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-papertrail/Gemfile.lock b/docker-image/v1.19/debian-papertrail/Gemfile.lock index 2dc3360de..73c7ea67f 100644 --- a/docker-image/v1.19/debian-papertrail/Gemfile.lock +++ b/docker-image/v1.19/debian-papertrail/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -119,7 +119,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -137,7 +137,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -157,7 +157,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) uuidtools (3.0.0) diff --git a/docker-image/v1.19/debian-papertrail/entrypoint.sh b/docker-image/v1.19/debian-papertrail/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-papertrail/entrypoint.sh +++ b/docker-image/v1.19/debian-papertrail/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-s3/Gemfile.lock b/docker-image/v1.19/debian-s3/Gemfile.lock index 94669fec9..535b830c2 100644 --- a/docker-image/v1.19/debian-s3/Gemfile.lock +++ b/docker-image/v1.19/debian-s3/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,10 +20,10 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) aws-eventstream (1.4.0) - aws-partitions (1.1213.0) + aws-partitions (1.1221.0) aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -32,10 +32,10 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.121.0) + aws-sdk-kms (1.122.0) aws-sdk-core (~> 3, >= 3.241.4) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.213.0) + aws-sdk-s3 (1.214.0) aws-sdk-core (~> 3, >= 3.241.4) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) @@ -100,7 +100,7 @@ GEM fluent-plugin-rewrite-tag-filter (2.4.0) fluent-config-regexp-type fluentd (>= 0.14.2, < 2) - fluent-plugin-s3 (1.8.3) + fluent-plugin-s3 (1.8.4) aws-sdk-s3 (~> 1.60) aws-sdk-sqs (~> 1.23) fluentd (>= 0.14.22, < 2) @@ -139,7 +139,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) jmespath (1.6.2) json (2.18.1) @@ -158,7 +158,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -178,7 +178,7 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct @@ -200,7 +200,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-s3/entrypoint.sh b/docker-image/v1.19/debian-s3/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-s3/entrypoint.sh +++ b/docker-image/v1.19/debian-s3/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT} diff --git a/docker-image/v1.19/debian-syslog/Gemfile.lock b/docker-image/v1.19/debian-syslog/Gemfile.lock index a6e778156..b58452533 100644 --- a/docker-image/v1.19/debian-syslog/Gemfile.lock +++ b/docker-image/v1.19/debian-syslog/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.8) + addressable (2.8.9) public_suffix (>= 2.0.2, < 8.0) async (2.36.0) console (~> 1.29) @@ -20,7 +20,7 @@ GEM protocol-http2 (~> 0.22) protocol-url (~> 0.2) traces (~> 0.10) - async-pool (0.11.1) + async-pool (0.11.2) async (>= 2.0) base64 (0.3.0) bigdecimal (4.0.1) @@ -116,7 +116,7 @@ GEM http-form_data (2.3.0) http_parser.rb (0.8.1) io-endpoint (0.17.2) - io-event (1.14.2) + io-event (1.14.3) io-stream (0.11.1) json (2.18.1) jsonpath (1.1.5) @@ -134,7 +134,7 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0203) + mime-types-data (3.2026.0303) msgpack (1.8.0) multi_json (1.19.1) net-http (0.9.1) @@ -154,11 +154,11 @@ GEM protocol-hpack (~> 1.4) protocol-http (~> 0.47) protocol-url (0.4.0) - public_suffix (7.0.2) + public_suffix (7.0.5) rake (13.3.1) recursive-open-struct (1.3.1) ostruct - remote_syslog_sender (1.2.3) + remote_syslog_sender (1.2.4) syslog_protocol rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -179,7 +179,7 @@ GEM traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.3) + tzinfo-data (1.2026.1) tzinfo (>= 1.0.0) uri (1.1.1) webrick (1.9.2) diff --git a/docker-image/v1.19/debian-syslog/entrypoint.sh b/docker-image/v1.19/debian-syslog/entrypoint.sh index a09f4369f..f76d0d5fa 100755 --- a/docker-image/v1.19/debian-syslog/entrypoint.sh +++ b/docker-image/v1.19/debian-syslog/entrypoint.sh @@ -4,4 +4,52 @@ # DO NOT EDIT THIS FILE DIRECTLY, USE /templates/entrypoint.sh.erb +# Avoid infinite parse error logging loopback, exclude +# fluentd*.log explicitly here as a fallback. +path_exist_in_env() { + VALUE="$1" + TARGETS="$2" + OLD_IFS="$IFS" + IFS=',' + for path in $TARGETS; do + path=$(echo "$path" | xargs) # trim spaces in both ends + if [ "$path" = "$VALUE" ]; then + IFS="$OLD_IFS" + return 1 + fi + done + IFS="$OLD_IFS" + return 0 +} + +WILDCARD_TAIL_PATH="/var/log/containers/*.log" +IGNORE_TAIL_PATH="/var/log/containers/fluentd*.log" +if [ -n "$FLUENT_CONTAINER_TAIL_PATH" ]; then + if [ -n "${FLUENT_CONTAINER_TAIL_EXCLUDE_PATH}" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # Exclude rule exists, then ensure to ignore it if is missing + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + path_exist_in_env "$WILDCARD_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_PATH" + if [ $? -eq 1 ]; then + # No exclude rule yet, so if wildcard was enabled, ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi + fi +else + # Wildcard will be enabled as fallback in tail path + if [ -n "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" ]; then + path_exist_in_env "$IGNORE_TAIL_PATH" "$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH" + if [ $? -eq 0 ]; then + # No exclude rule yet, so ignore fluentd*.log + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$FLUENT_CONTAINER_TAIL_EXCLUDE_PATH,$IGNORE_TAIL_PATH" + fi + else + # No exclude rule yet, set ignore + export FLUENT_CONTAINER_TAIL_EXCLUDE_PATH="$IGNORE_TAIL_PATH" + fi +fi + exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins --gemfile /fluentd/Gemfile ${FLUENTD_OPT}