Zabbix là một giải pháp giám sát mã nguồn mở cấp doanh nghiệp, cung cấp khả năng theo dõi hạ tầng mạng và các hệ thống phân tán. Công cụ này cho phép quản trị viên giám sát đa dạng các thông số mạng, đảm bảo sự ổn định của hệ thống server và cung cấp cơ chế cảnh báo linh hoạt để xử lý sự cố kịp thời.
Hệ thống Zabbix hoạt động theo mô hình Client/Server (C/S) để thu thập dữ liệu và giao diện Web (B/S) để hiển thị cấu hình. Thành phần Zabbix Agent thường sử dụng cổng 10050 để giao tiếp.
Các tính năng cốt lõi của Zabbix
- Giám sát tài nguyên phần cứng: CPU Load, dung lượng RAM, trạng thái ổ đĩa.
- Theo dõi dịch vụ mạng: Trạng thái các cổng (Port), kiểm tra giao thức HTTP/HTTPS.
- Tự động phát hiện: Tự động tìm quét các thiết bị trong mạng và thêm vào hệ thống giám sát.
- Cảnh báo đa kênh: Gửi thông báo qua Email, SMS hoặc Script tùy chỉnh.
Kiến trúc vận hành
Zabbix bao gồm hai thành phần chính: Zabbix Server (trung tâm xử lý) và Zabbix Agent (được cài đặt trên máy đích). Server có thể thu thập dữ liệu thông qua SNMP, Agent, ICMP Ping hoặc kiểm tra cổng dịch vụ trực tiếp. Agent chịu trách nhiệm thu thập thông tin từ hệ điều hành và phần cứng của máy chủ mục tiêu rồi gửi về Server theo chế độ chủ động (Active) hoặc bị động (Passive).
Quy trình triển khai Zabbix Server trên CentOS 7
Trong hướng dẫn này, chúng ta sẽ triển khai trên môi trường LNMP (Nginx, MySQL 5.7, PHP 7.1). Giả sử địa chỉ IP máy chủ là 192.168.5.101.
1. Khởi tạo cơ sở dữ liệu
Trước tiên, cần giải nén mã nguồn và tạo database dành riêng cho Zabbix trong MySQL:
tar -zxf zabbix-3.4.3.tar.gz -C /opt/
mysql -u root -p
# Thực hiện trong MySQL console
CREATE DATABASE zabbix_db CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix_user'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON zabbix_db.* TO 'zabbix_user'@'localhost';
FLUSH PRIVILEGES;
USE zabbix_db;
# Nhập dữ liệu theo đúng thứ tự (Schema -> Images -> Data)
SOURCE /opt/zabbix-3.4.3/database/mysql/schema.sql;
SOURCE /opt/zabbix-3.4.3/database/mysql/images.sql;
SOURCE /opt/zabbix-3.4.3/database/mysql/data.sql;
EXIT;
2. Cài đặt thành phần phụ thuộc và biên dịch
Tạo người dùng hệ thống và cài đặt các thư viện cần thiết cho quá trình biên dịch:
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin zabbix
yum install -y net-snmp-devel libevent-devel libcurl-devel
cd /opt/zabbix-3.4.3/
./configure --prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql=/usr/bin/mysql_config \
--with-net-snmp \
--with-libcurl
make install
3. Cấu hình Zabbix Server
Chỉnh sửa tệp cấu hình chính để kết nối với cơ sở dữ liệu đã tạo:
vim /usr/local/zabbix/etc/zabbix_server.conf
# Cập nhật các thông số sau:
DBHost=localhost
DBName=zabbix_db
DBUser=zabbix_user
DBPassword=password123
DBSocket=/var/lib/mysql/mysql.sock
4. Cấu hình Zabbix Agent (Tự giám sát)
Cấu hình cho Agent chạy ngay trên máy chủ Server:
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix_Monitor_Node
UnsafeUserParameters=1
5. Xử lý thư viện liên kết và khởi chạy dịch vụ
Nếu hệ thống báo lỗi không tìm thấy libmysqlclient.so.20, hãy thêm đường dẫn thư viện MySQL vào hệ thống:
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
ldconfig
# Khởi động dịch vụ
/usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_agentd
# Thiết lập khởi động cùng hệ thống
echo "/usr/local/zabbix/sbin/zabbix_server" >> /etc/rc.local
echo "/usr/local/zabbix/sbin/zabbix_agentd" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
6. Cấu hình giao diện Web (Frontend)
Sao chép mã nguồn PHP vào thư mục root của Nginx và cấu hình các thông số PHP tối thiểu:
cp -r /opt/zabbix-3.4.3/frontends/php/* /usr/share/nginx/html/zabbix/
# Chỉnh sửa php.ini
vim /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Ho_Chi_Minh
always_populate_raw_post_data = -1
Nếu thiếu module LDAP, bạn cần biên dịch bổ sung vào PHP:
cd /opt/php-7.1.24/ext/ldap/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
make && make install
# Thêm vào php.ini
echo "extension=ldap.so" >> /usr/local/php/etc/php.ini
systemctl restart php-fpm
7. Hoàn tất cài đặt qua giao diện Web
Truy cập http://<IP_Server>/zabbix và thực hiện các bước cấu hình cuối cùng:
- Check of pre-requisites: Đảm bảo tất cả các mục đều hiển thị "OK".
- Configure DB connection: Nhập thông tin Database (Name:
zabbix_db, User:zabbix_user, Pass:password123). - Zabbix server details: Nhập thông tin Hostname và Port (mặc định 10051).
- Install: Tải tệp cấu hình
zabbix.conf.phpvề và tải lên thư mụcconf/trên server nếu quá trình ghi file tự động thất bại.
Đăng nhập mặc định với tài khoản: Admin / mật khẩu: zabbix.
8. Khắc phục lỗi hiển thị tiếng Việt/Trung trên biểu đồ
Khi sử dụng ngôn ngữ không phải tiếng Anh, các biểu đồ thường bị lỗi font (hiển thị ô vuông). Để khắc phục, hãy sao chép một font Unicode (ví dụ: arial.ttf hoặc msyh.ttf) vào thư mục fonts của Zabbix:
# Ghi đè font mặc định bằng font mới
cp your_font.ttf /usr/share/nginx/html/zabbix/assets/fonts/DejaVuSans.ttf
Sau khi thực hiện, các ký tự trên biểu đồ sẽ hiển thị chính xác.