Prometheus exporter là một công cụ thu thập các số liệu từ một hệ thống cụ thể và hiển thị chúng ở định dạng mà Prometheus có thể thu thập. Redis Prometheus Exporter đặc biệt thu thập các số liệu từ cơ sở dữ liệu Redis.
Trong bài viết này, bạn sẽ triển khai Redis cùng với Redis Prometheus Exporter để thu thập các số liệu từ cơ sở dữ liệu. Sau đó, bạn sẽ trực quan hóa các số liệu này bằng bảng điều khiển Grafana.
Sao chép kho lưu trữ
Đầu tiên, hãy sao chép kho lưu trữ chứa các tài nguyên Redis, cấu hình trình xuất và bảng điều khiển cần thiết:
git clone https://github.com/rslim087a/redis-prometheus-sample cd redis-prometheus-sample
Triển khai tài nguyên Redis
Tạo không gian tên database-monitoring nếu nó chưa tồn tại:
kubectl create namespace database-monitoring
Triển khai các tài nguyên Redis (Secret, Service và StatefulSet) bằng cách sử dụng lệnh sau:
kubectl apply -f redis/
Lệnh này áp dụng tất cả các bảng kê khai Kubernetes trong thư mục redis/, thiết lập phiên bản Redis của bạn.
Cài đặt Redis Exporter
Thêm kho lưu trữ Helm Cộng đồng Prometheus và cập nhật nó:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
Bây giờ, hãy cài đặt Redis Exporter bằng cách sử dụng tệp giá trị tùy chỉnh:
helm install redis-exporter prometheus-community/prometheus-redis-exporter \ -f redis-exporter/redis-exporter-values.yaml \ -n database-monitoring
Hãy xem xét các giá trị tùy chỉnh trong redis-exporter-values.yaml:
# Redis Exporter Helm Values redisAddress: redis://redis:6379
auth: enabled: true secret: name: redis-secret key: REDIS_PASSWORD serviceMonitor: enabled: true labels: release: prometheus service: type: ClusterIP port: 9121 resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi
Giải thích các trường chính:
- redisAddress: Chỉ định chi tiết kết nối Redis.
- auth: Định cấu hình xác thực cho Redis. - enabled: true: Kích hoạt xác thực. - secret: Chỉ định bí mật Kubernetes chứa mật khẩu Redis.
- serviceMonitor: Cấu hình cho Prometheus để tự động khám phá và thu thập các số liệu từ trình xuất Redis. - enabled: true: Kích hoạt việc tạo tài nguyên ServiceMonitor. - labels: Đảm bảo rằng phiên bản Prometheus chính xác chọn ServiceMonitor này.
- service: Định cấu hình dịch vụ Kubernetes cho trình xuất.
- resources: Đặt giới hạn tài nguyên và yêu cầu cho trình xuất.
Xác minh số liệu
Chuyển tiếp cổng pod Redis Exporter và kiểm tra các số liệu:
kubectl port-forward svc/redis-exporter-prometheus-redis-exporter 9121:9121 -n database-monitoring & curl http://localhost:9121/metrics
Sau khi xác minh, hãy dừng chuyển tiếp cổng:
kill %1
Triển khai bảng điều khiển Grafana
Áp dụng ConfigMap bảng điều khiển Grafana:
kubectl apply -f grafana -n monitoring
Thao tác này sẽ tạo ConfigMap với nhãn grafana_dashboard: "1", Grafana sẽ tự động phát hiện và nhập.
Truy cập Grafana
Chuyển tiếp cổng dịch vụ Grafana:
kubectl port-forward svc/prometheus-grafana 3000:80 -n monitoring &
Truy cập Grafana tại http://localhost:3000 bằng thông tin đăng nhập mặc định (thường là admin/prom-operator).
Bảng điều khiển Redis hiện có sẵn trong phiên bản Grafana của bạn. Để tìm thấy nó, hãy làm theo các bước sau:
- Đăng nhập vào Grafana
- Nhấp vào biểu tượng "Bảng điều khiển" trong thanh bên trái
- Chọn "Duyệt"
- Tìm kiếm bảng điều khiển có tên "Bảng điều khiển Redis cho Prometheus"
Bảng điều khiển này sẽ cung cấp thông tin chi tiết về hiệu suất và sức khỏe của Redis, bao gồm các số liệu về kết nối, mức sử dụng bộ nhớ, thao tác mỗi giây, v.v.
Dọn dẹp tài nguyên
Nếu bạn đã triển khai thiết lập này cho mục đích thử nghiệm hoặc học tập, bạn có thể muốn dọn dẹp các tài nguyên sau đó để tránh chi phí không cần thiết hoặc lộn tập tin cụm.
Dưới đây là các bước để loại bỏ các tài nguyên đã triển khai:
Xóa Redis Exporter:
helm uninstall redis-exporter -n database-monitoring
Nếu bạn đã triển khai Redis như một phần của hướng dẫn này:
kubectl delete -f redis/ -n database-monitoring
Xóa bảng điều khiển Grafana:
kubectl delete -f grafana -n monitoring
Nếu bạn không còn cần kho lưu trữ Helm Cộng đồng Prometheus:
helm repo remove prometheus-community
Cuối cùng, xóa không gian tên:
kubectl delete namespace database-monitoring
Hy vọng các bạn thấy bài viết này hữu ích!