Trong thế giới công nghệ thông tin ngày nay, việc giám sát hệ thống là yếu tố then chốt để đảm bảo hoạt động ổn định và hiệu quả của các ứng dụng, máy chủ và hạ tầng mạng. Hướng dẫn này sẽ chi tiết các bước cài đặt Zabbix Server, một công cụ giám sát mạnh mẽ và linh hoạt.
Giới thiệu Zabbix và các phương pháp cài đặt
Zabbix là phần mềm giám sát mã nguồn mở được sử dụng rộng rãi, giúp thu thập, phân tích và trực quan hóa các chỉ số hiệu suất từ nhiều nguồn. Nó có khả năng giám sát gần như mọi thứ: máy chủ, mạng, ứng dụng, dịch vụ, và cả các thiết bị IoT.
Zabbix cung cấp nhiều phương pháp để triển khai, phù hợp với các nhu cầu khác nhau:
- Cài đặt từ gói (Packages): Đây là phương pháp phổ biến và được khuyến nghị cho hầu hết người dùng vì tính đơn giản, dễ dàng cập nhật và quản lý thông qua các trình quản lý gói của hệ điều hành. Bài viết này sẽ tập trung vào phương pháp này.
- Cài đặt từ mã nguồn (Source Code): Phù hợp cho những ai muốn tùy chỉnh sâu Zabbix hoặc triển khai trên các hệ điều hành không được hỗ trợ chính thức bằng gói.
- Triển khai bằng Container (Docker): Lý tưởng cho môi trường phát triển, thử nghiệm hoặc triển khai nhanh trong môi trường đám mây, mang lại tính di động và khả năng cô lập.
- Triển khai trên Cloud (Cloud Images): Cung cấp các image Zabbix được cấu hình sẵn trên các nền tảng đám mây lớn như AWS, Google Cloud, Azure.
Kiến trúc của Zabbix bao gồm các thành phần chính:
- Zabbix Server: Trái tim của hệ thống giám sát, nơi thu thập, xử lý, lưu trữ dữ liệu và gửi cảnh báo.
- Zabbix Agent: Ứng dụng nhỏ được cài đặt trên các máy chủ và thiết bị cần giám sát, chịu trách nhiệm thu thập dữ liệu và gửi về Server.
- Zabbix Frontend: Giao diện web trực quan, giúp bạn cấu hình, quản lý và xem dữ liệu giám sát dưới dạng biểu đồ, bảng điều khiển.
- Database: Zabbix sử dụng cơ sở dữ liệu (MySQL/MariaDB, PostgreSQL…) để lưu trữ tất cả dữ liệu cấu hình và dữ liệu lịch sử.
Yêu cầu tài nguyên và chuẩn bị hệ thống
Để đảm bảo quá trình cài đặt diễn ra suôn sẻ và Zabbix hoạt động ổn định, bạn cần nắm rõ các yêu cầu về tài nguyên và chuẩn bị kỹ lưỡng.
Yêu cầu về CPU, RAM, dung lượng ổ đĩa
Yêu cầu tài nguyên phụ thuộc vào quy mô hệ thống bạn muốn giám sát:
- CPU: Tối thiểu 2 vCPU. Hệ thống lớn hơn có thể cần nhiều CPU hơn.
- RAM: Tối thiểu 2GB RAM cho cài đặt cơ bản. Đối với hệ thống quy mô vừa và lớn (hàng trăm đến hàng nghìn host), Zabbix khuyến nghị 8GB RAM trở lên, đặc biệt nếu bạn có nhiều dữ liệu lịch sử.
- Dung lượng ổ đĩa: Ít nhất 10-20GB cho cài đặt cơ bản. Đối với môi trường sản xuất, nên dùng ổ đĩa SSD để đạt hiệu suất I/O tốt nhất cho database.
Hệ điều hành và các gói phần mềm cần thiết
Bài viết này tập trung vào Ubuntu (LTS như 20.04, 22.04) và CentOS/RHEL (phiên bản 8 trở lên, hoặc AlmaLinux/Rocky Linux).
Zabbix Server yêu cầu các thành phần sau:
- Hệ quản trị cơ sở dữ liệu (Database): MariaDB (tương thích MySQL) hoặc PostgreSQL.
- Web Server: Apache hoặc Nginx.
- PHP: Zabbix Frontend yêu cầu PHP và một số module mở rộng cụ thể. Với Zabbix 7.2, phiên bản PHP khuyến nghị là PHP 8.0 trở lên.
Hướng dẫn cài đặt Zabbix Server 7.2 trên Ubuntu/CentOS
Chúng ta sẽ đi vào các bước cài đặt chi tiết cho Zabbix Server phiên bản 7.2.
Cài đặt các thành phần tiền đề: Database, Web Server và PHP
Cài đặt hệ quản trị cơ sở dữ liệu (MariaDB)
Bạn cần cài đặt MariaDB, bảo mật và tạo database cùng người dùng cho Zabbix.
- Trên Ubuntu:
sudo apt update
sudo apt install mariadb-server -y
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux:
sudo dnf install mariadb-server -y
- Sau khi cài đặt, khởi động và kích hoạt MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation # Thực hiện các bước bảo mật cơ bản (đặt mật khẩu root, xóa user/db test)
- Tạo database và user cho Zabbix (áp dụng cho cả Ubuntu và CentOS):
Đăng nhập vào MariaDB shell với quyền root
(sau khi đã đặt mật khẩu bằng mysql_secure_installation
):
sudo mysql -u root -p
Sau đó, chạy các lệnh SQL sau để tạo database zabbix
và user zabbix
:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_zabbix_db_password'; -- Thay 'your_zabbix_db_password' bằng mật khẩu mạnh của bạn
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Cài đặt Web Server (Apache) và PHP
Bạn cần cài đặt Apache và các module PHP cần thiết.
- Trên Ubuntu:
sudo apt install apache2 php libapache2-mod-php php-mysql php-gd php-xml php-ldap php-bcmath php-mbstring php-json php-curl php-fpm -y
sudo systemctl start apache2
sudo systemctl enable apache2
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux:
sudo dnf install httpd php php-mysqlnd php-gd php-xml php-bcmath php-mbstring php-json php-ldap php-curl php-fpm -y
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Cấu hình tường lửa:
- Trên Ubuntu (UFW):
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS (nếu sử dụng)
sudo ufw allow 10051/tcp # Cổng Zabbix Server
sudo ufw allow 10050/tcp # Cổng Zabbix Agent
sudo ufw enable # Kích hoạt UFW nếu chưa bật, sau đó gõ 'y' để xác nhận
sudo ufw status # Kiểm tra trạng thái UFW
- Trên CentOS/RHEL/AlmaLinux/Rocky (FirewallD):
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --permanent --add-port=10051/tcp # Cổng Zabbix Server
sudo firewall-cmd --permanent --add-port=10050/tcp # Cổng Zabbix Agent
sudo firewall-cmd --reload
Cấu hình SELinux (chỉ cho CentOS/RHEL/AlmaLinux/Rocky):
Để Zabbix Server và Apache có thể giao tiếp với database, bạn cần điều chỉnh SELinux (nếu đang ở chế độ Enforcing):
sudo setsebool -P httpd_can_network_connect_db 1
sudo setsebool -P zabbix_can_network_connect_db 1
Bạn có thể kiểm tra trạng thái SELinux bằng getenforce
. Nếu cần, tạm thời chuyển sang chế độ Permissive để khắc phục sự cố: sudo setenforce 0
. Sau khi khắc phục xong, hãy nhớ bật lại: sudo setenforce 1
.
Cài đặt gói Zabbix Server và Frontend
Thêm kho lưu trữ Zabbix
Để cài đặt phiên bản Zabbix ổn định, bạn cần thêm kho lưu trữ Zabbix chính thức.
- Trên Ubuntu (ví dụ Zabbix 7.2 trên Ubuntu 22.04):
wget https://repo.zabbix.com/zabbix/7.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.2-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_7.2-1+ubuntu22.04_all.deb
sudo apt update
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux (ví dụ Zabbix 7.2 trên RHEL 8):
sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.2/rhel/8/x86_64/zabbix-release-7.2-1.el8.noarch.rpm
sudo dnf clean all
sudo dnf update -y
Cài đặt Zabbix Server, Frontend, Agent
- Trên Ubuntu:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent -y
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux:
sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent -y
Import schema và dữ liệu ban đầu vào database
Bạn cần import cấu trúc database và dữ liệu mặc định của Zabbix vào database zabbix
đã tạo.
sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
Khi được hỏi, nhập mật khẩu của người dùng zabbix
database mà bạn đã đặt.
Lưu ý: Đường dẫn /usr/share/doc/zabbix-server-mysql*/create.sql.gz
có thể hơi khác tùy phiên bản Zabbix hoặc bản phân phối Linux. Bạn có thể kiểm tra đường dẫn chính xác bằng lệnh:
ls /usr/share/doc/zabbix-server-mysql*/create.sql.gz
Cấu hình Zabbix Server và PHP
Chỉnh sửa file cấu hình Zabbix Server (zabbix_server.conf
)
Bạn cần chỉ định thông tin database trong file cấu hình Zabbix Server.
sudo nano /etc/zabbix/zabbix_server.conf
Tìm và bỏ comment các dòng sau, sau đó cập nhật thông tin database:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=your_zabbix_db_password # Mật khẩu user zabbix database của bạn
Lưu và thoát file (Ctrl+O, Enter, Ctrl+X).
Chỉnh sửa cấu hình PHP cho Zabbix Frontend
Zabbix Frontend yêu cầu một số cài đặt PHP cụ thể để hoạt động tốt.
- Trên Ubuntu:
Mở file cấu hình PHP cho Apache (thay 8.x
bằng phiên bản PHP của bạn, ví dụ 8.1
hoặc 8.2
):
sudo nano /etc/php/8.x/apache2/php.ini
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux:
Mở file cấu hình PHP:
sudo nano /etc/php.ini
- Tìm và chỉnh sửa các giá trị sau trong file
php.ini
(áp dụng cho cả Ubuntu và CentOS):
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
upload_max_filesize = 16M
date.timezone = Asia/Ho_Chi_Minh # Thay đổi múi giờ phù hợp với bạn
Lưu ý về phiên bản PHP: Zabbix 7.2 hỗ trợ PHP 8.0, 8.1, 8.2 và 8.3. Luôn kiểm tra tài liệu chính thức của Zabbix về yêu cầu PHP cho phiên bản bạn đang cài đặt để đảm bảo tương thích tốt nhất.
Cấu hình Web Server cho Zabbix Frontend (Apache)
Gói Zabbix đã cài đặt sẽ tự động tạo một file cấu hình Apache cho Zabbix Frontend.
- Trên Ubuntu:
sudo a2enconf zabbix.conf
- Trên CentOS/RHEL/AlmaLinux/Rocky Linux:
Không cần lệnh a2enconf
cho CentOS/RHEL vì cấu hình được tự động thiết lập.
Khởi động và kiểm tra dịch vụ Zabbix
Bây giờ bạn có thể khởi động các dịch vụ và kiểm tra trạng thái của chúng.
sudo systemctl start zabbix-server
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
sudo systemctl restart apache2 # Hoặc httpd trên CentOS/RHEL
sudo systemctl restart php-fpm # Chỉ cho CentOS/RHEL
Kiểm tra trạng thái của các dịch vụ để đảm bảo chúng đang chạy:
sudo systemctl status zabbix-server
sudo systemctl status zabbix-agent
sudo systemctl status apache2 # Hoặc httpd trên CentOS/RHEL
sudo systemctl status mariadb
Truy cập giao diện Web Zabbix và thiết lập ban đầu
Sau khi tất cả các dịch vụ đã chạy, bạn có thể truy cập giao diện web của Zabbix để hoàn tất việc cài đặt.
Hướng dẫn truy cập qua trình duyệt
Mở trình duyệt web của bạn và truy cập vào địa chỉ IP hoặc tên miền của máy chủ Zabbix, theo sau là /zabbix
:
http://your_server_ip_or_domain/zabbix
Bạn sẽ thấy trang chào mừng của Zabbix Frontend.
Các bước thiết lập ban đầu trên giao diện web
1. Welcome: Nhấn “Next step”.
2. Check of pre-requisites: Zabbix sẽ kiểm tra tất cả các yêu cầu về PHP và các module. Đảm bảo tất cả đều có trạng thái “OK“.
- Nếu có lỗi, hãy quay lại và cài đặt/cấu hình lại các thành phần còn thiếu. Sau đó, nhấn “Next step”.
3. Configure DB connection: Nhập chi tiết để kết nối với cơ sở dữ liệu. Database Zabbix phải được tạo thủ công trước đó.
- Database type: MariaDB (hoặc MySQL)
- Database host: localhost
- Database port: 3306 (hoặc 0 để dùng cổng mặc định)
- Database name: zabbix
- User: zabbix
- Password:
your_zabbix_db_password
.
- Nhấn “Next step”.
4. Settings:
- Zabbix server name: Nhập tên cho máy chủ Zabbix của bạn (tùy chọn). Nếu được nhập, nó sẽ hiển thị trên thanh menu và tiêu đề trang.
- Default time zone: Đặt múi giờ mặc định cho frontend.
- Default theme: Chọn giao diện mặc định cho frontend.
- Nhấn “Next step”.
5. Pre-installation summary: Xem lại tóm tắt các cài đặt cấu hình. Tại đây, bạn sẽ thấy thông tin về “Zabbix server localhost” và “Zabbix server port 10051” mà hệ thống đã tự động nhận diện từ cấu hình backend.
- Nhấn “Next step” nếu mọi thứ đều đúng.
6. Install: Quá trình cài đặt sẽ diễn ra. Sau khi hoàn tất, nhấn “Finish”.
Đăng nhập lần đầu và đổi mật khẩu
Bạn sẽ được chuyển đến trang đăng nhập Zabbix.
- Username (mặc định):
Admin
- Password (mặc định):
zabbix
Sau khi đăng nhập thành công, điều quan trọng là phải thay đổi mật khẩu mặc định ngay lập tức để bảo mật hệ thống của bạn. Bạn có thể làm điều này bằng cách vào Administration -> Users, chọn người dùng Admin
và thay đổi mật khẩu.
Gợi ý bảo mật: Để tăng cường bảo mật cho giao diện web Zabbix, hãy cân nhắc cấu hình HTTPS/SSL bằng Let’s Encrypt hoặc chứng chỉ SSL của riêng bạn.
Các lỗi thường gặp khi cài đặt Zabbix Server và cách khắc phục
Mặc dù chúng ta đã đi qua từng bước một, nhưng đôi khi vẫn có thể xảy ra lỗi. Dưới đây là một số lỗi phổ biến và cách khắc phục:
- Lỗi kết nối database:
- Triệu chứng: Zabbix Server không khởi động được, hoặc giao diện web báo lỗi “Database is not available”.
- Nguyên nhân: Sai thông tin kết nối database (host, user, password), database server chưa chạy, hoặc lỗi phân quyền.
- Khắc phục: Kiểm tra lại file
/etc/zabbix/zabbix_server.conf
, đảm bảo MariaDB/MySQL đang chạy (sudo systemctl status mariadb
), và kiểm tra lại quyền của userzabbix
trong database. Đảm bảo bạn đã import schema và dữ liệu ban đầu.
- Lỗi liên quan đến PHP:
- Triệu chứng: Giao diện web Zabbix hiển thị trang trắng, hoặc lỗi “Internal Server Error”, hoặc cảnh báo thiếu module PHP.
- Nguyên nhân: Thiếu các module PHP cần thiết (php-mysql, php-gd, v.v.), hoặc các giá trị cấu hình PHP (memory_limit, post_max_size, v.v.) chưa phù hợp.
- Khắc phục: Đảm bảo đã cài đặt đầy đủ các gói PHP và module yêu cầu. Chỉnh sửa file
php.ini
như đã hướng dẫn và khởi động lại Apache/Nginx.
- Lỗi khởi động dịch vụ Zabbix:
- Triệu chứng:
sudo systemctl status zabbix-server
báo lỗi hoặc không chạy. - Nguyên nhân: Lỗi cấu hình trong
zabbix_server.conf
, không thể kết nối tới database, hoặc thiếu tài nguyên. - Khắc phục: Kiểm tra log của Zabbix Server tại
/var/log/zabbix/zabbix_server.log
để tìm nguyên nhân cụ thể. Đảm bảo database đã chạy và có thể kết nối.
- Triệu chứng:
- Lỗi phân quyền và SELinux:
- Triệu chứng: File cấu hình Zabbix không đọc được, hoặc Zabbix Frontend không thể ghi vào thư mục tạm, hoặc kết nối database bị từ chối.
- Nguyên nhân: Quyền truy cập file hoặc thư mục không đúng, hoặc SELinux chặn các hoạt động.
- Khắc phục: Đảm bảo người dùng chạy Zabbix Server (
zabbix
) và Web Server (apache
hoặcwww-data
) có đủ quyền đọc/ghi. Trên CentOS/RHEL, hãy kiểm tra và cấu hình SELinux bằng các lệnhsetsebool
như đã hướng dẫn. Nếu nghi ngờ SELinux gây ra lỗi, bạn có thể tạm thời vô hiệu hóa nó bằngsudo setenforce 0
để kiểm tra, sau đó bật lại bằngsudo setenforce 1
.
Kết luận
Zabbix là một giải pháp giám sát hệ thống mạnh mẽ và linh hoạt, giúp bạn kiểm soát toàn diện cơ sở hạ tầng IT của mình. Mặc dù quá trình cài đặt ban đầu có thể đòi hỏi một chút thời gian và kiến thức kỹ thuật, nhưng những lợi ích mà nó mang lại về lâu dài là vô cùng to lớn.