0

Giám sát Redis với Prometheus Exporter và Grafana

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!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí