Prometheus & Grafana & Loki: Bộ công cụ giám sát thống nhất

Trong thế giới phân tán và đám mây hiện nay, các hệ thống phần mềm thường trải dài trên nhiều đám mây, máy chủ tại chỗ, môi trường container hóa và các API của bên thứ ba.

Việc giám sát các hệ thống phân mảnh như vậy đòi hỏi một giải pháp giám sát mạnh mẽ, linh hoạt và thống nhất. Ba trong số những công cụ mã nguồn mở phổ biến nhất dẫn đầu phong trào này là Prometheus, Grafana và Loki. Khi kết hợp lại, chúng tạo thành một cỗ máy giám sát mạnh mẽ.

Trong bài viết blog này, chúng tôi sẽ so sánh các công cụ này, làm nổi bật cách chúng bổ sung cho nhau, và khám phá cách bạn có thể tích hợp chúng (cùng với các công cụ khác) để xây dựng giám sát đa môi trường cho các hệ thống phần mềm hiện đại.

  1. Tổng quan về từng công cụ

    Prometheus: Thống kê và cảnh báo

    • Chức năng chính: Cơ sở dữ liệu chuỗi thời gian và hệ thống giám sát.
    • Điểm mạnh: Thu thập các chỉ số số từ các mục tiêu thông qua việc thu thập dữ liệu theo phương pháp pull-based.
    • Các Tính Năng Chính:
      • PromQL (ngôn ngữ truy vấn mạnh mẽ)
      • Cảnh báo qua Alertmanager
      • Truy xuất dữ liệu nhanh và lưu trữ hiệu quả

    Grafana: Trực quan hóa và bảng điều khiển

    • Chức năng chính: Trực quan hóa dữ liệu từ nhiều nguồn khác nhau.
    • Điểm mạnh: Bảng điều khiển đa nguồn dữ liệu.
    • Các Tính Năng Chính:
      • Hỗ trợ Prometheus, Loki, Elasticsearch, InfluxDB, …
      • Các công cụ cảnh báo và trực quan hóa phong phú.
      • Có thể đóng vai trò như một bảng điều khiển trung tâm cho khả năng giám sát.

    Loki: Tập hợp nhật ký (log)

    • Chức năng chính: Thu thập và truy vấn nhật ký.
    • Điểm mạnh: Kiến trúc nhẹ, không có chỉ mục, tích hợp chặt chẽ với Grafana.
    • Các Tính Năng Chính:
      • Ngôn ngữ truy vấn LogQL (lấy cảm hứng từ PromQL)
      • Lưu trữ log tiết kiệm chi phí
      • Sự tương quan liền mạch với các chỉ số Prometheus
  2.  Cách chúng hoạt động cùng nhau

    Tính năng Prometheus Grafana Loki
    Loại Dữ Liệu Chỉ số (chuỗi thời gian) Đồ thị, biểu đồ Nhật ký
    Nguồn Dữ liệu Trực tiếp thu thập/ xuất khẩu Prometheus, Loki, bên thứ ba Promtail, Fluentd, syslog
    Ngôn ngữ truy vấn PromQL Tích hợp với PromQL, LogQL LogQL
    Hiển thị Cơ bản (giao diện người dùng tích hợp sẵn) Bảng điều khiển nâng cao Xem toàn bộ nhật ký
    Cảnh báo Alertmanager Cảnh báo dựa trên bảng điều khiển Cảnh báo log cơ bản qua Grafana

     Sức mạnh kết hợp:

    • Prometheus: Thu thập các chỉ số hệ thống và ứng dụng.
    • Loki: Thu thập nhật ký có cấu trúc và không có cấu trúc.
    • Grafana: Hiển thị cả trên bảng điều khiển thống nhất và thiết lập cảnh báo đa nguồn.
  3. Tính tương thích đám mây đa dạng & lai

    Prometheus:

    • Hoạt động tốt trên Kubernetes, VM, bare-metal và các phiên bản đám mây.
    • Có thể được liên kết cho các thiết lập đa đám mây.
    • Cần lập kế hoạch kiến trúc để mở rộng trong các môi trường đa vùng.

    Grafana:

    • Dễ dàng kết nối với nhiều phiên bản Prometheus trên các đám mây khác nhau.
    • Có thể thu thập dữ liệu từ các hệ thống giám sát bên thứ ba như New Relic, Datadog, AWS CloudWatch, GCP Monitoring.

    Loki:

    • Có thể thu thập nhật ký từ nhiều môi trường khác nhau bằng cách sử dụng các tác nhân như Promtail và Fluent Bit.
    • Truy vấn tập trung qua các luồng nhật ký từ các cơ sở hạ tầng khác nhau.
  4. Tích hợp với các công cụ giám sát khác

    Công cụ Khả năng tích hợp
    Prometheus Hỗ trợ xuất dữ liệu cho MySQL, Redis, NGINX, AWS, GCP, Azure và nhiều hơn nữa. Có thể liên kết với các máy chủ Prometheus bên ngoài.
    Grafana Có thể tích hợp với New Relic, Elastic Stack, Jaeger (tracing), Datadog, AWS CloudWatch, và cả các API tùy chỉnh.
    Loki Tương thích với Promtail, Fluentd, syslog, và tích hợp trực tiếp vào Grafana. Có thể kết nối với các tác nhân Elastic nếu cần thiết.
  5. Xây dựng nền tảng giám sát tập trung

    Bản vẽ kiến trúc:

    1. Lớp Prometheus :
      • Liên bang qua các vùng/khu vực đám mây.
      • Lấy số liệu từ các cụm Kubernetes, VM, chức năng không máy chủ.
    2. Lớp Loki:
      • Tập hợp nhật ký từ tất cả các nguồn.
      • Các tác nhân Promtail được triển khai theo từng môi trường.
    3. Lớp Grafana:
      • Tấm kính đơn cho:
        • Chỉ số (Prometheus)
        • Nhật ký (Loki)
        • Các nguồn bên ngoài (CloudWatch, New Relic, Datadog)
      • Hỗ trợ cảnh báo dự đoán, phát hiện bất thường và bảng điều khiển đa đám mây.
    4. Cảnh báo quản lý:
      • Định tuyến cảnh báo tập trung đến email, Slack, PagerDuty, OpsGenie.
  6. Ưu và nhược điểm của công nghệ này

    Ưu điểm Nhược điểm
    Mã nguồn mở và tiết kiệm chi phí Cần thiết lập và điều chỉnh
    Có khả năng mở rộng và mô-đun cao Liên kết Prometheus đa đám mây có thể phức tạp.
    Tích hợp sâu vào hệ sinh thái Theo dõi gốc hạn chế (cần Jaeger hoặc Tempo)
    Hình ảnh hóa thống nhất trên các đám mây Loki mới hơn, với bộ tính năng đang phát triển nhưng vẫn đang trưởng thành.
  7. Sức mạnh của sự hợp nhất

    Prometheus, Grafana và Loki, khi được sử dụng cùng nhau, cung cấp một giải pháp mạnh mẽ, không phụ thuộc vào nhà cung cấp và có thể mở rộng để giám sát các hệ thống phần mềm phức tạp trên nhiều môi trường khác nhau.

    Bộ công cụ này cung cấp:

    • Giám sát Tập trung: Các chỉ số, nhật ký và cảnh báo trong một nơi.
    • Tính linh hoạt đa đám mây: Giám sát hệ thống tại chỗ, đám mây và lai một cách liền mạch.
    • Hệ sinh thái mở: Dễ dàng tích hợp với các công cụ giám sát khác và dịch vụ bên thứ ba.

    Nếu bạn muốn bảo đảm tương lai cho hệ thống giám sát của mình trong khi vẫn giữ được sự kiểm soát và linh hoạt, bộ ba này là một trong những lựa chọn mã nguồn mở tốt nhất hiện nay.


Bài viết liên quan