0

Kibana Alerting vs Prometheus Alertmanager – Báo động khi nào? Báo cái gì?

I. 🎯 Mở đầu: Báo động – vũ khí hai lưỡi

Trong một thế giới mà hạ tầng số ngày càng phức tạp, hệ thống phân tán, microservices, container, cloud-native... thì alerting (hệ thống cảnh báo) không còn là tính năng “nên có”, mà là yếu tố sống còn.

Tuy nhiên, khi mọi thứ đều có thể cảnh báo – CPU cao, RAM đầy, log lỗi, mạng chậm, người dùng thoát app – thì cũng dễ rơi vào “alert fatigue”:

Không biết đâu là cảnh báo quan trọng, không ai phản ứng đúng lúc, và cả team dần trở nên “miễn nhiễm” với thông báo.

Vấn đề không còn nằm ở việc “Cảnh báo có hoạt động không?”
Mà là:

  • Báo động cái gì?
  • Khi nào thì nên báo?
  • Cảnh báo cho ai?
  • Và hệ thống nên phản ứng thế nào?

Đó là lý do vì sao các công cụ alerting không chỉ cần chính xác – mà còn cần thông minh, linh hoạt, dễ tích hợp, và quan trọng nhất: phù hợp với loại dữ liệu bạn đang theo dõi.

Trong bài viết này, ta sẽ khám phá hai công cụ phổ biến nhất hiện nay:

  • 🟢 Kibana Alerting – một phần của Elastic Stack, mạnh khi làm việc với log, search, dữ liệu người dùng
  • 🔵 Prometheus Alertmanager – “bộ não cảnh báo” trong thế giới metric-based monitoring với Prometheus & Grafana

Vậy rốt cuộc: Nên dùng cái nào? Cho tình huống nào? Có thể kết hợp cả hai không?
Hãy cùng bắt đầu giải mã trong bài viết này!

II. 🔍 Alerting là gì? Tại sao lại quan trọng?

🛎️ Alerting – Hệ thống báo động thời hiện đại

Alerting là quá trình tự động giám sát và phát hiện bất thường, sau đó thông báo (alert) đến người quản trị hoặc hệ thống khác để phản ứng kịp thời. Nó giống như chuông báo cháy trong trung tâm dữ liệu – không ai muốn nghe, nhưng một khi vang lên thì không thể ngó lơ.

"Alert tốt là alert đúng thời điểm, cho đúng người, và dễ hành động."

⚠️ Nếu không có alert tốt, chuyện gì sẽ xảy ra?

  • Hệ thống chậm dần đều mà không ai hay biết.
  • Người dùng rời bỏ app vì lỗi nhưng không ai ghi nhận.
  • Một container chết âm thầm → ảnh hưởng chain service → khách hàng không checkout được.
  • Và tệ nhất: Khi khách hàng gọi điện, bạn mới biết hệ thống “đã chết từ lâu”.

🚨 Alerting không chỉ là “báo khi lỗi”

Một hệ thống alerting hiện đại cần:

  • Theo dõi trạng thái hệ thống & người dùng
  • Phát hiện bất thường theo thời gian thực (real-time)
  • Tự động gửi cảnh báo đa kênh: email, Slack, Telegram, Opsgenie, Webhook...
  • Hỗ trợ điều kiện logic phức tạp (nhiều nguồn dữ liệu, nhiều ràng buộc)
  • Hạn chế spam – cảnh báo lặp, alert không quan trọng

🧭 Alert tốt = Giảm downtime + Tăng phản ứng + Giữ chân khách hàng

Vậy làm sao để xây dựng hệ thống alert tốt?

Bạn cần:

  • Công cụ phù hợp với loại dữ liệu (log hay metric)
  • Giao diện dễ cấu hình & bảo trì
  • Hỗ trợ tích hợp và mở rộng trong pipeline DevOps / Observability

Đó là lúc chúng ta cần đặt lên bàn cân Kibana AlertingPrometheus Alertmanager – hai “ông lớn” trong thế giới cảnh báo.

➡️ Hãy tiếp tục đến phần tiếp theo để xem cách mỗi công cụ định nghĩa & triển khai alerting như thế nào.

III. 📌 Giới thiệu tổng quan về 2 công cụ

🔶 Kibana Alerting – Cảnh báo từ dữ liệu log, search và observability stack

Kibana là một phần của Elastic Stack (ELK) – thường được dùng để xử lý log, sự kiện người dùng, và dữ liệu dạng text.

