containers-roadmap icon indicating copy to clipboard operation
containers-roadmap copied to clipboard

[EKS] [request]: EKS Fargate Support for more Fluent Bit output plugins

Open Byeong-jun-Kim opened this issue 4 years ago • 47 comments
trafficstars

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Tell us about your request I want to use logging to fluentd(forward output) or logstash(http output)

Which service(s) is this request for? EKS on Fargate

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? Only CloudWatch, ES, Kinesis are available now as basic EKS Fargate fluent bit functions.

Are you currently working around this issue? I added a fluent-bit container in every pods.

Additional context We hope that the general http & forward output function will be implemented as soon as possible in order for EKS Fargate to become a more practical service.

Attachments

Byeong-jun-Kim avatar Jan 26 '21 16:01 Byeong-jun-Kim

Thanks for raising this issue @Byeong-jun-Kim. Could you please expand a bit on what you'd like to see beyond what we described in Fluent Bit for Amazon EKS on AWS Fargate is here?

mhausenblas avatar Jan 26 '21 16:01 mhausenblas

Thank you for your reply. The document says: 'You can choose between CloudWatch, ElasticSearch, Kinesis Firehose and Kinesis Streams as outputs.' I feel that the output support above is insufficient. Many Kubernetes users collect and process logs from fluent bit to fluentd, and send them to various places. Besides that, it would be great to have Forward Output which sent to the same stack, fluentd, and also http Output that can be used in general. Is my request a little clearer? @mhausenblas

Byeong-jun-Kim avatar Jan 26 '21 16:01 Byeong-jun-Kim

@mhausenblas Adding another example here. In our case the HTTP output mentioned by @Byeong-jun-Kim would be great to have as we're using SumoLogic for our log system and this is the recommended way to send logs to SumoLogic. The Fluentbit documentation actually provides an example. Currently we have to go through a cumbersome configuration with Cloudwatch in-between. Thanks

pmbeaumier avatar Jan 29 '21 21:01 pmbeaumier

To add to this I would like to see all native Fluentbit outputs as documented here: https://docs.fluentbit.io/manual/v/1.5/pipeline/outputs/. To start Datadog and Splunk would be my top two. As a work around you can use Kinesis Firehose, however that just adds cost and complexity.

Dametrain avatar Mar 03 '21 15:03 Dametrain

+1

https://docs.aws.amazon.com/eks/latest/userguide/fargate-logging.html Built-in EKS Fargate logging places some restrictions on the configurations you can set. The output plugins are validated and only these: firehose, kinesis_firehose, cloudwatch, cloudwatch_logs, and kinesis plugins are supported (others are rejected as the configmap is applied. We want the HTTP OUTPUT plugin to be enabled at least so we can provide another EKS pod to consume the same. Hopefully, this ticket will help prioritize the same!

prashilgupta avatar Apr 20 '21 10:04 prashilgupta

+1

amitkatyal avatar Apr 20 '21 10:04 amitkatyal

It would be ideal if we can send the logs to a HTTP output to Logstash.

lennartt avatar Apr 27 '21 08:04 lennartt

Yeah, this limitation basically prevents us from using Fargate's logging functionality at all, until the GELF output is supported.

I'm curious, @Byeong-jun-Kim, how did adding a fluent-bit container to every pod work out for you? It seems to me like you wouldn't be able to have that pod access the "node"'s filesystem to read the logs. Or are you just have your pods log to a file on a e.g. emptyDir volume so that it can be read by the fluent-bit pod?

philomory avatar Jul 16 '21 22:07 philomory

@philomory yes you're right We are processing the log with a fluent-bit by redirecting all the logs as a file. Since the storage space is limited, we designated a specific lifecycle by saving it by date. But it's very tricky and inefficient. That's why I made this request.

Byeong-jun-Kim avatar Jul 17 '21 05:07 Byeong-jun-Kim

Grafana shops would be ecstatic for loki support.

fishpen0 avatar Jul 20 '21 13:07 fishpen0

please, add support the kubernetes parser which is intended to enrich the logs with useful information like the namespace, container names, pod name and etc ... https://docs.fluentbit.io/manual/pipeline/filters/kubernetes

alexku7 avatar Oct 05 '21 22:10 alexku7

Would like to see the DataDog output supported as well. Currently can work around by Cloudwatch -> DataDog forwarder -> DataDog, but that's money I'd just rather not spend.

sburns avatar Dec 28 '21 15:12 sburns

Greetings.

At our company, we use Coralogix for log storage and analysis.

Our logs get centralized in a Kafka cluster (confluent) and then consumed by an app that formats and forwards them to Coralogix.

The following config

    [OUTPUT]
        Name                                  kafka
        Match                                 *
        Brokers                               {{ .Values.logging.kafkaEndpoint }}:{{ .Values.logging.kafkaPort }}
        Topics                                test-topic
        Topic_Key                             topic
        Format                                json
        rdkafka.security.protocol             SASL_SSL
        rdkafka.sasl.mechanism                PLAIN
        rdkafka.sasl.username                 xxxx
        rdkafka.sasl.password                 xxxx
        rdkafka.queue.buffering.max.messages  500000

causes the following error "0500-amazon-eks-fargate-configmaps-admission.amazonaws.com" denied the request: kafka is not a supported output plugin. Please fix the logging configmap

Please add support for Kafka outputs

FelipeLujan avatar Dec 29 '21 03:12 FelipeLujan

We too would really appreciate the Datadog and Http plugins, is that on the roadmap?

zquintana avatar Jan 11 '22 22:01 zquintana

+1

loki plugin support on EKS fargate fluentbit

pitstop-sirish-bajpai avatar Jan 31 '22 08:01 pitstop-sirish-bajpai

~I'm looking forward to this issue but never participated on this forum before. Is there anywhere with the governance rules and possible timelines on how improvements are chosen? Is there anything I can do to help push this more?~

~Especially to Loki as a tail-end!~

Update: We moved everything out of Fargate into Immutable OS

tloriato avatar Feb 09 '22 12:02 tloriato

+1

loki plugin support on EKS fargate

marcusdb avatar Feb 09 '22 12:02 marcusdb

Could we please have Loki support for Fargate logs?

Please 🙏

kintoandar avatar Feb 09 '22 13:02 kintoandar

@mhausenblas there's quite a reaction in this thread, would you be willing to take this issue further? Any kind of response will be appreciated, it's been over an year after you commented.

DevSusu avatar Feb 16 '22 03:02 DevSusu

S3 please 🙏

rielas avatar Feb 21 '22 08:02 rielas

Splunk please! 🙏

eyalle avatar Apr 11 '22 11:04 eyalle

Oh dear, we are using ec2 node and considering switching to Fargate, however the current support of fluent-bit is limited and almost useless.

  1. It doesn't support s3, so the log is not long term and cheap? Or we need to manually export from Cloudwatch to s3? That means we can only use Fargate as toy and not production ready?

  2. For almost all of us have our existing log system, that means we need additional label or minimum mutation label on our log in a multiple environment settings.

  3. Since everyone would likely need the Kubernetes metadata parser, wouldn't it be nice if default already parse? yet customer has minimum control?

  4. What choice do we have now? Maybe i should plugin a fluentd side-car (500M binary) on my golang microservice (20M binary) just to support this limitation.

teochenglim avatar Apr 23 '22 00:04 teochenglim

No more updates on this one? HTTP output would be great.

ianrodrigues avatar May 20 '22 13:05 ianrodrigues

Hello,

One of my customer have below requirements as well. Kindly add this to the feature request as well:

Currently , Fargate provides a hook for logging with fluentbit: https://docs.aws.amazon.com/eks/latest/userguide/fargate-logging.html .

Problem: AWS only exposes very specific plugins. https://github.com/aws/containers-roadmap/issues/1242 .

We need the fluent forward output plugin in order to get fluentbit fargate logs to Grafana Enterprise Logs (GEL).Fargate validates against the following supported output: es, firehose, kinesis_firehose, cloudwatch, cloudwatch_logs, and kinesis.

Request to AWS is to add “Fluent forward output plugin” to the above list.

Also, kindly advise if any workaround is there for the same.

singhnix avatar Sep 23 '22 03:09 singhnix

Kudos to @Byeong-jun-Kim. Adding the "http" or "forward" output can tremendously improve the logging experience on EKS Fargate.

My organization has an existing ECS/lambda -> Fluentd on ECS -> on-premise Elasticsearch architecture for some reasons.

  1. Fluentd can congregate logs into batch requests before sending them to Elasticsearch, which greatly reduces network/CPU loading.
  2. We can enforce centralized data enrichment or manipulation rules. We can also do that by Elasticsearch ingest pipeline, but then we would lose the other advantages.
  3. Fluentd provides an extra layer of buffer between microservices and Elasticsearch so that in the unfortunate event of a network/Elasticsearch outage, the application logs are properly handled by Fluentd instead of drowning the microservices' resources.
  4. There is of course the cost-saving factor as we managed our on-premise Elasticsearch cluster.

All of these are not possible because the "forward" and "http" output filters are disabled. Now I change the code to log to both stdout and to a log file, mount that file to Fluent Bit sidecar, and add another sidecar to perform log rotation... It is a nightmare and is seriously hindering the adoption of AWS EKS on Fargate within my organization.

Please fix this, or at least let us know if "forward" and "http" output filter will be considered to be added.

junowong0114 avatar Oct 13 '22 02:10 junowong0114

Guys do you think will be possible to configure my promtail to scrap logs from fargate namespace?

rafilkmp3 avatar Jan 31 '23 21:01 rafilkmp3

Still looking for Loki ouput support!

jordanabc35 avatar Mar 07 '23 19:03 jordanabc35

datadog please

sameeraksc avatar Mar 15 '23 05:03 sameeraksc

+1

Loki support would be great

VeresMarcell avatar Mar 23 '23 10:03 VeresMarcell

any HTTP support would be great

teimor avatar May 04 '23 17:05 teimor