Search code examples
amazon-web-serviceselasticsearchloggingaws-lambdafluentd

AWS Lambda - Fluentd instead of CloudWatch possible?


I want to move my logging for AWS Lambda from CloudWatch to Elasticsearch and Kibana, using Fluentd. I understand that I need to use Lambda outputs as an input to Fluentd, which I already have set up. All my Lambda functions are in Python.

Is it possible to capture Lambda output with Fluentd without additional plugins, i.e. using just tail? I do not see any Lambda input plugin in the Fluentd list, only the output one. If not, is there any possible workaround, or do I have to write plugin specifically for this? Or would simply inserting data into Elasticsearch suffice, omitting Fluentd altogether?

EDIT: to clarify, I want to get rid of CloudWatch, with no streaming to it at all.


Solution

  • You won't be able to do it without additional 'plugins' but you can do it with a Lambda Extension.

    This code sample gives you an example.

    https://github.com/aws-samples/aws-lambda-extensions/tree/main/python-example-elasticsearch-extension