Tính năng Alerting của Kibana cho phép bạn:

  • Tạo rule cảnh báo dựa trên search query hoặc metric từ Elasticsearch
  • Thiết lập ngưỡng điều kiện: ví dụ, nếu có hơn 50 lỗi HTTP 500 trong 5 phút.
  • Tùy chỉnh hành động cảnh báo: gửi qua email, Slack, Webhook, Microsoft Teams...
  • Theo dõi availability, APM service, logs, metrics, và security events chỉ với vài cú click.

🔧 Tình huống điển hình:
Bạn muốn theo dõi số lượng user đăng nhập thất bại trong 10 phút gần nhất từ 1 IP → Kibana là lựa chọn hoàn hảo.

✅ Thế mạnh: trực quan, dễ cấu hình, tích hợp sâu với Elasticsearch.
⚠️ Hạn chế: phụ thuộc vào Elastic Stack, chưa mạnh ở alert metric phức tạp real-time.


🔷 Prometheus Alertmanager – Cảnh báo từ thế giới metrics & giám sát hệ thống

Prometheus là công cụ monitoring dạng time-series phổ biến bậc nhất trong thế giới DevOps. Nó thu thập dữ liệu metrics định kỳ, từ hệ thống, service, database...

Alertmanager là thành phần mở rộng giúp xử lý cảnh báo sinh ra từ Prometheus:

  • Tự động gửi cảnh báo khi giá trị vượt ngưỡng (ví dụ: CPU > 90%, RAM còn < 500MB).
  • Hỗ trợ grouping & silencing alert (hạn chế spam khi hàng loạt alert cùng lúc).
  • Gửi cảnh báo qua nhiều kênh: Slack, email, PagerDuty, Opsgenie, Webhook...
  • Tích hợp mạnh mẽ với Grafana, Thanos, Kubernetes, v.v.

🔧 Tình huống điển hình:
Bạn muốn biết khi nào Pod trong Kubernetes bị crash, hoặc request latency tăng cao → Prometheus + Alertmanager là lựa chọn chuẩn.

✅ Thế mạnh: real-time alert từ metric, tích hợp sâu với hệ thống cloud-native.
⚠️ Hạn chế: cần viết rule YAML, thiếu UI trực quan với người mới.


🥊 Khi nào chọn cái nào?

Yêu cầu / Tính năng Kibana Alerting Prometheus Alertmanager
Nguồn dữ liệu chính Log, search, Elasticsearch Metrics, Prometheus, exporters
Mức độ real-time Gần real-time Real-time
Dễ cấu hình UI ✅ Có UI trực quan ❌ Chủ yếu dùng file cấu hình
Gửi alert đa kênh ✅ Có ✅ Có
Tích hợp hệ thống cloud Trung bình ✅ Rất tốt
Biểu đồ giám sát kèm theo ✅ Kibana Dashboard ✅ Grafana Dashboard

➡️ Tiếp theo, chúng ta sẽ đi sâu hơn vào so sánh tính năng, ngữ cảnh sử dụng thực tế, và thậm chí là cách kết hợp cả hai trong một hệ thống hiện đại!

IV. ⚔️ So sánh trực tiếp: Kibana Alerting vs Prometheus Alertmanager

Tiêu chí Kibana Alerting Prometheus Alertmanager
Nguồn dữ liệu Elasticsearch (log, APM, trace, metric...) Prometheus (metrics dạng time-series)
Cách tạo rule cảnh báo Giao diện trực quan, dùng query DSL hoặc UI Viết rule bằng YAML trong Prometheus (alert.rules.yml)
Logic xử lý alert Trigger → Condition → Action
Action: gửi mail, webhook, Slack...
Nhận alert từ Prometheus → routing, grouping, silencing, retry alert nếu lỗi
Kênh gửi cảnh báo Email, Slack, webhook, ghi vào index mới, v.v. Email, Slack, webhook, PagerDuty, Opsgenie, VictorOps, v.v.
Khả năng grouping & routing Tương đối đơn giản, nhóm dựa trên rule Mạnh mẽ, cấu hình routing phức tạp theo label, nhóm alert theo logic riêng
Tích hợp hệ thống Dùng hiệu quả khi bạn đã triển khai Elastic Stack Tốt trong hệ sinh thái Prometheus / Kubernetes / Grafana
Khả năng mở rộng Tốt khi dùng với Elasticsearch cluster Tốt trong hệ thống monitoring lớn, kết hợp với nhiều exporter và receiver khác
Use-case tiêu biểu Phân tích log, cảnh báo bất thường người dùng, business logic Monitoring hệ thống, cảnh báo tài nguyên server, downtime, scaling

💡 Gợi ý: Nếu bạn cần trực quan log + cảnh báo user behavior → Kibana là ưu tiên.
Còn nếu bạn thiên về monitoring hệ thống hạ tầng → Alertmanager sẽ là lựa chọn phù hợp hơn.


V. 🧪 Một vài tình huống thực tế

Tình huống thực tế Nên dùng công cụ nào? Lý do
Muốn cảnh báo khi có lỗi 500 xuất hiện nhiều lần trong log API 🟪 Kibana Alerting Dữ liệu log có sẵn trong Elasticsearch, dễ filter theo text/query DSL
Cảnh báo khi CPU server vượt ngưỡng 90% trong 5 phút 🟧 Prometheus Alertmanager Metrics time-series rất phù hợp với Prometheus
Cảnh báo cho nhóm Dev khi có lỗi ứng dụng, và gửi qua Slack 🟪 Kibana Alerting Tích hợp sẵn connector Slack, có thể gắn tag theo lỗi
Nhóm SRE cần theo dõi memory, disk, network của 100+ node trong Kubernetes 🟧 Prometheus Alertmanager Tối ưu cho monitoring hệ thống lớn, nhiều node, real-time
Cần cảnh báo nếu tỉ lệ đăng nhập thất bại tăng đột biến 🟪 Kibana Alerting Dễ viết rule dựa trên field phân tích hành vi người dùng
Cảnh báo theo mô hình: nếu service A fail, delay báo service B 🟧 Prometheus Alertmanager Alertmanager hỗ trợ routing logic phức tạp, group theo label
Cảnh báo nếu tổng số order trong 1h thấp hơn bình thường 🟪 Kibana Alerting Business metrics dạng log hoặc doc count dễ cấu hình trong Kibana
Cảnh báo về sự cố cần gửi đồng thời qua Slack và Email cho các nhóm khác nhau 🔀 Cả hai (Kibana + Alertmanager) Kết hợp cảnh báo theo loại dữ liệu (log vs metrics), gửi đúng nhóm

VI. 💡 Khi nào nên dùng cả hai?

Trên thực tế, nhiều hệ thống hiện đại dùng cả Kibana Alerting và Alertmanager song song:

  • Kibana theo dõi log: cảnh báo lỗi nghiệp vụ, bất thường người dùng.
  • Prometheus + Alertmanager theo dõi hệ thống: CPU, RAM, network, uptime.

📦 Ví dụ hệ thống kết hợp:

  • Dữ liệu log (nghiệp vụ, API) → ship vào Elasticsearch → alert qua Kibana.
  • Metrics hệ thống (host, container, DB) → Prometheus scrape → gửi alert qua Alertmanager.
  • Giao diện hiển thị dashboard: dùng Grafana cho metrics, Kibana cho log.

Kết hợp cả hai giúp bạn có cái nhìn vừa sâu – vừa rộng, xử lý vấn đề nhanh chóng từ cả góc độ người dùng lẫn hạ tầng.


VII. 📘 Kết luận: Đúng công cụ – đúng cảnh báo

Trong thế giới DevOps và Observability, cảnh báo (alert) không chỉ là "phát hiện lỗi" mà còn là "phát hiện đúng lỗi, đúng lúc, đúng người".

  • Kibana Alerting phù hợp khi bạn:

    • Muốn giám sát hành vi người dùng, phân tích log hệ thống, APM hoặc dữ liệu business.
    • Đã dùng Elasticsearch làm nguồn dữ liệu chính.
    • Ưu tiên giao diện người dùng thân thiện để tạo cảnh báo.
  • Prometheus Alertmanager phù hợp khi bạn:

    • Cần giám sát hệ thống server, pod, container với dữ liệu metrics dạng time-series.
    • Đã có hệ sinh thái Prometheus, Grafana, Kubernetes.
    • Muốn xử lý cảnh báo với logic phức tạp: grouping, routing, silencing,...

✅ Không có công cụ nào “tốt nhất toàn diện”. Nhưng có công cụ “phù hợp nhất với bài toán của bạn”.


VIII. 📌 Gợi ý hành động


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í