Cài đặt & Triển khai Zabbix 4.2 trên Centos 7

Monitoring

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

Tạo bản đồ Network

Ư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:

ServerIP AddressHostname
Zabbix Server192.168.1.120Zabbix-Server
Zabbix Proxy192.168.1.121Zabbix-Proxy
Database Server192.168.1.122Zabbix-Database
Web Server192.168.1.123Zabbix-WebServer

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

http://192.168.1.123/zabbix

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.

Share: