Hướng dẫn cấu hình Zabbix Agent để giám sát VPS Linux

Trong hệ thống giám sát Zabbix, Zabbix Agent đóng vai trò thiết yếu trong việc thu thập dữ liệu từ các máy chủ và thiết bị cần giám sát. Bài viết này sẽ hướng dẫn bạn cách cài đặt, cấu hình Zabbix Agent trên VPS Linux và tích hợp nó với Zabbix Server để bắt đầu thu thập dữ liệu hiệu quả.

Tổng quan về Zabbix Agent và vai trò giám sát

Zabbix Agent là phần mềm nhẹ chạy trên VPS/Linux host. Nó thu thập dữ liệu hệ thống như CPU, RAM, ổ đĩa, mạng… và truyền về Zabbix Server để giám sát thời gian thực, từ đó phát hiện sớm vấn đề và kích hoạt cảnh báo tự động.

Mô hình kết nối giữa Agent và Server:

Zabbix Agent hỗ trợ hai chế độ giao tiếp linh hoạt tùy theo cấu hình tường lửa của bạn:

  • Passive checks (Server kéo dữ liệu từ Agent): Zabbix Server gửi yêu cầu đến Agent để lấy dữ liệu. Agent lắng nghe trên cổng 10050/TCP và phản hồi khi có yêu cầu. Tường lửa trên VPS cần cho phép kết nối từ Zabbix Server đến cổng 10050/TCP.
  • Active checks (Agent đẩy dữ liệu lên Server): Agent chủ động kết nối đến Zabbix Server (cổng 10051/TCP) để yêu cầu danh sách các mục cần giám sát và định kỳ gửi dữ liệu về. Tường lửa trên Zabbix Server cần mở cổng 10051/TCP để nhận kết nối từ Agent.

Yêu cầu hệ thống và chuẩn bị

Để quá trình cài đặt và cấu hình Zabbix Agent diễn ra suôn sẻ, bạn cần đảm bảo VPS Linux của mình đáp ứng các yêu cầu cơ bản và có các thông tin cần thiết.

  • Hệ điều hành:
    • Ubuntu LTS (20.04, 22.04)
    • AlmaLinux/Rocky Linux (8, 9)
    • Lưu ý: CentOS 7 đã đạt End Of Life (EOL) vào tháng 6 năm 2024. Bạn nên sử dụng các phiên bản Linux hiện đại và được hỗ trợ để đảm bảo bảo mật và tính ổn định.
  • Quyền truy cập: Quyền root hoặc người dùng có quyền sudo trên VPS.
  • Kết nối mạng: Đảm bảo VPS có kết nối mạng ổn định và có thể truy cập được từ Zabbix Server của bạn (và ngược lại nếu sử dụng Active checks).
  • Địa chỉ IP hoặc tên miền của Zabbix Server: Ví dụ: 192.168.1.100 hoặc zabbix.yourdomain.com. Đây là địa chỉ mà Zabbix Agent sẽ kết nối tới.

Hướng dẫn cài đặt Zabbix Agent trên VPS Linux

Các bước này sẽ hướng dẫn bạn cài đặt Zabbix Agent 7.2 trên các bản phân phối Linux phổ biến bằng cách sử dụng kho lưu trữ chính thức của Zabbix.

Ghi chú chung: Trong các lệnh dưới đây, hãy thay thế your_zabbix_server_ip_or_domain bằng địa chỉ IP hoặc tên miền thực tế của Zabbix Server của bạn.

Cài đặt Zabbix Agent trên Ubuntu (20.04/22.04)

1. Cập nhật hệ thống:

sudo apt update
sudo apt upgrade -y

2. Thêm kho lưu trữ Zabbix Agent:

  • Tải xuống gói release Zabbix cho Ubuntu 22.04 (hoặc 20.04 nếu bạn đang dùng):
wget https://repo.zabbix.com/zabbix/7.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.2-1+ubuntu22.04_all.deb
  • Cài đặt gói release (gói này sẽ thêm kho lưu trữ Zabbix vào hệ thống của bạn):
