Quay lại danh sách
Tin tức công nghệ

Xây Dựng Hệ Thống Monitoring All-in-One Miễn Phí: Prometheus, Grafana, Alertmanager Trên VPS 1GB RAM

18 tháng 5, 2026

Giới Thiệu: Tại Sao Cần Hệ Thống Monitoring All-in-One?

Trong thế giới vận hành hệ thống và ứng dụng hiện đại, giám sát (monitoring) không còn là tính năng "có thì tốt" mà là yêu cầu bắt buộc. Một hệ thống monitoring hiệu quả giúp bạn:

  • Phát hiện sự cố trước khi người dùng báo lỗi
  • Tối ưu hóa hiệu năng và tài nguyên hệ thống
  • Đưa ra quyết định dựa trên dữ liệu thực tế
  • Tuân thủ các yêu cầu về SLA (Service Level Agreement)

Tuy nhiên, nhiều doanh nghiệp nhỏ và startup gặp khó khăn với chi phí triển khai các giải pháp thương mại. Bài viết này sẽ hướng dẫn bạn xây dựng hệ thống monitoring all-in-one hoàn chỉnh, sử dụng bộ công cụ mã nguồn mở mạnh mẽ nhất hiện nay, chạy ổn định trên VPS chỉ với 1GB RAM.

Kiến Trúc Hệ Thống: Prometheus, Grafana và Alertmanager

Bộ ba công cụ này tạo thành stack monitoring chuẩn công nghiệp được cộng đồng CNTT toàn cầu tin dùng:

1. Prometheus - Công Cụ Thu Thập và Lưu Trữ Dữ Liệu

Prometheus là hệ thống monitoring và cảnh báo mã nguồn mở, được thiết kế cho môi trường cloud-native. Điểm mạnh của Prometheus:

  • Mô hình dữ liệu đa chiều với PromQL ngôn ngữ truy vấn mạnh mẽ
  • Pull-based architecture: chủ động thu thập metrics từ targets
  • Lưu trữ time-series data hiệu quả trên local disk
  • Hỗ trợ service discovery tự động

2. Grafana - Nền Tảng Trực Quan Hóa Dữ Liệu

Grafana biến dữ liệu thô thành dashboard trực quan, dễ hiểu. Tính năng nổi bật:

  • Tạo dashboard tùy chỉnh với nhiều loại visualization
  • Hỗ trợ nhiều nguồn dữ liệu (data sources)
  • Cơ chế alerting tích hợp (từ phiên bản 8.0+)
  • Templates và variables cho dashboard động

3. Alertmanager - Hệ Thống Quản Lý Cảnh Báo

Xử lý cảnh báo từ Prometheus và các nguồn khác:

  • Deduplication: gộp nhiều cảnh báo liên quan thành một
  • Grouping: nhóm cảnh báo theo service, severity
  • Routing: định tuyến cảnh báo đến kênh phù hợp
  • Silencing: tạm dừng cảnh báo trong thời gian bảo trì

Chuẩn Bị Môi Trường: VPS 1GB RAM

Với tài nguyên hạn chế, việc tối ưu hóa cấu hình là yếu tố then chốt. Yêu cầu tối thiểu:

  • VPS/Cloud Server: 1 vCPU, 1GB RAM, 20GB SSD
  • Hệ điều hành: Ubuntu 22.04 LTS hoặc CentOS 8
  • Kết nối mạng: Public IP với ports mở (3000, 9090, 9093)
  • Quyền truy cập: root hoặc user với sudo privileges

Lưu ý quan trọng: Mặc dù hệ thống có thể chạy trên 1GB RAM, bạn nên thiết lập swap space (2-4GB) để đảm bảo ổn định khi tải cao.

Triển Khai Từng Bước: Cài Đặt và Cấu Hình

Bước 1: Cài Đặt Prometheus

Tạo user và thư mục cho Prometheus:

# Tạo user prometheus
sudo useradd --no-create-home --shell /bin/false prometheus

# Tạo thư mục cấu hình và dữ liệu
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Tải và cài đặt Prometheus phiên bản mới nhất:

# Tải Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz

# Giải nén và di chuyển binary
tar xvf prometheus-2.47.0.linux-amd64.tar.gz
sudo cp prometheus-2.47.0.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-2.47.0.linux-amd64/promtool /usr/local/bin/

Cấu hình systemd service để Prometheus chạy như daemon:

# Tạo file service
sudo nano /etc/systemd/system/prometheus.service

# Nội dung cấu hình tối ưu cho 1GB RAM
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--storage.tsdb.retention.time=15d \
--web.listen-address=0.0.0.0:9090 \
--web.max-connections=50 \
--query.max-concurrency=20

[Install]
WantedBy=multi-user.target

Bước 2: Cài Đặt Node Exporter

Node Exporter thu thập system metrics (CPU, RAM, Disk, Network):

# Tải và cài đặt Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
tar xvf node_exporter-1.6.0.linux-amd64.tar.gz
sudo cp node_exporter-1.6.0.linux-amd64/node_exporter /usr/local/bin/

# Tạo systemd service
sudo nano /etc/systemd/system/node_exporter.service

Bước 3: Cài Đặt Grafana

Cài đặt Grafana từ repository chính thức:

# Thêm GPG key và repository
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

# Cài đặt Grafana
sudo apt-get update
sudo apt-get install -y grafana

Cấu hình Grafana cho VPS tài nguyên thấp:

# Chỉnh sửa file cấu hình
sudo nano /etc/grafana/grafana.ini

# Tối ưu memory usage
[server]
http_port = 3000

[database]
max_idle_conn = 10
max_open_conn = 20

[security]
admin_user = admin
admin_password = your_secure_password_here

Bước 4: Cài Đặt Alertmanager

Cài đặt Alertmanager để xử lý cảnh báo:

# Tải và cài đặt Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
tar xvf alertmanager-0.25.0.linux-amd64.tar.gz
sudo cp alertmanager-0.25.0.linux-amd64/alertmanager /usr/local/bin/
sudo cp alertmanager-0.25.0.linux-amd64/amtool /usr/local/bin/

Cấu Hình Tích Hợp và Cảnh Báo

Cấu Hình Prometheus Scrape Targets

Chỉnh sửa file prometheus.yml để thu thập metrics:

global:
scrape_interval: 30s
evaluation_interval: 30s

alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']

rule_files:
- "alert_rules.yml"

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

- job_name: 'node'
static_configs:
- targets: ['localhost:9100']

Thiết Lập Alert Rules

Tạo file alert_rules.yml với các rules cơ bản:

groups:
- name: node_alerts
rules:
- alert: HighMemoryUsage
expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 85
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage on {{ $labels.instance }}"
description: "Memory usage is {{ $value }}%"

- alert: HighCPUUsage
expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning

Cấu Hình Alertmanager

Thiết lập cảnh báo qua email và Slack:

route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'email-notifications'

receivers:
- name: 'email-notifications'
email_configs:
- to: '[email protected]'
from: '[email protected]'
smarthost: 'smtp.gmail.com:587'
auth_username: '[email protected]'
auth_password: 'your-app-password'
send_resolved: true

Tạo Dashboard Grafana Chuyên Nghiệp

Kết Nối Data Sources

Đăng nhập Grafana (http://your-server-ip:3000) và thêm Prometheus làm data source:

  • Navigation → Configuration → Data Sources
  • Chọn Prometheus
  • URL: http://localhost:9090
  • Access: Server (default)
  • Save & Test

Import Dashboard Mẫu

Grafana cung cấp hàng ngàn dashboard community:

  1. Truy cập Grafana Dashboards website
  2. Tìm "Node Exporter Full" (ID: 1860)
  3. Copy ID và import trong Grafana
  4. Chọn Prometheus data source
  5. Customize theo nhu cầu

Tạo Dashboard Tùy Chỉnh

Xây dựng dashboard cơ bản giám sát server:

  • Panel 1: CPU Usage (Graph)
  • Panel 2: Memory Usage (Gauge)
  • Panel 3: Disk I/O (Stat)
  • Panel 4: Network Traffic (Time series)
  • Panel 5: System Load (Heatmap)

Tối Ưu Hiệu Năng Cho VPS 1GB RAM

Đảm bảo hệ thống chạy ổn định với tài nguyên hạn chế:

1. Tối Ưu Prometheus

  • Giảm scrape_interval xuống 60s cho targets không quan trọng
  • Điều chỉnh retention.time phù hợp (7-15 ngày)
  • Sử dụng recording rules để giảm query load
  • Bật compression cho WAL (write-ahead log)

2. Tối Ưu Grafana

  • Giới hạn số lượng panels mỗi dashboard (≤ 20)
  • Sử dụng query caching
  • Tắt features không cần thiết (alerting nếu dùng Alertmanager)
  • Điều chỉnh max_open_conn và max_idle_conn

3. Giám Sát Tài Nguyên Hệ Thống

Tạo alerts cho chính monitoring stack:

- alert: PrometheusDown
expr: up{job="prometheus"} == 0
for: 1m

- alert: GrafanaDown
expr: up{job="grafana"} == 0
for: 1m

Mở Rộng Hệ Thống Monitoring

Khi nhu cầu phát triển, bạn có thể mở rộng hệ thống:

1. Giám Sát Ứng Dụng

  • Web servers: Nginx/Apache exporters
  • Databases: MySQL/PostgreSQL/MongoDB exporters
  • Message queues: RabbitMQ/Kafka exporters
  • Containers: cAdvisor cho Docker metrics

2. High Availability

Triển khai Prometheus HA với:

  • Hai instances Prometheus độc lập
  • Grafana kết nối cả hai data sources
  • Alertmanager cluster (2-3 nodes)
  • Remote storage (Thanos/Cortex) cho long-term retention

3. Tích Hợp Với Công Cụ Khác

  • Log management: Loki (Grafana Labs)
  • Tracing: Jaeger/Tempo
  • CI/CD: Jenkins/GitLab CI exporters

Kết Luận: Lợi Ích Doanh Nghiệp

Hệ thống monitoring all-in-one với Prometheus, Grafana và Alertmanager mang lại giá trị đáng kể:

Về mặt tài chính: Tiết kiệm hàng ngàn USD so với giải pháp thương mại, đặc biệt quan trọng với startup và doanh nghiệp vừa và nhỏ.

Về mặt kỹ thuật: Cung cấp visibility toàn diện vào hệ thống, giúp đội ngũ DevOps/IT vận hành hiệu quả, giảm thời gian xử lý sự cố (MTTR).

Về mặt chiến lược: Dữ liệu monitoring trở thành tài sản số, hỗ trợ ra quyết định capacity planning, performance optimization và đảm bảo chất lượng dịch vụ.

Với hướng dẫn chi tiết trong bài viết, bạn hoàn toàn có thể triển khai hệ thống monitoring chuyên nghiệp ngay hôm nay, bắt đầu từ VPS 1GB RAM và mở rộng theo nhu cầu phát triển của doanh nghiệp.

Lời khuyên cuối cùng: Hãy bắt đầu với cấu hình cơ bản, monitor chính hệ thống monitoring trước, sau đó từng bước mở rộng phạm vi giám sát. Ưu tiên các metrics business-critical và thiết lập cảnh báo có ý nghĩa thay vì cảnh báo nhiễu.