Chuông điện thoại reo liên hồi, kênh Telegram thông báo sự cố của đội ngũ trực hệ thống (NOC) tràn ngập hàng trăm tin nhắn cảnh báo đỏ rực: Host unreachable, Zabbix agent is not available, High CPU Load. Bạn vội vàng bật máy tính, SSH vào từng server ở Singapore, Nhật Bản và Frankfurt để kiểm tra. Kết quả? Hệ thống vẫn chạy êm ái, tải CPU ở mức thấp, dịch vụ web vẫn phản hồi bình thường.
Thủ phạm thực sự không nằm ở máy chủ, mà là do một tuyến cáp quang biển quốc tế vừa gặp sự cố, dẫn đến tình trạng rớt gói tin (packet loss) và high ping diện rộng.
Nếu bạn đang quản lý một hạ tầng mạng phân tán, kịch bản báo động giả (false alarm) này chắc chắn không hề xa lạ. Để chấm dứt triệt để tình trạng này, các kỹ sư hệ thống thường chọn phương pháp triển khai Zabbix Proxy trên VPS để giám sát tại từng khu vực địa lý. Giải pháp kiến trúc này hoạt động ra sao và làm thế nào để cấu hình tối ưu, tận dụng các công nghệ mới của Zabbix 7.0 nhằm chống mất dữ liệu? Hãy cùng bóc tách chi tiết trong bài viết dưới đây.
Nỗi đau đứt cáp và cơn ác mộng false alarm của dân NOC
Giám sát tập trung (Direct Monitoring) và bài toán độ trễ xuyên quốc gia
Trong mô hình giám sát tập trung truyền thống, Zabbix Server đặt tại một trung tâm dữ liệu (ví dụ: Hà Nội) sẽ phải trực tiếp hỏi thăm (polling) các Agent cài trên máy chủ ở khắp nơi trên thế giới. Mô hình này nhanh chóng bộc lộ điểm yếu lớn khi đối mặt với sự thiếu ổn định của mạng WAN quốc tế:
- Giới hạn thời gian chờ (Timeout): Theo cấu hình mặc định, Zabbix Server chỉ chờ khoảng 3 giây để nhận phản hồi từ một Agent. Khi đường truyền chập chờn, độ trễ mạng (latency) tăng cao sẽ dễ dàng khiến thời gian phản hồi vượt ngưỡng 3 giây. Lúc này, Zabbix sẽ đánh dấu metric đó là Not supported và bỏ qua lượt thu thập dữ liệu.
- Hàm kiểm tra sự sống
nodata() quá nhạy: Để kiểm tra xem một máy chủ có bị mất kết nối hay không, các mẫu cấu hình (template) thường dùng hàm nodata() (ví dụ: không nhận được dữ liệu ping trong 5 phút thì báo động). Khi mạng quốc tế đứt đoạn, Zabbix Server không nhận được chỉ số, hệ thống lập tức hiểu lầm là server đầu xa đã ngừng hoạt động và kích hoạt trigger báo động lỗi.
- Lũ thông báo (Notification Floods): Chỉ cần một tuyến cáp quang gặp sự cố, hàng loạt server tại khu vực đó sẽ đồng loạt mất kết nối với Zabbix Server trung tâm. Hậu quả là hàng trăm cảnh báo được gửi đi cùng lúc, làm loãng các thông tin sự cố thực sự và gây ra sự mệt mỏi (alert fatigue) cho đội ngũ vận hành.
Zabbix Proxy thay đổi luật chơi ra sao?
Zabbix Proxy được sinh ra để đóng vai trò như một trạm thu thập dữ liệu (data collector) độc lập tại địa phương. Thay vì kết nối xuyên quốc gia, các máy chủ tại một khu vực (ví dụ: cụm server tại Singapore) sẽ báo cáo dữ liệu trực tiếp về một Zabbix Proxy được cài đặt trên VPS cùng nằm tại Singapore.
Sự thay đổi này mang lại những giá trị cốt lõi:
- Thu thập cục bộ: Việc giao tiếp giữa Agent và trạm giám sát giờ đây chỉ diễn ra trong phạm vi mạng LAN nội bộ hoặc mạng khu vực với độ trễ cực thấp.
- Đệm dữ liệu (Data Buffering): Đây là vũ khí lợi hại của Proxy. Nếu đường truyền từ Singapore về Server trung tâm ở Việt Nam bị đứt, Proxy vẫn miệt mài thu thập dữ liệu từ các server xung quanh và lưu đệm vào cơ sở dữ liệu của chính nó (như SQLite hoặc PostgreSQL).
- Tự động bù đắp dữ liệu: Khi kết nối internet quốc tế khôi phục, Proxy sẽ gửi tuần tự toàn bộ dữ liệu đã lưu đệm về trung tâm. Zabbix Server tiếp nhận các dữ liệu này theo đúng mốc thời gian (timestamp) gốc, tự động lấp đầy các khoảng trống trên biểu đồ và giải quyết các cảnh báo
nodata() trước đó.
Bản chất của không độ trễ
Cần hiểu rõ rằng, không có hệ thống mạng WAN nào là không độ trễ. Bản chất của việc dùng Zabbix Proxy là cô lập hoàn toàn các Agent nội vùng khỏi sự bất ổn của đường truyền quốc tế. Việc thu thập dữ liệu giữa Agent và Proxy diễn ra mượt mà không có độ trễ WAN. Đường truyền quốc tế lúc này chỉ còn đóng vai trò là kênh đồng bộ dữ liệu giữa Proxy và Server trung tâm, một quá trình đã được bảo vệ an toàn bởi cơ chế lưu đệm.

