DevOps 29 May, 2026 4 phút đọc

Theo dõi hệ thống với combo tools Prometheus – Grafana – AlertManager – Node Exporter – Cadvisor – Blackbox

buiducduy111
Founder · Fullstack Engineer

Bài toán

Nếu bạn là system admin, có cách nào để khi hệ thống gặp sự cố, server sẽ tự bắn message về cho chúng ta qua email, telegram… để chúng xử lý ngay lập tức thay vì chờ người dùng báo rồi mới vào xử lý – đối với các hệ thống lớn như Banking, chứng khoán thì deplay vài phút cũng đã gây ra tổn thất nghiêm trọng.

Kịch bản ví dụ ở đây, hệ thống mình có một số thành phần quan trọng:

Dịch vụTrạng tháiGhi chú
Postgre database (port: 5432)Down
RabbitMQDown
Backend 01 (NestJS)Down
Backend 02 (Laravel)Down

Hướng giải quyết

Với nhu cầu cơ bản như trên thì anh em có thể hoàn toàn có thể tự code được. Tuy nhiên, tự code một là tốn thời gian, 2 là chắc hẳn sẽ có bug cần thời gian mới ổn định.

Ngược lại, đã có rất nhiều tool chuyên nghiệp giải quyết rất tốt vấn đề này, mà đã là tool chuyên nghiệp thì lại có rất nhiều tính năng khó mà sử dụng hết, nên ở đây mình chi đưa ra lý do tại sao mình dùng các tool này.

Tên toolTính năng sử dụng chính
Prometheus– Thu thập metrics từ server/app/container
– Trigger alert khi có sự cố
– Đặc biệt mạnh với Query
Node ExporterDùng để lấy metrics của OS/server (CPU, RAM, Disk…)
CadvisorMonitor dành cho container Docker. Nếu không triển khai qua docker có thể bỏ service này
BlackboxCheck website/API uptime
AlertManagerTrình gửi cảnh báo (ở đây mình đang dùng email & telegram)
GrafanaMonitor giúp hiển thị dashboard, vẽ Chart… lấy data source từ các nguồn như Prometheus, Node Exporter…

Cài đặt và cấu hình

Combo các công cụ này bản chất chỉ là tool có sẵn, việc sử dụng và cài đặt cũng tương đối dễ dàng. Thời buổi này chỉ cần prompt cho AI theo đúng các nhu cầu trên là chúng ta sẽ có file docker compose để setup rồi.

Dưới đây là một script mình đã đóng gói, anh em chỉ cần chọn option, code sẽ sinh đầy đủ các file docker compose để triển khai ngay. Mình cũng đang sử dụng script này với các production của công ty.

https://github.com/buiducduy111/DevOpsWatcher

Hướng dẫn tạo Bot Telegram

1. Vào app telegram, nhắn tin với “BotFather” để tạo bot mới, BotFather sẽ yêu cầu bạn nhập tên Bot và sau đó sẽ tự tạo Bot và cho bạn một token có dạng <xxxxx:yyyyyy> (ví dụ: 210841:AAFLxasfdwjfnwqjf)

Tiếp theo, lấy chat ID, chat ID có thể là chat giữa bạn và bot, hoặc bạn add bot vào 1 group. Ví dụ ở đây mình sẽ add bot này vào 1 group để nó thông báo, hãy nhắn ít nhất 1 tin ở group đó để Bot có data chat id.

Truy cập api:

https://api.telegram.org/bot<BOT_TOKEN>/getUpdates

Reponse trả về có dạng:

Group chat ID sẽ có dạng số âm, Person chat ID sẽ là số dương.

Như vậy bạn đã có đầy đủ BOT_TOKEN và CHAT_ID để cấu hình.

Kiểm thử

Bây giờ mình sẽ stop thủ công một trong các Service xem hệ thống sẽ báo gì về telegram

Chúc anh em thành công!

Tác giả

buiducduy111

Founder trong lĩnh vực lập trình. Viết code từ 2009, khởi nghiệp từ 2018. Chia sẻ về kỹ năng lập trình, khởi nghiệp và tech updates — từ trải nghiệm thật.