Tổng quan về Zabbix
Giám sát hệ thống máy chủ cũng như các thiết bị mạng có vị trí rất quan trọng trong một hệ thống bao gồm nhiều thiết bị cần được quản lý liên tục và thường xuyên. Một hệ thống giám sát tốt sẽ giúp phát hiện sớm các vấn đề về phần cứng như nhiệt độ, trạng thái memory, CPU, các thiết bị lưu trữ cũng như các vấn đề về hệ thống mạng, từ đó có các biện pháp khắc phục kịp thời để hạn chế các mất mát không đáng có.
Zabbix là một công cụ mã nguồn mở để giải quyết cho ta các vấn đề về giám sát như đã nêu trên. Là công cụ không những có thể giám sát toàn bộ trạng thái của các thiết bị phần cứng (máy tính, máy chủ và thiết bị mạng,…) Zabbix còn có thể giám sát hoạt động của các ứng dụng cũng như các dịch vụ chạy trên các máy chủ. Khi phát hiện sự cố, Zabbix sử dụng một cơ chế thống báo linh hoạt cho phép người dùng cấu hình email hoặc sms để cảnh báo dựa trên sự kiện được ta thiết lập sẵn.
Với giao diện web trực quan và dễ sử dụng, người quản trị hệ thống có thể dễ dàng cấu hình cũng như giám sát hệ thống một các dễ dàng, thuận tiện. Ngoài ra Zabbix còn có một cộng đồng để chia sẻ các Template, module,… giúp triển khai, cấu hình hệ thống một cách nhanh chóng. Với những ưu việt của mình, hiện nay Zabbix đóng một vai trò quan trọng trong việc theo dõi hạ tầng phần cứng và các thiết bị mạng trên toàn thế giới.
Zabbix 4.2 Series:
Cài đặt & Triển khai Zabbix 4.2 trên Centos 7
Cấu hình Zabbix-Agent, Thêm, xóa Host
Script tự động cài đặt, cấu hình Zabbix-Agent
Giám sát thông qua Zabbix Proxy
Tạo mới Templates, Applications, Items, Triggers, Graphs
Ưu điểm của Zabbix
- Giám sát cả Server và thiết bị mạng, ứng dụng, dịch vụ
- Có giao diện web giúp dễ dàng thao tác và cấu hình
- Thông báo sự cố qua email và SMS
- Có thể tạo biểu đồ, map giúp giám sát trực quan hơn.
- Mã nguồn mở và chi phí thấp
Các thành phần cơ bản của Zabbix
- Zabbix server: Đây là thành phần trung tâm của phần mềm Zabbix. Zabbix Server có thể kiểm tra các dịch vụ mạng từ xa thông qua các báo cáo của Agent gửi về cho Zabbix Server và từ đó nó sẽ lưu trữ tất cả các cấu hình cũng như là các số liệu thống kê.
- Zabbix Proxy: Là phần tùy chọn của Zabbix. Nó có nhiệm vụ thu nhận dữ liệu, lưu trong bộ nhớ đệm và chuyển đến Zabbix Server.
Zabbix Proxy là một giải pháp lý tưởng cho việc giám sát tập trung của các địa điểm từ xa, chi nhánh công ty, các mạng lưới không có quản trị viên nội bộ.
Zabbix Proxy cũng được sử dụng để phân phối tải của một Zabbix Server - Database Server: Zabbix hỗ trợ MySQL hoặc PostgreSQL. Các bạn có thể cài Database Server chung với Zabbix Server/ Proxy. Bài viết này mình sẽ tách database server cho Zabbix ra một máy chủ riêng.
- Zabbix Agent: Để giám sát chủ động các thiết bị cục bộ và các ứng dụng (ổ cứng, bộ nhớ, …) trên hệ thống mạng. Zabbix Agent sẽ được cài lên trên Server và từ đó Agent sẽ thu thập thông tin hoạt động từ Server mà nó đang chạy và báo cáo dữ liệu này đến Zabbix Server để xử lý.
- Web interface: Để dễ dàng truy cập dữ liệu theo dõi và sau đó cấu hình từ giao diện web cung cấp. Giao diện là một phần của Zabbix Server, và thường chạy trên các máy chủ.
Sau đây là từng bước cài đặt và cấu hình các thành phần trong hệ thống Zabbix gồm Zabbix server, Zabbix Proxy, Database Server, Web interface như hình minh họa bên dưới. Zabbix Agent sẽ được cài lên các thành phần của Zabbix để giám sát chính hệ thống Zabbix luôn nhé các bạn.
Một số chuẩn bị trước khi cài đặt
Trong bài viết có sử dụng một số công cụ như nano,wget,yum-utils. Nếu chưa cài đặt các bạn có thể thực thi các câu lệnh sau để cài đặt.
yum -y install nano yum -y install wget yum -y install yum-utils
Cập nhật hệ thống trên tất cả các máy:
yum -y update
Mình tiến hành cấu hình IP tĩnh và hostname cho các máy như sau:
[table id=4 /]
Thêm Zabbix repository cho Zabbix Server, Zabbix Proxy, Web Server
rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
Tạo thư mục để script MySQL trên Database Server
mkdir -p /opt/tmp/zabbix_db
Cài đặt Zabbix Server
Cài đặt Zabbix Server và Zabbix Agent (tự giám sát chính mình) bằng lệnh sau:
yum -y install zabbix-server-mysql zabbix-agent
Vì Database Server được tách riêng Zabbix Server nên mình sẽ gửi script MySQL tạo bảng của Zabbix Server qua thư mục đã tạo ở Database Server
Bạn có thể xem cách sử dụng câu lệnh scp tại đây
scp /usr/share/doc/zabbix-server-mysql-4.2.1/create.sql.gz [email protected]:/opt/tmp/zabbix_db
Cấu hình Zabbix Server
Chúng ta tiến hành thực hiện một số cấu hình cơ bản cho Zabbix Server bằng cách chỉnh sửa file sau:
nano /etc/zabbix/zabbix_server.conf DBHost=192.168.1.122 DBName=zabbix_server DBUser=zabbix DBPassword=Zabbix2019!
Khởi động dịch vụ cho Zabbix Server
systemctl start zabbix-server
Cấu hình Zabbix Server tự khởi động cùng hệ thống
systemctl enable zabbix-server
Cấu hình SELINUX
setsebool -P zabbix_can_network on
Cấu hình firewalld
firewall-cmd --add-port=10050/tcp --zone=public --permanent firewall-cmd --add-port=10051/tcp --zone=public --permanent firewall-cmd --reload
Cài đặt Zabbix Proxy
Cài đặt Zabbix Proxy và Zabbix Agent (tự giám sát chính mình) bằng lệnh sau:
yum -y install zabbix-proxy-mysql zabbix-agent
Tương tự Zabbix Server, mình sẽ gửi script MySQL tạo bảng của Zabbix Proxy qua thư mục đã tạo ở Database Server
scp /usr/share/doc/zabbix-proxy-mysql-4.2.1/schema.sql.gz [email protected]:/opt/tmp/zabbix_db
Cấu hình Zabbix Proxy
nano /etc/zabbix/zabbix_proxy.conf DBHost=192.168.1.122 DBName=zabbix_proxy DBUser=zabbix DBPassword=Zabbix2019!
Khởi động dịch vụ cho Zabbix Server
systemctl start zabbix-proxy
Cấu hình Zabbix Server tự khởi động cùng hệ thống
systemctl enable zabbix-proxy
Cấu hình SELINUX
setsebool -P zabbix_can_network on
Cấu hình firewalld
firewall-cmd --add-port=10050/tcp --zone=public --permanent firewall-cmd --add-port=10051/tcp --zone=public --permanent firewall-cmd --reload
Cấu hình Database Server cho Zabbix
Zabbix hỗ trợ MySQL hoặc PostgreSQL, ở đây mình sử dụng MySQL. Nếu chưa biết cách cài đặt MySQL Server các bạn
Các bạn có thể xem hướng dẫn: Cài đặt MySQL Server tại đây
Đăng nhập vào MySQL
mysql -u root -p<root-password>
Tạo zabbix user, database cho Zabbix Server/Proxy, và cấp quyền truy cập database cho user zabbix
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix2019!'; mysql> create database zabbix_server character set utf8 collate utf8_bin; mysql> create database zabbix_proxy character set utf8 collate utf8_bin; mysql> GRANT ALL ON *.* to zabbix@'%' IDENTIFIED BY 'Zabbix2019!'; mysql> FLUSH PRIVILEGES; mysql> quit;
Import schema và data cho database
zcat /opt/tmp/zabbix_db/create.sql.gz | mysql -uzabbix -p zabbix_server zcat /opt/tmp/zabbix_db/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
Mở port cho phép các máy khác truy cập vào Database Server
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
Cài đặt Zabbix Web Server
Cài đặt bổ sung các packages không được cài mặc định trên Centos 7
yum-config-manager --enable rhel-7-server-optional-rpms
Mở port truy cập vào Web Server
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
Cài đặt Zabbix Web và Zabbix Agent
yum -y install zabbix-web-mysql zabbix-agent
Cấu hình SELINUX
Bạn phải thực thi 2 câu lệnh sau để cho phép Web Server kết nối với các Server còn lại.
setsebool -P httpd_can_connect_zabbix on setsebool -P httpd_can_network_connect_db on
Cấu hình Zabbix Web Server
Chúng ta tiến hành chỉnh sửa file cấu hình của Web
nano /etc/httpd/conf.d/zabbix.conf #Các bạn bỏ comment ở dòng timezone và chọn timezone phù hợp, ở đây mình chọn Asia/Tokyo php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Tokyo
Khởi động lại dịch vụ Web
systemctl restart httpd
Tiếp theo chúng ta truy cập vào Zabbix frontend để tiếp tục cấu hình trên nền Web
Giao diện ban đầu:
Click Next step
Xác nhận các cấu hình OK và click Next Step
Nhập thông tin của database server sau đó click Next Step
Nhập thông tin của Zabbix Server sau đó click Next Step
Xác nhận lại thông tin sau đó click Next Step
Click Finish để hoàn thành cấu hình.
Đăng nhập với user/pass mặc định là Admin/zabbix
Giao diện ban đầu sau khi cấu hình và đăng nhập thành công.
Như vậy mình đã hướng dẫn các bạn cài đặt và triển khai Zabbix 4.2 trên Centos 7 thành công. Các bài tiếp theo sẽ hướng dẫn các bạn cấu hình theo dõi server và thiết bị mạng trên hệ thống, tạo và quản lý template,… Chúc các bạn thành công.