Welcome to the repository for our comprehensive guide on implementing the EFK (Elasticsearch, Fluentd, Kibana) stack on Kubernetes. This repository contains all the code and configuration files you'll need to set up your own log monitoring system on a Kubernetes cluster.
This project demonstrates how to collect, process, and analyze log data from services deployed on a Kubernetes (k8s) cluster. By leveraging the EFK stack, you can monitor system health, user activities, and security threats in a cloud-native environment.
To get started with deploying the EFK stack on your Kubernetes cluster, clone this repository and follow the instructions provided in the Makefile
.
git clone https://github.com/kishorechk/efk-demo.git
cd efk-demo
make deploy-all
For a detailed walkthrough of this project, including step-by-step instructions and explanations, check out our Medium blog post:
📘 Kubernetes Observability: EFK Stack Deployment Guide
Here's a brief overview of what you'll find in this repository:
serviceA/
: Contains the Dockerfile and source code for a sample microservice A.serviceB/
: Contains the Dockerfile and source code for a sample microservice B.efk-helm-chart/
: Helm chart for deploying the EFK stack and the microservices on Kubernetes.Makefile
: A list of commands to facilitate the building, deploying, and cleaning up of services and the EFK stack.
Before you begin, ensure you have the following installed:
- Docker
- Kubernetes cluster (e.g., minikube, kind)
- Helm 3
To deploy the microservices and the EFK stack, run the following commands:
make deploy-serviceA
make deploy-serviceB
make deploy-efk
To clean up the deployment:
make clean
Contributions to this project are welcome! Please feel free to submit issues or pull requests with improvements.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to the Kubernetes and EFK communities for providing the tools and resources to make this project possible.
Happy monitoring!