sudo dpkg -i zabbix-release_7.2-1+ubuntu22.04_all.deb
  • Cập nhật lại danh sách gói từ kho lưu trữ mới:
sudo apt update

3. Cài đặt Zabbix Agent:

sudo apt install zabbix-agent -y

4. Cấu hình tường lửa (UFW) trên VPS: Nếu bạn đang sử dụng UFW, hãy cho phép Zabbix Server kết nối đến cổng Agent (10050).

sudo ufw allow from your_zabbix_server_ip_or_domain to any port 10050
sudo ufw reload

Cài đặt Zabbix Agent trên AlmaLinux/Rocky Linux (8/9)

1. Cập nhật hệ thống:

sudo dnf update -y

2. Thêm kho lưu trữ Zabbix Agent: Để cài đặt Zabbix Agent phiên bản 7.2, bạn cần thêm kho lưu trữ Zabbix chính thức.

  • Đối với AlmaLinux/Rocky Linux 8:
sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.2/rhel/8/x86_64/zabbix-release-7.2-1.el8.noarch.rpm
  • Đối với AlmaLinux/Rocky Linux 9:
sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.2/rhel/9/x86_64/zabbix-release-7.2-1.el9.noarch.rpm
  • Làm sạch bộ nhớ cache DNF:
sudo dnf clean all

3. Cài đặt Zabbix Agent:

sudo dnf install zabbix-agent -y

4. Cấu hình tường lửa (FirewallD) trên VPS: Nếu bạn đang sử dụng FirewallD trên AlmaLinux/Rocky Linux, bạn cần cho phép Zabbix Server kết nối đến cổng Agent (10050).

  • Cho phép kết nối từ địa chỉ IP của Zabbix Server đến cổng 10050:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_zabbix_server_ip_or_domain" port port="10050" protocol="tcp" accept'
sudo firewall-cmd --reload

5. Cấu hình SELinux (nếu đang ở chế độ Enforcing): Thông thường, việc cấu hình FirewallD là đủ. Tuy nhiên, nếu gặp sự cố, bạn có thể cần điều chỉnh SELinux (tham khảo thêm tại tài liệu chính thức của Zabbix về SELinux).

Cấu hình Zabbix Agent để kết nối với Zabbix Server

Sau khi Zabbix Agent đã được cài đặt, bạn cần chỉnh sửa file cấu hình của nó để Agent biết cách liên lạc với Zabbix Server của bạn.

1. Mở file cấu hình Zabbix Agent:

sudo nano /etc/zabbix/zabbix_agentd.conf