Kiến trúc Zabbix Proxy giúp đệm dữ liệu cục bộ, cô lập máy chủ Agent khỏi sự cố đứt cáp quang trên đường truyền WAN quốc tế.
Để nắm bắt tường tận ranh giới giữa các khái niệm mạng và định tuyến, bạn có thể tham khảo bài viết hướng dẫn phân biệt VPS, Proxy và VPN để lựa chọn giải pháp đúng nhu cầu của chúng tôi.
Kiến trúc triển khai Zabbix Proxy trên VPS cho hạ tầng phân tán
Active Proxy hay Passive Proxy?
Khi lên kế hoạch triển khai Proxy qua môi trường Public Internet, bạn sẽ đứng trước hai lựa chọn về chế độ kết nối. Việc hiểu rõ luồng mạng sẽ giúp bạn tránh được nhiều rắc rối về bảo mật tường lửa.
- Active Proxy (Proxy chủ động – Mode 0): Ở chế độ này, Proxy trên VPS sẽ chủ động thiết lập kết nối TCP (cổng 10051) hướng tới Zabbix Server trung tâm để tải cấu hình và đẩy dữ liệu về. Đây là phương án vô cùng lý tưởng cho môi trường Internet vì bạn không cần mở cổng Inbound trên VPS Proxy. Proxy có thể nằm ẩn sau NAT hoặc tường lửa chi nhánh mà vẫn hoạt động trơn tru. Ngoài ra, tính năng đồng bộ cấu hình với tham số
ProxyConfigFrequency giúp Active Proxy cập nhật cấu hình gần như tức thời mà không gây tốn băng thông.
- Passive Proxy (Proxy bị động – Mode 1): Zabbix Server trung tâm sẽ phải chủ động mở kết nối ra Internet để vươn tới Proxy. Điều này bắt buộc bạn phải có IP tĩnh (Public IP) cho Proxy và mở cổng Inbound 10051 trên tường lửa. Mô hình này thường phù hợp cho các vùng mạng DMZ nội bộ với chính sách an ninh cấm hoàn toàn kết nối Outbound.
Đối với cụm máy chủ đa quốc gia, Active Proxy luôn là giải pháp được giới sysadmin ưu tiên lựa chọn.

Phân tích luồng mạng: Active Proxy chủ động kết nối ra ngoài giúp vượt Firewall dễ dàng, rất phù hợp cho môi trường Public Internet.
Yêu cầu VPS và khuyến nghị phiên bản
Trạm Proxy thực chất là một tiến trình chạy ngầm rất nhẹ, được viết bằng ngôn ngữ C. Đối với các cụm máy chủ quy mô vừa (dưới 1.000 chỉ số mới mỗi giây – NVPS), cơ sở dữ liệu SQLite3 là sự kết hợp phù hợp vì tính gọn nhẹ, tự động khởi tạo file database, không cần cài đặt database server cồng kềnh.
Nếu bạn đang tìm kiếm và chuẩn bị hạ tầng mạng mới, hãy xem qua tài liệu hướng dẫn chuyên sâu về cách chọn mua VPS và các thông số quan trọng (Cập nhật 2025) để tối ưu hóa ngân sách và hiệu năng.
Cấu hình VPS tham khảo cho SQLite:
- vCPU: 1 đến 2 Core. Nếu hệ thống sử dụng nhiều quy tắc tiền xử lý dữ liệu (Preprocessing) tại biên, trang bị 2 Core sẽ giúp giảm tải.
- RAM: 1 GB đến 2 GB. Thông số này đặc biệt quan trọng khi cấu hình chế độ Hybrid Buffer (sẽ được đề cập ở phần sau) để cấp phát bộ nhớ dùng chung.
- Disk: 10 GB đến 20 GB ổ đĩa SSD/NVMe. SQLite nhạy cảm với tốc độ đọc ghi (I/O) ngẫu nhiên. Dung lượng này dùng để làm kho đệm lưu trữ dữ liệu phòng trường hợp cáp quang đứt liên tục trong nhiều ngày.
Khuyến nghị phiên bản: Nên đồng bộ phiên bản Zabbix Proxy với Server trung tâm, ưu tiên Zabbix 7.0 LTS (được hỗ trợ dài hạn đến tháng 6/2029) để tận dụng các cơ chế đệm dữ liệu thông minh và kiến trúc High Availability mới.
Step-by-step: Thực hành triển khai Zabbix Proxy trên VPS để giám sát
Sau khi đã chuẩn bị một VPS (ví dụ chạy Ubuntu 22.04 hoặc 24.04 LTS), chúng ta sẽ bắt tay vào cấu hình. Quá trình triển khai Zabbix Proxy trên VPS để giám sát đòi hỏi sự tỉ mỉ ở các tham số chống mất dữ liệu.
Bước 1: Chuẩn bị môi trường & cài đặt database SQLite
Cập nhật hệ thống:
sudo apt update && sudo apt upgrade -y
Tải gói cài đặt kho lưu trữ Zabbix 7.0 chính thức:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu$(lsb_release -rs)_all.deb
Cài đặt kho lưu trữ và cập nhật danh sách gói:
sudo dpkg -i zabbix-release_latest+ubuntu$(lsb_release -rs)_all.deb
sudo apt update
Tiến hành cài đặt gói Zabbix Proxy phiên bản SQLite3:
sudo apt install -y zabbix-proxy-sqlite3
Tạo thư mục an toàn để Proxy tự động sinh file database khi khởi chạy, bao gồm thiết lập quyền sở hữu và phân quyền:
sudo mkdir -p /var/lib/zabbix
sudo chown zabbix:zabbix /var/lib/zabbix
sudo chmod 755 /var/lib/zabbix
Bước 2: Khai báo các thông số cốt lõi trong zabbix_proxy.conf
Đây là bước mang tính quyết định để hệ thống chống chọi với tình trạng đứt cáp. Mở file cấu hình:
sudo nano /etc/zabbix/zabbix_proxy.conf
Bạn cần tinh chỉnh các tham số kỹ thuật trọng tâm sau:
# Chế độ Active Proxy
ProxyMode=0
# IP hoặc Domain của Zabbix Server trung tâm
Server=203.0.113.10
# Tên định danh của Proxy, bắt buộc phải khớp chữ hoa/thường trên Frontend
Hostname=Proxy-Singapore-01
# Đường dẫn file SQLite (Proxy tự tạo lần đầu)
DBName=/var/lib/zabbix/zabbix_proxy.db
# Thay thế ConfigFrequency cũ bằng tham số chuẩn của Zabbix 7.0
ProxyConfigFrequency=10
# ---- CẤU HÌNH BỘ ĐỆM DỮ LIỆU (CHỐNG MẤT DATA KHI ĐỨT CÁP) ----
# Sử dụng chế độ Hybrid thông minh
ProxyBufferMode=hybrid
# Dung lượng RAM cấp phát để đệm dữ liệu (tối ưu hiệu năng ghi)
ProxyMemoryBufferSize=64M
# Lưu trữ dữ liệu ngoại tuyến khi đứt cáp tối đa 168 giờ (7 ngày)
ProxyOfflineBuffer=168
# Giữ lại dữ liệu sau khi đồng bộ thành công về Server
# LƯU Ý CHÍ MẠNG: BẮT BUỘC bằng 0 khi dùng chế độ hybrid
ProxyLocalBuffer=0
Phân tích kỹ thuật chuyên sâu:
ProxyConfigFrequency=10: Từ bản Zabbix 7.0, tham số ConfigFrequency (công nghệ cũ) đã bị loại bỏ hoàn toàn (deprecated). Thay vào đó, Zabbix sử dụng cơ chế đồng bộ gia tăng qua tham số ProxyConfigFrequency (mặc định 10 giây), giúp cập nhật cấu hình linh hoạt mà không tiêu tốn băng thông quốc tế.
ProxyBufferMode=hybrid: Một bước tiến mạnh mẽ về kiến trúc. Ở điều kiện bình thường, Proxy đẩy dữ liệu trực tiếp vào RAM (64MB) để xử lý với tốc độ cao. Khi cáp quang bị đứt, dữ liệu ứ đọng làm đầy RAM, Proxy tự động kích hoạt tính năng ghi tràn (flush) xuống file SQLite để lưu trữ an toàn tới 7 ngày (ProxyOfflineBuffer=168).
- Lưu ý về
ProxyLocalBuffer=0: Nếu bạn cấu hình ProxyBufferMode là hybrid hoặc memory mà tham số ProxyLocalBuffer được đặt khác 0, tiến trình Proxy sẽ lập tức báo lỗi xung đột cấu hình và không thể khởi chạy (fail to start). Cần đặc biệt lưu tâm khi copy/paste cấu hình.

Cơ chế Hybrid Buffer: Kết hợp sự linh hoạt của bộ nhớ RAM và độ an toàn của ổ đĩa cục bộ để lưu đệm dữ liệu khi mất kết nối WAN.
Bước 3: Thiết lập kết nối mã hóa TLS PSK
Vì luồng dữ liệu giám sát sẽ truyền tải qua Public Internet, bạn cần mã hóa chúng để tránh bị nghe lén hoặc giả mạo thông tin hệ thống nội bộ. Zabbix hỗ trợ mã hóa qua Pre-Shared Key (PSK) tiện lợi.
Tạo thư mục chứa khóa và tạo khóa PSK dài 64 ký tự (256-bit) trên VPS:
sudo mkdir -p /etc/zabbix/keys
openssl rand -hex 32 | sudo tee /etc/zabbix/keys/proxy.psk
Thiết lập quyền sở hữu và phân quyền bảo mật cho file khóa:
sudo chown zabbix:zabbix /etc/zabbix/keys/proxy.psk
sudo chmod 400 /etc/zabbix/keys/proxy.psk
Khai báo thông số mã hóa vào cuối file zabbix_proxy.conf:
TLSConnect=psk
TLSPSKIdentity=PROXY_SG_PSK_01
TLSPSKFile=/etc/zabbix/keys/proxy.psk
Khởi động dịch vụ để áp dụng cấu hình và cho phép khởi động cùng hệ thống:
sudo systemctl restart zabbix-proxy
sudo systemctl enable zabbix-proxy
Bước 4: Khai báo Proxy trên Frontend và cấu hình Agent (Active Checks)
Đăng nhập vào giao diện Web của Zabbix Server trung tâm để thực hiện khai báo:
- Vào menu Administration -> Proxies -> Create proxy.
- Proxy name: Điền chính xác tên đã cấu hình (ví dụ:
Proxy-Singapore-01).
- Proxy mode: Chọn Active.
- (Lưu ý cho kiến trúc mới) Proxy group: Đây là trường mới trên Zabbix 7.0 dùng để chọn nhóm proxy phục vụ cân bằng tải (HA). Nếu bạn có ý định dùng tính năng tự động chuyển đổi dự phòng (được giải thích ở phần sau), hãy chú ý đến tùy chọn này. Nếu chỉ chạy 1 Node rời rạc, có thể bỏ qua.
- Chuyển sang tab Encryption: Tại mục Connections from proxy, tích chọn PSK. Nhập
PROXY_SG_PSK_01 vào trường Identity và dán chuỗi 64 ký tự đã tạo vào ô PSK. Nhấn Add.
Cuối cùng, trên các server nội vùng (Client), cấu hình file zabbix_agentd.conf trỏ trực tiếp về IP của VPS Proxy:
ServerActive=10.20.30.40 # IP của VPS Proxy
Hostname=Web-Server-SG-01
Khởi động lại Zabbix Agent trên Client. Từ lúc này, mọi dữ liệu giám sát đã được bảo vệ an toàn phía sau trạm Proxy.
Best practices: Vận hành ổn định & loại bỏ alert storm
Cài đặt thành công Proxy chỉ là bước đầu. Để hệ thống thực sự thông minh và giữ im lặng trước những sự cố mạng WAN không mong muốn, các Sysadmin cần áp dụng thêm các kiến trúc vận hành hiện đại.
Sức mạnh tự động của Proxy Group (High Availability) trong Zabbix 7.0
Trước đây, để giải quyết tình trạng lũ thông báo (alert storm) khi nguyên một cụm máy chủ mất kết nối do bản thân trạm Proxy mất kết nối, giới kỹ thuật thường phải cặm cụi cấu hình thủ công Trigger Dependencies (Sự phụ thuộc cảnh báo) để trigger của host con bị vô hiệu hóa nếu trigger của Proxy báo lỗi. Dù mang lại kết quả, nhưng cách làm truyền thống này tốn khá nhiều công sức bảo trì.
Từ Zabbix 7.0, nhà phát triển đã đưa ra giải pháp toàn diện và tự động hóa thông qua tính năng Proxy Group. Cơ chế này không chỉ cung cấp khả năng Load Balancing, High Availability mà còn là công cụ mạnh mẽ để dập tắt báo động giả.
Cách cơ chế Proxy Group xử lý vấn đề:
Zabbix Server trung tâm liên tục giám sát trạng thái của tất cả các Proxy nằm trong một Proxy Group. Khi khởi tạo nhóm, bạn sẽ cấu hình một thông số mang tên: số lượng proxy trực tuyến tối thiểu (minimum number of online proxies).
- Giả sử bạn có cụm 3 VPS Proxy phục vụ khu vực Châu Âu, và bạn thiết lập số lượng online tối thiểu là
2.
- Nếu 1 VPS gặp sự cố, hệ thống vẫn có 2 Proxy online. Traffic của các host con sẽ được tự động điều hướng sang các node còn hoạt động. Giám sát diễn ra liền mạch.
- Tuy nhiên, nếu mạng WAN khu vực chập chờn khiến 2 hoặc cả 3 Proxy mất kết nối cùng lúc, số lượng proxy khả dụng giảm xuống dưới ngưỡng tối thiểu. Lúc này, cả Proxy Group sẽ tự động chuyển sang trạng thái ngoại tuyến (offline / degraded).
Sự thông minh nằm ở đây: Khi nhóm proxy bị đánh dấu là offline, Zabbix Server sẽ tự động sinh ra một sự kiện cảnh báo lỗi (problem event) cho chính nhóm proxy đó. Quan trọng hơn, tất cả các host con được gán vào nhóm này sẽ rơi vào trạng thái no longer be monitored (không còn bị giám sát trong thời điểm đó). Nhờ vậy, Zabbix hoàn toàn không kích hoạt hàng loạt trigger nodata() từ các Agent con. Không có báo động giả nào được gửi đi, và cơ chế này vận hành hoàn toàn tự động (No manual intervention is required).
Khi mạng ổn định trở lại, Proxy Group chuyển về trạng thái online, Proxy đẩy dữ liệu lịch sử từ bộ đệm (hybrid buffer) về Server, và mọi biểu đồ được vẽ tiếp tục như chưa từng có cuộc chia ly.

