Giám sát hệ thống (System Monitoring) là một kỹ năng không thể thiếu trong quản trị máy chủ Linux hay VPS. Phiên bản Prometheus 3 vừa ra mắt đã mang đến hàng loạt cải tiến mạnh mẽ như giao diện người dùng (UI) hoàn toàn mới, hỗ trợ OpenTelemetry gốc (Native OTLP) và tối ưu hóa hiệu suất lưu trữ.
Bài viết này sẽ hướng dẫn bạn từng bước cài đặt Prometheus 3 kết hợp với Node Exporter trên Ubuntu 24.04 (hoặc Debian 13) để xây dựng một hệ thống giám sát chuẩn cho môi trường thực tế (production).
1. Yêu Cầu Chuẩn Bị
Trước khi bắt đầu, máy chủ của bạn cần đáp ứng:
- Hệ điều hành Ubuntu 24.04 hoặc Debian 13.
- Tối thiểu 2 GB RAM và 20 GB dung lượng ổ cứng trống.
- Quyền truy cập root hoặc user có quyền
sudo. - Mở sẵn các port: 9090 (dành cho Prometheus) và 9100 (dành cho Node Exporter) trên tường lửa.
2. Các Bước Cài Đặt Prometheus 3
Bước 1: Tạo User và Thư Mục Hệ Thống
Để đảm bảo an toàn, không nên chạy Prometheus bằng quyền root. Hãy tạo một user riêng biệt (không có quyền đăng nhập) và các thư mục cần thiết:

Bước 2: Tải Xuống Và Cài Đặt Prometheus 3
Thay vì tải thủ công, bạn có thể dùng đoạn script sau để hệ thống tự động dò tìm và tải phiên bản Prometheus mới nhất:
VER=$(curl -sI https://github.com/prometheus/prometheus/releases/latest | grep -i ^location | grep -o v[0-9.]* | sed s/^v//)
echo "Đang cài đặt Prometheus phiên bản $VER"
wget https://github.com/prometheus/prometheus/releases/download/v${VER}/prometheus-${VER}.linux-amd64.tar.gz
Giải nén và di chuyển file thực thi vào thư mục /usr/local/bin:
tar xvf prometheus-${VER}.linux-amd64.tar.gz
sudo cp prometheus-${VER}.linux-amd64/{prometheus,promtool} /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}
Lưu ý quan trọng: Khác với phiên bản 2.x, Prometheus 3 không còn bao gồm thư mục consoles/ và console_libraries/, nên bạn không cần copy chúng.
Bước 3: Cấu Hình Prometheus
Tạo file cấu hình chính /etc/prometheus/prometheus.yml:
sudo vi /etc/prometheus/prometheus.ymlThêm nội dung cấu hình sau. File này thiết lập giám sát chính máy chủ Prometheus, Node Exporter và một ví dụ về Blackbox Exporter dùng để ping kiểm tra uptime của một website (ví dụ như trang blog phongdinh.info.vn):
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node_exporter"
static_configs:
- targets: ["localhost:9100"]
- job_name: "blackbox_http"
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://phongdinh.info.vn
- https://google.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:9115
Đừng quên cấp quyền cho file vừa tạo:
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
Bước 4: Tạo Systemd Service Cho Prometheus
Để quản lý Prometheus tự động khởi động cùng Ubuntu, hãy tạo một unit file:
sudo vi /etc/systemd/system/prometheus.serviceThêm cấu hình dưới đây (Đã bao gồm cờ --web.enable-otlp-receiver hỗ trợ OpenTelemetry cho bản 3.x):
[Unit]
Description=Prometheus 3 Monitoring System
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--storage.tsdb.retention.time=30d \
--web.listen-address=0.0.0.0:9090 \
--web.enable-lifecycle \
--web.enable-otlp-receiver
Restart=always
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Tải lại systemd và khởi động dịch vụ:
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
sudo systemctl status prometheus
Nếu hệ thống báo active (running), Prometheus của bạn đã chạy thành công!
3. Cài Đặt Node Exporter (Thu Thập Metric Máy Chủ)
Node Exporter giúp bạn lấy các thông tin về CPU, RAM, Disk từ hệ điều hành.
Tạo user và tải Node Exporter:
sudo useradd --no-create-home --shell /bin/false node_exporter
VER=$(curl -sI https://github.com/prometheus/node_exporter/releases/latest | grep -i ^location | grep -o v[0-9.]* | sed s/^v//)
wget https://github.com/prometheus/node_exporter/releases/download/v${VER}/node_exporter-${VER}.linux-amd64.tar.gz
tar xvf node_exporter-${VER}.linux-amd64.tar.gz
sudo cp node_exporter-${VER}.linux-amd64/node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Tạo service cho Node Exporter:
sudo vi /etc/systemd/system/node_exporter.serviceNội dung file:
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Khởi động Node Exporter:
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
sudo systemctl status node_exporter
4. Cài Đặt Blackbox Exporter
Bước 1: Tạo User cho Blackbox Exporter
Tương tự như các dịch vụ trước, ta tạo một user riêng để chạy dịch vụ cho an toàn:
sudo useradd --no-create-home --shell /bin/false blackbox_exporter
Bước 2: Tải Xuống và Cài Đặt Blackbox Exporter
Chạy các lệnh sau để tự động tải phiên bản mới nhất, giải nén và phân quyền:
VER=$(curl -sI https://github.com/prometheus/blackbox_exporter/releases/latest | grep -i ^location | grep -o v[0-9.]* | sed s/^v//)
wget https://github.com/prometheus/blackbox_exporter/releases/download/v${VER}/blackbox_exporter-${VER}.linux-amd64.tar.gz
tar xvf blackbox_exporter-${VER}.linux-amd64.tar.gz
sudo cp blackbox_exporter-${VER}.linux-amd64/blackbox_exporter /usr/local/bin/
sudo chown blackbox_exporter:blackbox_exporter /usr/local/bin/blackbox_exporter

Bước 3: Cấu Hình Blackbox Exporter
Tạo thư mục chứa file cấu hình và copy file cấu hình mặc định (đã có sẵn module http_2xx dùng để check website) vào hệ thống:
sudo mkdir -p /etc/blackbox_exporter
sudo cp blackbox_exporter-${VER}.linux-amd64/blackbox.yml /etc/blackbox_exporter/
sudo chown -R blackbox_exporter:blackbox_exporter /etc/blackbox_exporter
Bước 4: Tạo Systemd Service và Khởi Động
Mở file cấu hình service mới:
sudo vi /etc/systemd/system/blackbox_exporter.serviceDán đoạn cấu hình sau vào:
[Unit]
Description=Prometheus Blackbox Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=blackbox_exporter
Group=blackbox_exporter
Type=simple
ExecStart=/usr/local/bin/blackbox_exporter --config.file=/etc/blackbox_exporter/blackbox.yml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Lưu lại, sau đó tải lại systemd và khởi động dịch vụ:
sudo systemctl daemon-reload
sudo systemctl enable --now blackbox_exporter
sudo systemctl status blackbox_exporter
5. Mở Cổng Tường Lửa (UFW) Và Truy Cập Giao Diện
Nếu bạn sử dụng tường lửa UFW, hãy mở cổng để có thể truy cập Web UI:
sudo ufw allow 9090/tcp
sudo ufw allow 9100/tcp
sudo ufw allow 9115/tcp
Bây giờ, bạn hãy mở trình duyệt và truy cập vào địa chỉ IP của máy chủ: http://<IP-may-chu>:9090

Tại giao diện Web UI mới của Prometheus 3, bạn có thể chuyển sang tab Status > Targets health để kiểm tra trạng thái các nguồn thu thập (Endpoints). Nếu tất cả hiển thị trạng thái UP, nghĩa là việc cài đặt đã hoàn tất và dữ liệu đang được thu thập trơn tru.


Tổng Kết
Bạn đã hoàn thành việc cài đặt và cấu hình Prometheus 3 trên Ubuntu 24.04. Bước tiếp theo, bạn có thể cân nhắc tích hợp thêm Grafana và sử dụng các câu lệnh PromQL để trực quan hóa dữ liệu về hệ thống, mạng lưới thành các Dashboard chuyên nghiệp. Chúc bạn ứng dụng thành công bài viết này vào công việc quản trị máy chủ!
Hướng Dẫn Toàn Tập Cài Đặt và Quản Trị Grafana Trên Ubuntu 24.04 / Debian 13 (Kèm Nginx & SSL): Tại đây