2. Chỉnh sửa các tham số quan trọng: Tìm và bỏ comment (nếu có dấu # ở đầu dòng) các tham số sau:

  • Server=: Địa chỉ IP hoặc tên miền của Zabbix Server (dùng cho Passive checks).
Server=your_zabbix_server_ip_or_domain
  • ServerActive=: Địa chỉ IP hoặc tên miền của Zabbix Server cùng với cổng 10051 (dùng cho Active checks).
ServerActive=your_zabbix_server_ip_or_domain:10051
  • Hostname=: Tên Host chính xác của VPS này như bạn sẽ đặt trong Zabbix Frontend. Tên này phải khớp chính xác (bao gồm cả phân biệt chữ hoa/chữ thường) với tên Host bạn sẽ tạo trong Zabbix Frontend ở bước sau để đảm bảo Agent và Server nhận diện đúng nhau.
Hostname=Your_VPS_Hostname_in_Zabbix

Bạn có thể sử dụng lệnh hostname trên VPS để lấy tên máy chủ hiện tại làm gợi ý.

3. Lưu và đóng file cấu hình.

4. Khởi động lại Zabbix Agent:

sudo systemctl restart zabbix-agent

5. Bật chế độ khởi động cùng hệ thống:

sudo systemctl enable zabbix-agent

Lưu ý: Nếu không bật chế độ khởi động cùng hệ thống, Agent sẽ không hoạt động sau khi VPS khởi động lại.

6. Kiểm tra trạng thái Zabbix Agent:

sudo systemctl status zabbix-agent

Đảm bảo dịch vụ đang chạy (active (running)).

Thêm Host và áp dụng Template trên Zabbix Server Frontend

Sau khi Zabbix Agent đã được cài đặt và cấu hình trên VPS, bạn cần thêm Host này vào Zabbix Server thông qua giao diện web để Zabbix Server bắt đầu thu thập dữ liệu.

1. Đăng nhập vào Zabbix Frontend: Truy cập giao diện web của Zabbix Server (ví dụ: http://your_zabbix_server_ip_or_domain/zabbix) và đăng nhập bằng tài khoản Admin.

2. Đi đến “Data collection” -> “Hosts”: Trên thanh điều hướng bên trái, chọn “Data collection”, sau đó chọn “Hosts”.

  • Nhấn vào nút màu xanh “Create host” ở góc trên bên phải.

3. Cấu hình Host Details: Trong tab “Host”:

zabbix_host_a
Tab Host, Hosts | Nguồn: Zabbix 1 Configuring a host
  • Host name: Nhập tên Host chính xác mà bạn đã đặt trong file zabbix_agentd.conf của Agent (Hostname= parameter). Tên này phải khớp chính xác (bao gồm cả phân biệt chữ hoa/chữ thường) với tên Host bạn sẽ tạo trong Zabbix Frontend để đảm bảo Agent và Server nhận diện đúng nhau.
  • Visible name: (Tùy chọn) Một tên hiển thị thân thiện hơn cho Host này trong giao diện Zabbix. Nếu để trống, Host name sẽ được sử dụng.
  • Templates: Trong trường này, bạn sẽ liên kết các Template có sẵn với Host.
    • Bắt đầu gõ tên template, ví dụ: OS Linux by Zabbix agent. Một danh sách gợi ý sẽ hiện ra, chọn template phù hợp.
    • Bạn có thể thêm các Template khác tùy theo nhu cầu giám sát cụ thể (ví dụ: Template App Apache by HTTP, Template DB MySQL by Zabbix agent).
  • Host groups: Chọn một hoặc nhiều nhóm hiện có bằng cách nhấp vào nút “Select”, hoặc nhập tên nhóm mới để tạo. (Ví dụ: “Linux servers”, “VPS”).
  • Interfaces -> Agent: Nhấn vào nút màu xanh “Add” bên dưới phần “Interfaces”.
    • Type: Chọn “Agent”.
    • IP address: Nhập địa chỉ IP của VPS Linux nơi Zabbix Agent được cài đặt.
    • Port: Giữ nguyên giá trị mặc định là 10050.
    • Connect to: Chọn “IP”.

5. Nhấn “Add” để tạo Host. Nhấn nút màu xanh “Add” ở dưới cùng màn hình để hoàn tất việc thêm Host. Host mới của bạn sẽ hiển thị trong danh sách host.

Kiểm tra trạng thái giám sát và dữ liệu thu thập

Sau khi thêm Host và áp dụng Template, Zabbix Server sẽ mất một vài phút để bắt đầu liên lạc với Agent và thu thập dữ liệu.

Dưới đây là các bước kiểm tra quan trọng:

1. Kiểm tra trạng thái Host trên Zabbix Frontend:

  • Đi đến “Data collection” -> “Hosts”.
  • Tìm Host mà bạn vừa thêm.
  • Kiểm tra cột “Availability”. Biểu tượng Zabbix Agent (thường là dấu tích màu xanh lá cây) sẽ hiển thị màu xanh lá cây nếu kết nối thành công.

2. Kiểm tra nhanh cổng 10050 từ Zabbix Server: Để xác minh Zabbix Server có thể kết nối đến cổng Agent, hãy sử dụng nmap hoặc nc (netcat) từ Zabbix Server:

# Sử dụng nmap (nếu đã cài đặt)
nmap -p 10050 your_vps_ip_or_domain

# Hoặc sử dụng netcat (nc)
nc -vz your_vps_ip_or_domain 10050

Nếu cổng mở, bạn sẽ thấy thông báo “open” hoặc “succeeded”.

3. Kiểm tra nhanh Agent từ Zabbix Server (Passive checks): Sử dụng công cụ zabbix_get để kiểm tra nhanh xem Agent có đang hoạt động và phản hồi dữ liệu không:

zabbix_get -s your_vps_ip_or_domain -k "system.uptime"

Nếu Agent hoạt động, bạn sẽ nhận được giá trị thời gian uptime của VPS.

4. Xem dữ liệu thu thập trong “Latest data”:

  • Đi đến “Monitoring” -> “Latest data” trên thanh điều hướng bên trái.
  • Sử dụng bộ lọc “Host” để chọn Host mà bạn vừa thêm, sau đó nhấn “Apply”.
  • Kiểm tra cột “Last check” hoặc “Last value” của các mục (items). Thời gian hiển thị phải là gần đây và các giá trị dữ liệu phải xuất hiện.

Khắc phục sự cố thường gặp

Nếu bạn gặp vấn đề trong quá trình cài đặt hoặc giám sát, dưới đây là một số bước khắc phục sự cố phổ biến:

  • Zabbix Agent không khởi động hoặc không chạy:
    • Kiểm tra log của Agent: sudo tail -f /var/log/zabbix/zabbix_agentd.log
    • Kiểm tra cấu hình: Đảm bảo các tham số Server, ServerActive, và Hostname trong /etc/zabbix/zabbix_agentd.conf được cấu hình chính xác.
  • Host hiển thị màu đỏ/xám trong Zabbix Frontend (lỗi kết nối):
    • Kiểm tra tường lửa trên VPS: Đảm bảo cổng 10050/TCP được mở và cho phép kết nối từ địa chỉ IP của Zabbix Server.
    • Kiểm tra kết nối từ Zabbix Server: Dùng telnet, nmap hoặc nc để kiểm tra cổng 10050 trên VPS từ Zabbix Server.
    • Kiểm tra Hostname: Đảm bảo giá trị của Hostname trong /etc/zabbix/zabbix_agentd.conf khớp chính xác với “Host name” bạn đã nhập trong Zabbix Frontend.
    • Kiểm tra log Zabbix Server: Xem log của Zabbix Server tại /var/log/zabbix/zabbix_server.log để tìm các thông báo lỗi liên quan đến việc kết nối Agent.
  • Host hiển thị màu xanh lá cây nhưng không thấy dữ liệu trong “Latest data”:
    • Đảm bảo Host đã được liên kết với Template: Vào “Configuration” -> “Hosts”, chọn Host, kiểm tra tab “Templates” xem OS Linux by Zabbix agent đã được liên kết chưa.
    • Kiểm tra “Items” của Template: Trong Host đó, chuyển sang tab “Items”. Kiểm tra xem có mục nào hiển thị trạng thái lỗi (màu đỏ) không. Nhấp vào lỗi để xem chi tiết.
    • Kiểm tra log Zabbix Agent: Đôi khi Agent có thể kết nối nhưng không thu thập được dữ liệu do các lỗi bên trong Agent. Xem log của Agent trên VPS.
    • Kiểm tra Timezone: Đảm bảo múi giờ trên Agent và Server được cấu hình chính xác và đồng bộ.

Mở rộng khả năng giám sát và bảo mật

Cấu hình User Parameters

Zabbix Agent cho phép bạn thu thập dữ liệu tùy chỉnh thông qua User Parameters. Điều này hữu ích khi bạn muốn giám sát một thông số cụ thể không có sẵn trong các mục mặc định.

  • Cách sử dụng: Thêm các dòng sau vào file zabbix_agentd.conf (ví dụ):
# Ví dụ: Giám sát số lượng kết nối Nginx đang hoạt động
UserParameter=nginx.active.connections,curl -s http://localhost/nginx_status 2>/dev/null | grep Active | awk '{print $NF}'
  • Lưu ý: Sau khi thêm User Parameter, bạn cần định nghĩa một “Item” tương ứng trên Zabbix Frontend để thu thập dữ liệu từ khóa này.

Tăng cường bảo mật với mã hóa TLS cho Zabbix Agent

Để bảo mật hơn nữa giao tiếp giữa Zabbix Agent và Server, bạn nên cấu hình mã hóa TLS (Transport Layer Security). Zabbix hỗ trợ nhiều chế độ TLS, phổ biến nhất là sử dụng Pre-Shared Key (PSK).

  • Các tham số chính trong zabbix_agentd.conf:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001 # Tên định danh cho PSK, phải khớp trên Server
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk # Đường dẫn đến file chứa khóa PSK
  • Tạo file PSK:
sudo openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk
sudo chmod 600 /etc/zabbix/zabbix_agentd.psk
sudo chown zabbix:zabbix /etc/zabbix/zabbix_agentd.psk
  • Cấu hình trên Zabbix Server Frontend: Khi thêm hoặc chỉnh sửa Host, trong phần “Interfaces -> Agent”, chọn “PSK” làm “Authentication” và nhập “PSK identity” (ví dụ: PSK001) cùng với “PSK” (giá trị đã tạo và lưu trong file zabbix_agentd.psk).

Để tìm hiểu chi tiết hơn về cấu hình TLS, bạn nên tham khảo tài liệu chính thức của Zabbix về “Encryption with PSK” hoặc “Encryption with certificates“.

Quản lý Log của Zabbix Agent với Logrotate

File log của Zabbix Agent (/var/log/zabbix/zabbix_agentd.log) có thể tăng kích thước theo thời gian. Để tránh đầy ổ đĩa, bạn nên đảm bảo logrotate được cấu hình để quản lý file log này. Thông thường, cấu hình logrotate cho Zabbix Agent đã được tự động thêm vào hệ thống trong quá trình cài đặt gói từ kho chính thức.

  • Bạn có thể kiểm tra file cấu hình tại /etc/logrotate.d/zabbix-agent.
/etc/logrotate.d/zabbix-agent
  • Ví dụ cấu hình logrotate (thường đã có):
/var/log/zabbix/zabbix_agentd.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 zabbix zabbix
sharedscripts
postrotate
/bin/systemctl reload zabbix-agent > /dev/null 2>&1 || true
endscript
}

Cấu hình này sẽ xoay log hàng ngày, giữ 7 bản nén, và khởi động lại agent để áp dụng file log mới.

Lưu ý về phiên bản Zabbix

Tại thời điểm hiện tại, Zabbix phiên bản 7.2 là bản ổn định (LTS – Long Term Support) được khuyến nghị rộng rãi. Mặc dù Zabbix 7.4 có thể đã ra mắt ở dạng tiền phát hành (pre-release) hoặc bản phát hành ứng viên (release candidate), bạn nên cân nhắc sử dụng phiên bản ổn định cho môi trường sản phẩm.

  • Bạn có thể kiểm tra phiên bản mới nhất và tải xuống tại trang chính thức của Zabbix: https://www.zabbix.com/download. Hãy luôn đảm bảo bạn đang sử dụng phiên bản phù hợp với nhu cầu và môi trường của mình.

Kết luận

Việc cấu hình Zabbix Agent trên VPS Linux là một bước quan trọng để tối ưu hóa khả năng giám sát hệ thống của bạn. Với Zabbix, bạn không chỉ có cái nhìn sâu sắc về tình trạng của các VPS Linux, mà còn có thể thiết lập các cảnh báo tự động để phản ứng kịp thời với mọi vấn đề tiềm ẩn. Điều này giúp đảm bảo sự ổn định, hiệu quả và chủ động trong việc quản lý hạ tầng công nghệ thông tin của bạn.

Chia sẻ bài viết:

Đánh giá

0/5 - (0 Bình chọn)

Chưa có đánh giá.