Ứng dụng đã chạy ổn trên production, nhưng bạn có biết: Nó đang “khỏe” đến đâu không? CPU tăng vọt lúc mấy giờ? Database có đang chậm dần? Pod nào trên Kubernetes cứ khởi động lại liên tục? Để có câu trả lời nhanh và rõ ràng, nhiều đội DevOps chọn kết hợp Prometheus với Grafana.

Trong bài này, bạn sẽ hiểu Grafana là gì, Prometheus làm nhiệm vụ gì – và cách triển khai bộ đôi này trên AWS sao cho gọn nhẹ, an toàn và dễ mở rộng về sau.

Grafana là gì?

Theo Wikipedia: Grafana là một ứng dụng web mã nguồn mở dùng để phân tích và trực quan hóa dữ liệu. Công cụ này kết nối với các cơ sở dữ liệu chuỗi thời gian (time series) và nhiều nguồn dữ liệu khác, rồi hiển thị metrics, logs và traces dưới dạng dashboard. Grafana do Torkel Ödegaard phát hành lần đầu vào tháng 1/2014, bắt nguồn từ thời gian ông làm việc với Graphite tại Orbitz. 

Một điểm dễ nhầm: Grafana không thu thập dữ liệu – mà chỉ truy vấn số liệu từ các nguồn như Prometheus, InfluxDB hay Elasticsearch, sau đó dựng thành dashboard để bạn theo dõi và tương tác. Nhờ vậy, bạn có thể đưa số liệu từ nhiều hệ thống lên cùng một màn hình để so sánh và tìm nguyên nhân khi có sự cố.

Ba tính năng chính của Grafana:

  • Dashboard linh hoạt: Tùy chỉnh dễ dàng, có hệ sinh thái plugin phong phú để hiển thị dữ liệu từ bất kỳ nơi nào đang lưu trữ.
  • Hỗ trợ nhiều nguồn dữ liệu: Prometheus, AWS CloudWatch, Graphite, InfluxDB, Elasticsearch, PostgreSQL, MySQL.
  • Truy vấn và cảnh báo: Cho phép truy vấn, trực quan hóa, đặt cảnh báo và theo dõi dữ liệu dù dữ liệu nằm ở đâu.

Ngoài Grafana – Grafana Labs còn phát triển các dự án mã nguồn mở khác như Loki, Tempo, Mimir, Faro và Pyroscope, đồng thời đóng góp cho Graphite, Prometheus và OpenTelemetry.

Prometheus là gì? Vì sao luôn đi cùng Grafana?

Theo tài liệu chính thức của Prometheus: Prometheus là bộ công cụ giám sát và cảnh báo mã nguồn mở, được SoundCloud xây dựng từ năm 2012. Năm 2016, dự án gia nhập Cloud Native Computing Foundation (CNCF) và là dự án thứ hai được tổ chức này bảo trợ, sau Kubernetes. 

Prometheus lưu mỗi metric dưới dạng chuỗi thời gian: một giá trị đi kèm thời điểm ghi nhận và các cặp key-value gọi là label. Nhờ label, bạn có thể lọc và nhóm dữ liệu theo nhiều chiều khác nhau. Prometheus dùng ngôn ngữ truy vấn riêng là PromQL, thu thập dữ liệu theo mô hình pull qua HTTP, và tìm target bằng service discovery hoặc cấu hình tĩnh. 

Hệ sinh thái Prometheus gồm nhiều thành phần:

  • Prometheus server scrape và lưu dữ liệu.
  • Client library dùng để gắn metrics vào code ứng dụng.
  • Push gateway hỗ trợ các job chạy ngắn, không đủ thời gian để server scrape.
  • Exporter lấy metrics từ các dịch vụ như HAProxy, StatsD, Graphite. 
  • Alertmanager nhận và xử lý cảnh báo. 

Vì sao Prometheus hay đi cùng Grafana?

Vì mỗi bên làm một việc khác nhau. Prometheus lưu các mẫu dữ liệu đã scrape, chạy rule để tổng hợp hoặc sinh cảnh báo, và Grafana hoặc các ứng dụng dùng API khác có thể được dùng để trực quan hóa dữ liệu đã thu thập.

  • Nói ngắn gọn, Prometheus lo phần “thu thập và lưu” – Grafana lo phần “nhìn và hiểu”

Theo Grafana Labs: Grafana cho phép nhập metrics hiệu năng từ Prometheus làm nguồn dữ liệu và hiển thị chúng thành biểu đồ, dashboard.

Lưu ý: Prometheus không phù hợp với những số liệu cần chính xác tuyệt đối, ví dụ tính tiền theo từng request. Dữ liệu scrape được có thể thiếu hoặc không đủ chi tiết. Với billing, hãy dùng hệ thống riêng và để Prometheus làm đúng việc giám sát vận hành.

Trên AWS, cả hai đều có bản managed nên bạn không phải tự dựng và vận hành từng thành phần

Cách Grafana và Prometheus phối hợp để giám sát hệ thống

Một hệ thống giám sát điển hình thường vận hành theo 4 bước:

  • Xuất metrics: Ứng dụng, máy chủ hoặc dịch vụ mở một endpoint để công bố các chỉ số của mình. Với máy chủ Linux, Node exporter là công cụ được Grafana Labs khuyến nghị để xuất chỉ số hệ thống như CPU, RAM, ổ đĩa.
  • Thu thập: Prometheus định kỳ kéo (pull) dữ liệu từ các endpoint này rồi lưu vào cơ sở dữ liệu chuỗi thời gian của nó.
  • Hiển thị: Grafana kết nối tới Prometheus, dùng PromQL để truy vấn dữ liệu và đưa lên dashboard.
  • Cảnh báo: Khi một chỉ số vượt ngưỡng đã đặt, Alertmanager hoặc Grafana Alerting gửi thông báo qua email, Slack hoặc kênh trực on-call.

Với một máy chủ đơn lẻ, mô hình này chạy ổn định. Khó khăn xuất hiện khi hệ thống mở rộng, nhất là trên cloud với hàng chục cluster và nhiều tài khoản AWS cần theo dõi cùng lúc.

Thách thức khi tự vận hành Prometheus và Grafana ở quy mô lớn

Cài Prometheus và Grafana thì đơn giản, nhưng giữ chúng chạy ổn định khi hệ thống lớn lại là bài toán khác. Theo Grafana Labs, việc tự mở rộng Prometheus tốn nhiều công sức: mỗi instance chỉ chạy trên một máy, không có cơ chế quản trị dữ liệu tập trung, và phân quyền truy cập metrics chỉ dừng ở mức “mở hết hoặc chặn hết”.

Ngoài ra, đội vận hành phải tự lo nâng cấp phiên bản, vá bảo mật, sao lưu và đảm bảo hệ thống giám sát luôn sẵn sàng. Trên thực tế, nhiều doanh nghiệp đã gặp tình huống hệ thống giám sát ngừng hoạt động đúng lúc sự cố xảy ra.

Đây là lý do các dịch vụ managed trên AWS trở thành lựa chọn đáng cân nhắc cho các doanh nghiệp lớn.

Giám sát hệ thống với Grafana và Prometheus trên AWS

AWS cung cấp hai dịch vụ managed cho bộ đôi này: Amazon Managed Service for Prometheus và Amazon Managed Grafana. Cả hai đều tương thích với phiên bản mã nguồn mở, bạn vẫn dùng lại được cấu hình, dashboard và PromQL quen thuộc – trong khi AWS lo phần vận hành, vá lỗi và mở rộng. 

Amazon Managed Service for Prometheus

Đây là dịch vụ giám sát và cảnh báo tương thích hoàn toàn với Prometheus của CNCF. Bạn tạo workspace là dùng được, phần lớn việc vận hành và bảo trì do AWS xử lý.

Một số điểm nổi bật:

  • Tự co giãn theo tải: Dịch vụ tự điều chỉnh khi workload container tăng hoặc giảm, đảm bảo thời gian phản hồi truy vấn ổn định.
  • Sẵn sàng cao ngay từ đầu: Mỗi workspace tự động được triển khai trên nhiều Availability Zone và sẵn sàng nhận, truy vấn metrics ngay.
  • Hỗ trợ nhiều nền tảng container: Bạn có thể thu thập và truy vấn metrics từ Amazon EKS, Amazon ECS và AWS Fargate.

Tính năng đáng giá nhất với các đội chạy Kubernetes là collector không cần agent. Được ra mắt tháng 11/2023, collector này giúp tự động phát hiện và thu thập metrics Prometheus từ ứng dụng, hạ tầng EKS và Kubernetes API server mà không phải cài agent trong cluster. 

Về bảo mật, tài liệu AWS cho biết collector tạo một Elastic Network Interface cho mỗi subnet, scrape metrics qua các ENI này rồi dùng remote_write đẩy dữ liệu vào workspace qua VPC endpoint, nên dữ liệu không bao giờ đi qua internet công cộng.

Amazon Managed Grafana

Đây là Grafana mã nguồn mở được AWS quản lý toàn bộ, phát triển cùng Grafana Labs nên giao diện và cách dùng gần như giống hệt bản bạn đang chạy. AWS tự mở rộng hạ tầng tính toán và cơ sở dữ liệu khi nhu cầu tăng, đồng thời tự cập nhật phiên bản và vá bảo mật.

Điểm mạnh lớn nhất là tích hợp sẵn với hệ sinh thái AWS. Dịch vụ kết nối trực tiếp với Amazon CloudWatch, Amazon OpenSearch Service, AWS X-Ray, AWS IoT SiteWise, Amazon Timestream và Amazon Managed Service for Prometheus. Khi thêm các dịch vụ AWS làm nguồn dữ liệu, quyền truy cập được cấp tự động.

Về đăng nhập, bạn có thể dùng AWS IAM Identity Center hoặc SAML 2.0 để kết nối với hệ thống định danh sẵn có, rồi gán quyền đọc/ghi hoặc chỉ đọc cho từng người. Chi phí tính theo số người dùng hoạt động trong mỗi workspace.

Cập nhật mới: CloudWatch hỗ trợ thu thập metrics Prometheus

Từ tháng 7/2026, Amazon CloudWatch có thêm collector được quản lý hoàn toàn để thu thập metrics Prometheus từ Amazon EKS, EC2, ECS, MSK và OpenSearch Service, không cần triển khai hay quản lý agent. Metrics thu về có thể truy vấn bằng PromQL cùng với metrics sẵn có của AWS. Collector tính phí theo giờ.

Kiến trúc tham khảo: giám sát Amazon EKS với Prometheus và Grafana

Với doanh nghiệp đang chạy workload trên Amazon EKS, một kiến trúc gọn và an toàn thường gồm các bước sau:

  • Tạo workspace Amazon Managed Service for Prometheus để lưu trữ metrics.
  • Bật collector không cần agent. Khi tạo cluster EKS mới trên console, bạn có thể chọn gửi metrics Prometheus tới workspace đích ngay tại bước này.
  • Tạo workspace Amazon Managed Grafana, thêm Amazon Managed Service for Prometheus và CloudWatch làm nguồn dữ liệu.
  • Dựng dashboard và cấu hình cảnh báo cho các chỉ số quan trọng như CPU, bộ nhớ, số lần pod restart, độ trễ API, tỷ lệ lỗi.
  • Phân quyền theo đội qua IAM Identity Center để mỗi nhóm chỉ thấy dashboard liên quan.

Nếu doanh nghiệp có nhiều tài khoản AWS, Amazon Managed Grafana hỗ trợ AWS Organizations, cho phép gom dashboard dùng metrics CloudWatch từ nhiều tài khoản và nhiều Region về một chỗ.

Nên dùng Grafana hay CloudWatch dashboard?

Đây là câu hỏi Renova Cloud nhận được khá thường xuyên. Câu trả lời ngắn gọn: không nhất thiết phải chọn một.

  • CloudWatch phù hợp khi bạn cần giám sát nhanh các dịch vụ AWS với chi phí ban đầu thấp và không muốn cài đặt thêm gì.
  • Grafana phù hợp khi dữ liệu giám sát nằm ở nhiều nơi khác nhau – trên AWS, on-premise hay cloud khác – và bạn muốn gom tất cả về một dashboard chung cho đội DevOps, SRE và cả cấp quản lý.

Nếu tổ chức đã dùng Grafana cho các hệ thống hiện có, Amazon Managed Grafana là lựa chọn hợp lý để mở rộng sang workload trên AWS mà không phải tự vận hành thêm máy chủ. Bản thân AWS cũng cho rằng dùng kết hợp cả hai là cách tiếp cận phù hợp, tùy theo yêu cầu của người dùng, workload và ứng dụng.

Những lưu ý khi triển khai hệ thống giám sát

Từ kinh nghiệm triển khai thực tế, có vài điểm doanh nghiệp nên cân nhắc ngay từ đầu:

Chọn đúng metrics trước khi dựng dashboard

Thu thập quá nhiều metrics không cần thiết vừa tốn chi phí lưu trữ, vừa làm dashboard khó đọc. Nên bắt đầu từ những metrics liên quan trực tiếp đến trải nghiệm người dùng và cam kết SLA. 

Kiểm soát số lượng label

Mô hình dữ liệu đa chiều của Prometheus rất mạnh, nhưng gắn label có quá nhiều giá trị khác nhau (như user ID) sẽ làm số chuỗi thời gian tăng vọt, kéo theo chi phí và độ trễ truy vấn.

Giữ số lượng label ở mức hợp lý để tránh phình to hệ thống

Cảnh báo phải hành động được

Mỗi cảnh báo nên đi kèm người phụ trách và hướng xử lý rõ ràng. Nếu cảnh báo quá nhiều, mọi người sẽ dần bỏ qua và dễ bỏ sót sự cố thật.

Tính chi phí theo mô hình sử dụng

Amazon Managed Grafana tính phí theo số người dùng hoạt động, còn phần metrics tính theo lượng dữ liệu nạp vào và truy vấn. Ước tính trước sẽ giúp doanh nghiệp chủ động ngân sách.

Renova Cloud hỗ trợ doanh nghiệp xây dựng hệ thống giám sát trên AWS

Renova Cloud là đối tác tư vấn AWS tại Việt Nam, có nhiều năm kinh nghiệm triển khai DevOps và vận hành hạ tầng cloud. Tháng 3/2026, Renova Cloud đạt cấp độ AWS Premier Tier Partner và đã ba lần nhận giải AWS Partner of the Year – Vietnam (2023, 2024, 2026). Theo báo SGGP: đây là đối tác nội địa đầu tiên tại Việt Nam đạt AWS DevOps Competency, đồng thời sở hữu AWS Migration Competency. 

Trong các dự án chuyển đổi lên cloud, đội ngũ Renova Cloud giám sát và tối ưu môi trường cloud bằng Prometheus, Grafana, CloudWatch và Renovisor – giải pháp do Renova Cloud tự phát triển. Renova Cloud hỗ trợ từ thiết kế kiến trúc, tư vấn chọn tự vận hành hay dùng dịch vụ managed, đến dựng dashboard và thiết lập cảnh báo, để hệ thống giám sát chạy ổn định ngay từ đầu. 

Prometheus và Grafana là bộ đôi phổ biến trong giám sát hệ thống: Prometheus thu thập và lưu trữ metrics, Grafana hiển thị dữ liệu đó thành dashboard dễ theo dõi. Trên AWS, Amazon Managed Service for Prometheus và Amazon Managed Grafana cho phép doanh nghiệp dùng đúng hai công cụ này mà không phải tự cài đặt, nâng cấp hay vận hành máy chủ. 

Nếu doanh nghiệp bạn đang cần xây dựng hoặc tối ưu hệ thống giám sát trên AWS – hãy liên hệ Renova Cloud ngay để được tư vấn kiến trúc phù hợp với quy mô và ngân sách.

Câu hỏi thường gặp về Grafana và Prometheus trên AWS

Grafana có miễn phí không?

Có. Phiên bản Grafana mã nguồn mở hoàn toàn miễn phí. Grafana được phát hành theo giấy phép AGPLv3. Nếu dùng Amazon Managed Grafana, chi phí được tính theo số người dùng hoạt động.

Grafana khác Prometheus thế nào?

Prometheus thu thập, lưu trữ metrics và sinh cảnh báo. Grafana không lưu dữ liệu mà truy vấn từ Prometheus (và nhiều nguồn khác) để hiển thị thành dashboard.

Có bắt buộc dùng Prometheus với Grafana không?

Không. Grafana hỗ trợ nhiều nguồn dữ liệu như CloudWatch, Elasticsearch, InfluxDB, MySQL. Tuy vậy, Prometheus vẫn là lựa chọn phổ biến nhất cho môi trường Kubernetes.

Amazon Managed Service for Prometheus có tương thích với PromQL không?

Có. Dịch vụ tương thích hoàn toàn với Prometheus mã nguồn mở, nên bạn có thể dùng lại truy vấn PromQL và dashboard hiện có.