Zabbix là một giải pháp giám sát dịch vụ hệ thống mạng phân tán mã nguồn mở nổi tiếng, có nhiều tính năng độc đáo và khả năng tùy biến cao. Zabbix có khả năng phục vụ cho hệ thống mạng tầm trung và lớn của các doanh nghiệp hiện tại với mức chi phí đầu tư vừa phải.
Các điểm nổi bật về Zabbix:
Bài viết sẽ gồm các mục
Chuẩn bị 2 VM
Trong môi trường này mình sẽ sử dụng lớp mạng 10.123.50.0/24, gateway là 10.123.50.250 và user sẽ là root
Tiến hành cấu hình cơ bản
VM: ZabbixWeb
Đặt IP
vim /etc/netplan/00-installer-config.yaml
Sau khi cấu hình xong dùng lệnh netplan apply để update IP
Đặt Hostname
Update và cài đặt các package cần thiết
VM: ZabbixDB
Đặt IP
vim /etc/netplan/00-installer-config.yaml
Sau khi cấu hình xong dùng lệnh netplan apply để update IP
Đặt Hostname
Update và cài đặt các package cần thiết
Tạo phân vùng chứa Database
Hiện tại phân vùng của mình như sau
Minh sẽ sử dụng /dev/sdb để tạo phân vùng chứa của Database và mount nó vào /app
Các bạn có thể tham khảo bài viết về LVM của mình dể hiểu thêm phần này nhé
Ở đây mình sẽ sử dụng Docker để tạo Service PostgreSQL, chuẩn bị folder và file docker-compose để tạo Postgresql
Sau đó tạo file [docker-compose.yml với nội dung bên dưới, Các giá trị POSTGRES_USER, POSTGRES_PASWORD, POSTGRES_DB có thể thay đổi, bên dưới là các giá trị mình sẽ sử đụng trong bài viết
Sau khi hoàn tất file docker-compose.yml, sử dụng lệnh sau để service chạy
Như vậy là hoàn tất quá trình cài đặt ZabbixDB
Chạy lệnh sau trên ZabbixWeb để thiết lập Database trên DB
Cấu hình file /etc/zabbix/zabbix_server.conf, tìm các giá trị bên dưới và sửa lại giá trị đã cấu hình
Lưu ý: Có phân biệt ký tự hoa và thường
Sửa file /etc/zabbix/nginx.conf để thay đổi giá trị port, bỏ dấu # trc gía trị listen
Sau khi hoàn tất, tiến hành bắt đầu tiến trình của Zabbix Server và Agent
Truy cập vào trang web Zabbix, như trong trường hợp của mình sẽ là 10.123.50.60:8080
Chọn Next Step để tiếp tục
Khai báo thông tin connection tới database
Kết quả cuối cùng . User/Pass mặc định sẽ là Admin/zabbix ( Lưu ý A viết hoa)
Các điểm nổi bật về Zabbix:
- Giám sát linh hoạt: Zabbix cho phép theo dõi, phân tích và hiển thị thông số hoạt động của các thiết bị, máy chủ và ứng dụng trong mạng của bạn.
- Tính toàn vẹn và tùy biến: Zabbix có khả năng tùy chỉnh cao và cung cấp thông báo sự cố qua email, SMS, OTP App, và nhiều cơ chế thông báo khác.
- Giao diện web tinh tế: Báo cáo, biểu đồ và cấu hình thông số của Zabbix có thể dễ dàng truy cập qua giao diện web đẹp mắt.
Bài viết sẽ gồm các mục
Chuẩn bị
Chuẩn bị 2 VM
Hostname | IP | OS | vCPU | RAM | Disk |
ZabbixWeb | 10.123.50.60 | Ubuntu 22.04.4 LTS | 4 | 8 | 80 |
ZabbixDB | 10.123.50.61 | Ubuntu 22.04.4 LTS | 4 | 8 | 180 |
Tiến hành cấu hình cơ bản
VM: ZabbixWeb
Đặt IP
vim /etc/netplan/00-installer-config.yaml
Bash:
# This is the network config written by 'subiquity'
network:
ethernets:
ens160:
addresses:
- 10.123.50.60/24
nameservers:
addresses:
- 1.1.1.1
search: []
routes:
- to: default
via: 10.123.50.250
version: 2
Bash:
netplan apply
Bash:
hostnamectl set-hostname ZabbixWeb
Code:
apt update && apt upgrade -y
## Cấu hình Zabbix Repository
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
apt update
## Cài dặt Zabbix Server, Frontend, Agent
apt install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
## Cài đặt postgresql client
apt-get install postgresql-client
Đặt IP
vim /etc/netplan/00-installer-config.yaml
Bash:
# This is the network config written by 'subiquity'
network:
ethernets:
ens160:
addresses:
- 10.123.50.61/24
nameservers:
addresses:
- 1.1.1.1
search: []
routes:
- to: default
via: 10.123.50.250
version: 2
Bash:
netplan apply
Bash:
hostnamectl set-hostname ZabbixDB
Code:
apt update && apt upgrade -y
## Cài đặt Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
Hiện tại phân vùng của mình như sau
Bash:
root@ZabbixDB:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 62M 1 loop /snap/core20/1587
loop1 7:1 0 79.9M 1 loop /snap/lxd/22923
loop2 7:2 0 63.9M 1 loop /snap/core20/2182
loop3 7:3 0 87M 1 loop /snap/lxd/27037
loop4 7:4 0 40.4M 1 loop /snap/snapd/20671
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 78G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /
sdb 8:16 0 100G 0 disk
sr0 11:0 1 1024M 0 rom
Bash:
pvcreate /dev/sdb
vgcreate data-vg /dev/sdb
lvcreate -l +100%FREE data-vg --name data-lv
mkfs.xfs /dev/data-vg/data-lv
mkdir /app
## Phần này sẽ mount tự động khi khởi dộng lại máy
echo "/dev/data-vg/data-lv /app xfs defaults 0 0" >> /etc/fstab
mount -a
Cấu hình và khởi tạo ZabbixDatabase
Ở đây mình sẽ sử dụng Docker để tạo Service PostgreSQL, chuẩn bị folder và file docker-compose để tạo Postgresql
Bash:
mkdir /app/postgresql && cd /app/postgresql
YAML:
version: '3'
services:
database:
image: 'postgres:latest'
volumes:
- /app/postgresql/data/:/var/lib/postgresql/data/
ports:
- 5432:5432
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: ZabbixDB
Bash:
docker compose up -d
Cấu hình ZabbixWeb
Chạy lệnh sau trên ZabbixWeb để thiết lập Database trên DB
Bash:
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | psql -h 10.123.50.61 -p 5432 -U zabbix ZabbixDB
Lưu ý: Có phân biệt ký tự hoa và thường
Bash:
DBHost=10.123.50.61
DBName=ZabbixDB
DBUser=zabbix
DBPassword=zabbix
Bash:
# listen 8080;
Code:
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
Chọn Next Step để tiếp tục
Khai báo thông tin connection tới database
Kết quả cuối cùng . User/Pass mặc định sẽ là Admin/zabbix ( Lưu ý A viết hoa)
Attachments
Last edited: