-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: AWS Cloudwatch logs support #1222
Comments
Do you use file buffer? |
@repeatedly No we don't. Should we? |
Yes. With |
OK cool, I'll test that configuration to reduce memory usage. But still, it would be great to have Cloudwatch logs support in Fluent-bit 😃 |
AWS SDK for C is not provided. |
I doubt fluent-bit wants a C++ dependency. It's probably not all that complex to adapt the HTTP code for talking AWS REST API in C, but it would be non-trivial. |
I think the best option for now is to create an external plugin using Fluent Bit Go. I'm working on writing one. Here are the options that I'm thinking of supporting:
Example configuration:
When the plugin receives log messages, it would auto-create the Log Stream @max-rocket-internet @cosmo0920 @nigels-com @edsiper Any comments or suggestions? |
Sounds good! I didn't even know the plugins were separate. Great.
I would say that sounds good 👍 |
@PettitWesley thank you for working on this ! we've restrained from migrating to fluent-bit because there was no plugin for cloudwatch, so yours will enable us to make the move ! |
I'm glad to see excitement for this! I should've noted in my original comment that I work for AWS, and that this plugin will be under AWSLabs. Let me know if there are other AWS Services that you wish had Fluent Bit support. (No promises of course on what we'll implement, but we do take your requests/feedback seriously!) |
It would be nice if this can be supported by app-mesh as an auto injected sidecar.
I doubt it would require and support on the plugin side implementation but you may need to include it in app mesh/ Istio deployment. Something like x-ray sidecar would make it really awesome.
Another big advantage is since eks CNI has IP limitation on instance types, sidecar will save us from the extra pod.
|
It would be great to be able to go direct to Kinesis Data Firehose. The reason is that in AWS you are able to stream from Firehose to AWS Elasticsearch service directly. And the AWS ES service is a very popular log solution as it includes Kibana. Using this arrangement once the logs are collected by fluent-bit and sent to firehose, transport (and S3 buffering) to ES is done completely inside AWS without needing to via ES VPC or public endpoint. And that's quite an elegant solution 🙂 |
@max-rocket-internet You're in luck! We're working on a Firehose plugin as well! 😃 On the topic of using Firehose & Fluentd as a log solution; I'd like to link to this. |
@PettitWesley I'm working on fluent-bit-go-cloudwatch-logs.
I doubt
fluent-plugin-cloudwatch-logs also supports these functionality but it provides only |
@PettitWesley is there any news on when output to cloudwatch will see first release? |
@cosmo0920 I think you're mistaken in assuming that it's only going to be used as a sidecar. The company i'm working for, for instance, is not planning on having an extra process per container for logs collection, but rather one per host. and |
The CloudWatch Logs and Kinesis Data Firehose plugins repositories are now public 🚀 Check them out here: You can pull the code, build it, and begin using it now. We understand this is not a very convenient way to consume these plugins though; I'll have an update on that in the near future. |
Here's that update! We are distributing an image on Docker Hub: https://hub.docker.com/r/amazon/aws-for-fluent-bit And also Amazon ECR; check out the READMEs of the plugins for that. Finally, a small plug, we wrote a tutorial on using Fluent Bit with Amazon ECS and Amazon EKS: https://aws.amazon.com/blogs/opensource/centralized-container-logging-fluent-bit/ |
@PettitWesley where can I find the github repo/dockerfile for the aws-for-fluent-bit image? |
@talawahtech Currently, I have it on the Docker Hub page: https://hub.docker.com/r/amazon/aws-for-fluent-bit |
@PettitWesley thx! |
FYI: just a heads up, we (Fluent Bit) are working together with AWS team intro bring this kind of plugins and interfaces into the core. Current status: building AWS Signv4 support into Fluent Bit. |
(Old News) We have a GitHub repo: https://github.com/aws/aws-for-fluent-bit |
A core plugin for CloudWatch was released in 1.5! https://docs.fluentbit.io/manual/v/1.5/pipeline/outputs/cloudwatch |
Like many people on AWS, we send our logs to Cloudwatch Logs. The reason is that once the logs are in Cloudwatch, they are easy to push to other AWS services. e.g. S3, AWS Elasticsearch, own ES and more.
Currently the only easy way to get logs from k8s nodes into Cloudwatch Logs is to use fluentd-kubernetes-daemonset and like probably most people here know, fluentd uses a lot of resources. Currently some of our clusters have to give it 750MB of memory on every node otherwise we hit OOM 😧
So, I would like to request an output plugin for Fluent Bit to send logs to AWS Cloudwatch Logs 🚀
The text was updated successfully, but these errors were encountered: