Hướng dẫn cài đặt và cấu hình zabbix
2.1.1. Cài kho lưu trữ MariaDB 2
2.1.2. Cập nhật và cài đặt MariaDB 2
2.2.1. Cài đặt Zabbix repository 6
3.1. Giám sát máy chủ Linux 18
3.3. Cấu hình cảnh báo qua telegram 22
3.3.1. Tạo bot trên Telegram 22
Chuẩn bị những server cần thiết để làm lab
- Server Ubuntu 20.04 để cài Zabbix Server
- Switch Cisco
- Server Linux (cài 1 số dịch vụ )
- Window
- Telegram

Hình 1: Các server trong bài lab
Mở bất kì Terminal nào mà bạn muốn sử dụng(putty, cmd, Powershell,…) để SSH vào server Ubuntu 20.04. Ở đây mình dùng Terminal. Gõ lệnh sau để SSH vào server
ssh [email protected]
Sau khi đã SSH vào server ta chạy lệnh sau để cập nhật
sudo apt update & apt upgrade -y (option -y để không cần phản nhấn yes khi cài đặt hay cập nhật package)
Cài kho lưu trữ MariaDB bằng lệnh sau
#sudo apt install software-properties-common curl -y
#curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
#sudo bash mariadb_repo_setup
Chạy các lệnh sau để cập nhật và cài đặt MariaDB
apt update
apt install mariadb-server mariadb-client -y
Sau khi cài đặt ta chạy lệnh sau để cấu hình DB
sudo mysql_secure_installation
Hình 2: Thiết lập password cho root user database
Hình 3: Thiết lập MariaDB
Chạy lệnh sau để khởi động lại dịch vụ Mariadb
systemctl status mariadb (kiểm tra trạng thái mariadb service)
systemctl enable mariadb (Bật để MariaDB khởi động cùng hệ thống)
systemctl restart mariadb (Khởi động lại MariaDB)
Hình 4: Kiểm tra trạng thái MariaDB
Login vào database và tạo database cho Zabbix
#mysql -uroot -p
Hình 5: Login vào database
Sau khi login vào thì chạy các lệnh sau để tạo database cho Zabbix
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by ‘password’;
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
Hình 6: Tạo Database và User cho zabbix
Zabbix có nhiều version, ở đây mình chọn version 6.4.
Chạy lệnh sau để tải và cài đặt Zabbix repository
# wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu20.04_all.deb
# dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb
# apt update
Hình 7: Tải và cài đặt Repo cho Zabbix
-
-
- Cài đặt Zabbix
Chạy lệnh sau để cài đặt Zabbix và các phụ thuộc của nó
- Cài đặt Zabbix
-
# sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Hình 8: Cài đặt Zabbix
Sau khi cài xong gõ lệnh sau để xác minh phiên bản Zabbix đã được cài đặt
# apt-cache policy zabbix-server-mysql
Hình 9: Kiểm tra version Zabbix
Bây giờ ta sẽ import cơ sở dữ liệu vào Database vừa tạo bằng lệnh
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql –default-character-set=utf8mb4 -uzabbix -p zabbix
Hình 10: Import database zabbix
- Disable log_bin_trust_function_creators option sau khi import xong database schema bằng lệnh sau
mysql -uroot -p (login vào database và nhập password)
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
-
-
- Cấu hình database với Zabbix 6.4
-
Mở file /etc/zabbix/zabbix_server.conf (có thể dùng lệnh vi, nano,… để chỉnh sửa file) ở đây mình dùng vi
sudo vi /etc/zabbix/zabbix_server.conf
và tìm đến và sửa các dòng sau : DBName, DBUser, DBPassword và thay đổi thông tin cho trùng khớp với dữ liệu đã tạo trên Database trước đó
Đưa con trỏ tới dòng DBPassword= và nhấn phím “i” để vào mode insert.
Hình 11: Chỉnh sửa file cấu hình
Hình 12: Điền thông tin của database đã tạo vào file cấu hình
Sau khi chỉnh xong thông tin cần thiết thì nhấn phím “ESC” để thoát mode insert và nhấn phím :wq hoặc 😡 để lưu file đã chỉnh sửa
Hình 13: Lưu file cấu hình trong linux
Tiếp tục mở file vi /etc/Zabbix/apache.conf để chỉnh sửa Timezone. Tìm tới block <Ifmodule mod_php7.c> và thêm dòng
php_value date.timezone Asia/Ho_Chi_Minh vào để thiết lập Timezone của Việt Nam
Hình 14: Cấu hình Timezone Việt Nam
Sau khi cấu hình xong ta tiến hành khởi động lại Zabbix-server, Zabbix-agent và apache2
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
Hình 15: Khởi động lại service zabbix
Hình 16: Kiểm tra trạng thái Zabbix Service
Sau khi khởi động lại dịch vụ Zabbix xong thì ta lên trình duyệt và nhập IP hoặc tên miền của của server Zabbix để truy cập vào dashboard theo đường dẫn sau:
http://<IP>/zabbix hoặc http://<domain>/zabbix
Hình 17: Truy cập Web
Kéo thanh bar xuống để kiểm tra các thành phần có OK không, nếu OK hết thì nhấn Next step
Hình 18: Thiết lập ban đầu
Kiểm tra các thông tin DBName, User cho có khớp với thông tin đã khai báo trước đó và thông tin đã tạo trong database chưa, rồi nhập Password của User Zabbix rồi nhấn Next step
Hình 19: Nhập thông tin DB
Nhập thông tin Server Zabbix -> Next Step
Hình 20: Nhập tên zabbix server
Hình 21: Review lại thông tin đã nhập
Zabbix đã thiết lập thành công, nhấn Finish
Hình 22: Thiết lập thành công
Sau khi nhấn Finish thì web sẽ redirect tới trang đăng nhập, nhập tài khoản mặc định của Zabbix là Admin/zabbix để đăng nhập.
Hình 23: Màn hình Login zabbix
Màn hình Dashboard của Zabbix, ở màn hình này ta có thể tuỳ chỉnh theo ý muốn
Hình 24: Dashboard của Zabbix mặc định
Chạy các lệnh sau để cài đặt Zabbix-agent
sudo apt update
sudo apt install zabbix-agent
Mở file Zabbix-agentd.conf
sudo vi /etc/zabbix/zabbix_agentd.conf
Tìm đến các dòng sau và chỉnh lại thông số sau
Server=<IP_Zabbix_Server>
ServerActive=<IP_Zabbix_Server>
Hostname=<Hostname_của_máy_Client>
Khởi động lại Zabbix agent để áp dụng cấu hình.
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
sudo systemctl status zabbix-agent
Trên Zabbix truy cập vào Data collection -> Hosts -> Create host
Host name: Đặt tên cho host cần giám sát
Templates: Lựa chọn template cho service cần giám sát
Host groups: Lựa chọn group cho host để dễ dàng quản lý
Interface: Click Add để và nhập IP của host cần giám sát
Hình 25: Thêm host giám sát
Host database đã được giám sát, ta có thể theo dõi các host được giám sát trong phần Monitoring
Hình 26: Giám sát server
Ta có thể xem các thông tin chi tiết trong phần Monitoring -> Latest data
Để giám sát Switch Cisco ta cần phải cấu hình SNMP trên SW
Cấu hình SNMP trên SW Cisco
Hình 27: Cấu hình SNMP trên Switch
Hình 28: Show thông tin SNMP trên Switch
Thiết lập trên Zabbix Server
Chạy lệnh sau để xem zabbix có nhận được thông tin từ switch chưa
sudo apt install snmp snmp-mibs-downloader
snmpwalk -v2c -c public 10.0.0.30 (IP switch)
Hình 29: Zabbix Server đã nhận được thông tin từ Switch
Cài đặt Template cho Cisco Switch trong Zabbix
Truy cập Data collection -> Hosts -> Create Host rồi nhập các thông tin cần thiết. Chọn Templates phù hợp.
Mục Interface lựa chọn type là SNMP và nhập IP của Switch vào
Hình 30: Thêm switch để giám sát
Sau khi thêm Switch vào,
Truy cập Monitoring -> Latest data , chọn host muốn xem thông tin, ví dụ ở đây là host Cisco Switch
Hình 31: Thông tin các metric của Switch được hiển thị
=> Tương tự thì ta có thể thêm rất nhiều thiết bị vào để giám sát thông qua Zabbix-agent hoặc giao thức SNMP.
Một phần không thể thiếu trong giám sát hệ thống là thông báo để không phải khi nào cũng nhìn vào màn hình, có thể là qua email, telegram, slack,… nhưng trong bài này ta sẽ tiến hành cấu hình cảnh báo thông qua telegram
Kết nối với botfather để lấy TOKEN. Vào Telegram và gõ vào ô tìm kiếm @BotFather chọn BotFather có tick xanh như hình hoặc truy cập trực tiếp bằng link https://telegram.me/BotFather để kết nối với @BotFather
Nhấn vào BotFather và nhấn Start để bắt đầu
Hình 32: Tìm BotFather và start lên
Vì trước đây mình đã start lên rồi nên không cần phải start nữa
Sau khi start bot lên thì gõ các lệnh sau vào khung chat với @BotFather để tạo bot
/newbot
macld2024zabbix_bot
macld2024zabbix_bot
BotFather sẽ trả về cho bạn 1 token, ta cần lưu token này lại.
Hình 33: Tạo bot và lấy token
Lấy ID bot
Trong thanh tìm kiếm của telegram tìm IDBOT và nhấn Start để bắt đầu trò chuyện
Hình 34: Tìm IDbot
Tiếp theo gõ /getid để lấy ID bot
Lấy ID group
Để lấy ID group thì đầu tiên ta phải có 1 group telegram. Ở đây mình đã có 1 group lên là LAB-noti và mình sẽ demo với group này
Bây giờ sẽ thêm @myidbot và macld2024zabbix_bot vào thành viên group. Sau khi thêm xong thì gõ /getgroupid @macld2024zabbix_bot
Hình 35: Thêm bot vào group
Hình 36: Thêm IDBot vào group
Hình 37: Lấy ID group
-
-
- Thiết lập telegram trên Zabbix
-
- Thiết lập Media types
Truy cập Alerts -> Media Types
Kéo xuống tìm Telegram -> Enable . Sau đó nhấn vào telegram để thiết lập thông số
Hình 38: Thiết lập Telegram trên giao diện
Điền ID group và Token ở trên vào mục To và Token
Hình 39: Điền Token và ID group
Sau khi điền xong nhấn Update để cập nhật
Ta tiến hành kiểm tra để xem đã thiết lập thành công chưa bằng cách nhấn vào nút Test bên phải dòng telegram
Hình 40: Test xem telegram đã hoạt động chưa
Nhập thử message và nhấn Test
Hình 41: Test notification
Thông báo như vậy là đã thành công
Hình 42: Nhận thông báo telegram
- Tạo user alert qua telegram
Truy cập User-> Users và nhấn vào user Admin
Hình 43: Tạo User alert
Qua tab Media và nhấn Add
Hình 44: Chỉnh sửa Media
Nhập ID bot đã lấy ở bước trên rồi nhấn ADD
Hình 45: Nhập ID bot
Sau khi Add xong thì nhấn Update
Hình 46:Nhấn Update
- Tạo Action để gửi thông báo qua telegram
Bây giờ ta cần tạo 1 action để gửi thông báo tới telegram, nếu không thì hệ thống chỉ cảnh báo ở giao diện của Zabbix
Truy cập Alerts -> Action -> Trigger actions -> Create action.
Tại mục Action nhập tên action sau đó chọn qua tab Operations
Hình 47: Tạo action
Default operation step duration: 1m
Operations: chọn Add , tại mục Send to user groups chọn Add và thêm Zabbix administrators vào
Recovery operations: Bạn chọn Add , tại mục Send to user groups chọn Add và thêm Zabbix administrators vào.
Rồi nhấn Add
Hình 48: Action đã được kích hoạt
Sau khi thiết lập hoàn tất ta sẽ tiến hành test thử bằng cách tắt ping, tắt Zabbix-agent của server window. Và sẽ có cảnh báo tới Telegram như hình bên dưới.
Hình 49: Nhận thông báo khi service hoặc host fail
Trên đây là cách cài đặt và cấu hình cơ bản cho Zabbix. Để chuyên sâu hơn thì ta sẽ tiếp tục ở bài sau.
https://www.zabbix.com/manuals
https://www.zabbix.com/documentation/6.4/en/manual

















































