- Đăng vào
Monitoring Kubernetes cluster với Prometheus + Grafana
Bài viết này sẽ hướng dẫn cách giám sát Kubernetes cluster dùng Prometheus và Grafana. Về cơ bản, prometheus đóng vai trò thu thập các thông tin của cluster và Grafana chỉ đơn giản là công cụ giúp hiển thị các thông tin một cách trực quan thông qua các dashboard.
Deploy Kubernetes mainfest
Số lượng các resouce cần phải deploy khá là nhiều, nên mình đã gom lại và đẩy lên GitHub: https://github.com/nvtienanh/k8s-monitoring
Sau khi download xong, bạn cần phải chỉnh sửa 1 ít tùy theo hiện trạng cluster. Trong trường hợp của mình, sử dụng NFS PVC nên nếu bạn sử dụng cần:
- Cập nhật IP của NFS server trong các file storage.yaml
- Tạo các folder dùng để lưu trữu data trên NFS server
# Run command in NFS server
sudo mkdir -p /mnt/kubernetes/data/prometheus
sudo mkdir -p /mnt/kubernetes/data/grafana
Nếu bạn sử dụng các PVC khác thì bạn phải tự cập nhật lại các file storage.yaml Tiếp theo, chúng ta deploy tất cả các resource lên Kubernetes cluster
kubectl create namespace monitoring
kubectl apply -f prometheus/
kubectl apply -f kube-state-metrics/
kubectl apply -f node-exporter/
kubectl apply -f grafana/
Sau khi deploy xong, chúng ta có thể kiểm tra xem trạng thái của các resource đã được deploy:
kubectl get all -n monitoring
kubectl get all -n monitoring
NAME READY STATUS RESTARTS AGE
pod/grafana-6c5c86d879-z4485 1/1 Running 0 24h
pod/node-exporter-nlvzq 1/1 Running 0 25h
pod/node-exporter-tlwlf 1/1 Running 0 25h
pod/prometheus-deployment-9745f4dd4-nqqhh 1/1 Running 0 25h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/grafana ClusterIP 10.99.183.180 <none> 3000/TCP 25h
service/node-exporter ClusterIP 10.103.159.184 <none> 9100/TCP 25h
service/prometheus-service ClusterIP 10.104.199.251 <none> 8080/TCP 25h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-exporter 2 2 2 2 2 <none> 25h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/grafana 1/1 1 1 25h
deployment.apps/prometheus-deployment 1/1 1 1 25h
NAME DESIRED CURRENT READY AGE
replicaset.apps/grafana-575476c48f 0 0 0 25h
replicaset.apps/grafana-5b4dbfdf7c 0 0 0 25h
replicaset.apps/grafana-6c5c86d879 1 1 1 24h
replicaset.apps/grafana-7898b46bdc 0 0 0 25h
replicaset.apps/prometheus-deployment-9745f4dd4 1 1 1 25h
Sau khi deploy xong, các bạn có thể truy cập vào:
- Grafana: http://grafana.yourdomain.com
- Prometheus: http://prometheus.yourdomain.com
Tạo Grafana dashboard
Đầu tiên, bạn login vào grafana, user và mật khẩu mặc định là admin, bạn phải đổi mật khẩu trong lần đăng nhập đầu tiên.
Tiếp theo mình import Dashboard mẫu Node Exporter Full có ID là 1860, bằng cách vào phần Dashboard, import:
Chọn datasource là Prometheus, sau khi import xong thì chúng ta truy cập vào được Dashboard như hình dưới dây
Ngoài ra bạn có thể tham khảo và import các mẫu Dashboard khác theo nhu cầu.
Chúc thành công nvtienanh