Step-by-Step Guide: Monitoring with Prometheus and Grafana

Step-by-Step Guide: Monitoring with Prometheus and Grafana

Monitoring your Kubernetes cluster is crucial for maintaining a healthy and performant environment. This guide will walk you through the setup of Prometheus and Grafana for monitoring, ensuring that you can visualize metrics effectively.


Step 1: Install Kubectl

Kubectl is the command-line tool for Kubernetes. Install it by running:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

Step 2: Install Minikube

Minikube lets you run Kubernetes locally. Install it with:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

Step 3: Create a Kubernetes Cluster with Minikube

Start your Kubernetes cluster:

minikube start


Step 4: Install Helm

Helm simplifies Kubernetes application management. Install it with:

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm


Step 5: Install Prometheus

Prometheus is a powerful monitoring system. Install it using Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheus

Verify the Prometheus services:

kubectl get svc

To access Prometheus in your browser:

  1. Expose the Prometheus service:

     kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-ext --port=9090
    

  2. Forward the port:

     kubectl port-forward service/prometheus-server-ext 9090:9090 --address=0.0.0.0 &
    

  3. Update your security group’s inbound rules to allow traffic on port 9090.


Step 6: Install Grafana

Grafana provides visualization for your metrics. Install it using Helm:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana

Retrieve the Grafana admin password:

# Run the command shown in your CLI output after Grafana installation.

Expose the Grafana service:

kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-ext --port=3000

Forward the port:

kubectl port-forward service/grafana-ext 3000:3000 --address=0.0.0.0 &

Update your security group’s inbound rules to allow traffic on port 3000.


Step 7: Integrate Prometheus with Grafana

  1. In Grafana, navigate to Data Sources and add Prometheus.

  2. Enter the Prometheus server URL.

  3. Select Performance Type as ‘Prometheus’


Step 8: Create a Grafana Dashboard

  1. Go to Dashboard and click New > Import.

  2. Use the default dashboard ID: 3662.

  3. Select the Prometheus data source created earlier and click Import.

Congratulations 🎉

Your Grafana dashboard with Prometheus as the data source is ready! You can now monitor your Kubernetes environment efficiently.


Conclusion

Setting up Prometheus and Grafana for monitoring might seem challenging initially, but with this step-by-step guide, it becomes a straightforward process. By integrating Prometheus for data collection and Grafana for visualization, you ensure that your Kubernetes cluster is well-monitored and its performance is easy to analyze. As you grow more comfortable with these tools, you can explore advanced features like creating custom alerts and dashboards tailored to your specific needs.

Happy monitoring!