Tính năng Proxy Group tự động phân bổ lại luồng giám sát khi một VPS Proxy Node gặp sự cố phần cứng hoặc rớt mạng cục bộ.
Quản trị bộ đệm và tối ưu cơ sở dữ liệu
Một trạm Proxy có thể tạo ra workload đáng kể lên ổ đĩa khi số lượng Host và Item tăng vọt. Mặc dù cấu trúc hybrid đã giảm tải I/O rất nhiều, bạn vẫn cần lưu tâm các vấn đề sau:
- Dung lượng ổ đĩa: Khi
ProxyOfflineBuffer hoạt động, database SQLite có thể phình to nhanh chóng. Hãy đảm bảo giám sát chặt chẽ Disk Usage của bản thân VPS Proxy.
- Vòng lặp điều hướng (Routing Loop) trong HA: Khi cấu hình HA, phía Client Agent (trong file
zabbix_agentd.conf) cần được khai báo toàn bộ IP của các Node Proxy ngăn cách nhau bởi dấu chấm phẩy (ví dụ: ServerActive=IP1;IP2;IP3). Nếu mạng giữa Agent và Node 1 bị đứt, nhưng Server trung tâm vẫn thấy Node 1 online, hệ thống có thể liên tục điều hướng Agent về Node 1 đang lỗi. Cần đảm bảo các Proxy Node nằm trong một thiết kế mạng lưới đồng nhất để quá trình Failover diễn ra chính xác.
Câu hỏi thường gặp (FAQ)
1. Nên dùng Active Proxy hay Passive Proxy khi giám sát qua mạng WAN?
Nên dùng Active Proxy. Proxy chủ động kết nối về Server nên không cần mở cổng Inbound tại VPS, dễ dàng vượt tường lửa và NAT.
2. Cấu hình VPS bao nhiêu là đủ để chạy trạm Proxy?
Với quy mô vừa (dưới 1.000 NVPS) dùng SQLite, bạn cần 1-2 vCPU, 1-2 GB RAM và 10-20 GB SSD để đủ sức xử lý và lưu đệm dữ liệu.
3. Tham số nào giữ cho dữ liệu không bị mất khi đứt cáp quang?
ProxyOfflineBuffer. Bạn nên đặt thông số này khoảng 168 (tức 7 ngày) để Proxy lưu dữ liệu ngoại tuyến an toàn trong lúc chờ khắc phục mạng.
4. Tính năng Hybrid Buffer của Zabbix 7.0 hoạt động ra sao?
Kết hợp sức mạnh của RAM và ổ đĩa. Dữ liệu chạy trên RAM để đảm bảo tốc độ cao, và chỉ ghi tràn (flush) xuống ổ SSD khi mất kết nối WAN nhằm bảo toàn dữ liệu.
5. Giải pháp nào chặn báo động giả khi bản thân VPS Proxy ngừng hoạt động?
Dùng Proxy Group. Khi nhóm Proxy mất kết nối, Zabbix tự động đánh dấu offline và tạm ngưng giám sát các máy chủ con, chặn đứng mọi cảnh báo sai lệch.
Kết luận
Việc triển khai Zabbix Proxy trên VPS để giám sát mạng lưới máy chủ đa quốc gia không chỉ là một giải pháp khắc phục sự cố, mà là tiêu chuẩn kiến trúc cốt lõi cho các hạ tầng quy mô. Bằng việc đưa nhiệm vụ polling về sát cụm máy chủ cục bộ, tận dụng cấu trúc Hybrid Buffer để đệm dữ liệu an toàn, và kết hợp cùng tính năng High Availability của Proxy Group, hệ thống giám sát của bạn sẽ miễn nhiễm trước sự bất ổn của mạng internet công cộng.
Bên cạnh Zabbix, nếu tổ chức của bạn đang có nhu cầu thiết lập thêm các lớp phân tích log và metric chuyên biệt, bạn có thể nghiên cứu các tài liệu mở rộng như hướng dẫn giám sát log VPS tập trung Elastic Stack qua forward proxy bảo mật (2026) hoặc tài liệu xây dựng hệ thống giám sát Proxy Grafana và Prometheus chuẩn Enterprise (2026) để hoàn thiện hệ sinh thái quản trị của mình.
Tài liệu tham khảo