Cài Bareos không khó — kho gói chính thức kéo về gần như mọi thứ. Cái khó là vài bước nhỏ mà bỏ sót thì hệ thống vẫn chạy, nhưng chạy sai theo cách rất khó nhận ra.
Bài trước đã giới thiệu bốn thành phần của Bareos. Bài này dựng cả bốn trên một máy chủ Ubuntu 24.04, chạy một job backup đầu tiên, rồi kể lại ba bẫy cài đặt - hai trong số đó đội kỹ thuật Cloudzone đã gặp khi vận hành Bareos.
Chuẩn bị máy chủ
| Hạng mục | Mức tối thiểu để thử | Ghi chú |
|---|---|---|
| Hệ điều hành | Ubuntu 24.04 LTS | Các bước tương tự trên Debian 12 |
| CPU / RAM | 2 vCPU / 4 GB | Director và catalog nhẹ; tăng khi chạy nhiều job song song |
| Ổ hệ thống | 30 GB | Cho hệ điều hành, PostgreSQL và log |
| Ổ kho backup | Một ổ riêng, tuỳ dung lượng cần lưu | Tách hẳn khỏi ổ hệ thống, xem bẫy 3 |
| Múi giờ | Đặt đúng trước khi cài PostgreSQL | Xem bẫy 1 |
Việc đầu tiên, trước mọi lệnh apt install:
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
timedatectl | grep "Time zone"Các bước cài đặt
Bước 1 — Gắn ổ kho backup
Gắn ổ kho vào đúng thư mục Bareos sẽ ghi (/var/lib/bareos/storage) trước khi cài. Ví dụ ổ thứ hai là /dev/sdb:
sudo mkfs.xfs /dev/sdb
sudo mkdir -p /var/lib/bareos/storage
UUID=$(sudo blkid -s UUID -o value /dev/sdb)
echo "UUID=$UUID /var/lib/bareos/storage xfs defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount -a && df -h /var/lib/bareos/storageDùng UUID thay vì /dev/sdb trong fstab để không bị lệch khi thứ tự ổ đĩa thay đổi sau một lần khởi động lại.
Bước 2 — Thêm kho gói Bareos và cài
Bareos cung cấp sẵn script thêm kho gói cho từng bản phân phối:
wget https://download.bareos.org/current/xUbuntu_24.04/add_bareos_repositories.sh
sudo sh ./add_bareos_repositories.sh
sudo apt update
sudo apt install -y postgresql
sudo apt install -y bareos bareos-database-postgresql bareos-webuiGói bareos là gói tổng, kéo theo Director, Storage Daemon, File Daemon và bconsole. Khi trình cài hỏi có dùng dbconfig-common để cấu hình cơ sở dữ liệu không, chọn Yes — nó tự tạo database bareos, tạo bảng và cấp quyền.
Kênh
currentlà bản build mới nhất của nhánh cộng đồng. Bareos còn có kênh bản ổn định đi kèm gói hỗ trợ trả phí. Trước khi dựng hệ thống thật, đọc trang tải về của Bareos để chọn kênh phù hợp.
Bước 3 — Kiểm tra catalog
sudo -u postgres psql -c '\l' | grep bareosPhải thấy database bareos. Resource Catalog của Director (/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf) mặc định để dbpassword rỗng — đó là cố ý, không phải thiếu: Director chạy dưới user hệ thống bareos và đăng nhập PostgreSQL bằng peer authentication qua unix socket, không cần mật khẩu.
Bước 4 — Khởi động dịch vụ
sudo chown bareos:bareos /var/lib/bareos/storage
sudo -u bareos bareos-dir -t && echo "Cau hinh hop le"
sudo systemctl enable --now bareos-director bareos-storage bareos-filedaemon
systemctl status bareos-director bareos-storage bareos-filedaemon --no-pager
bareos-dir -t đọc toàn bộ cấu hình và báo lỗi mà không khởi động Director. Hãy tập thói quen chạy nó trước mọi lần khởi động lại hay reload — bài 3 sẽ nói kỹ hơn.
Kiểm tra Director bằng bconsole:
echo "status dir" | sudo bconsoleDòng đầu tiên phải là 1000 OK: ... kèm tên và phiên bản Director. Đừng chỉ nhìn mã thoát của lệnh: bconsole trả mã 0 kể cả khi không kết nối được Director (chuyện này sẽ quay lại ở bài 10).

Bước 5 — Bật WebUI
WebUI đăng nhập bằng một console của Director. Tạo console dành riêng cho WebUI với profile webui-admin có sẵn:
sudo bconsole
*configure add console name=admin password=<mat-khau-manh> profile=webui-admin tlsenable=no
*reload
*quitSau đó bật PHP-FPM cho Apache — bước này hay bị sót, xem bẫy 2:
sudo a2enmod setenvif proxy_fcgi
sudo a2enconf php8.3-fpm
sudo systemctl enable --now php8.3-fpm
sudo systemctl reload apache2
curl -o /dev/null -s -w "%{http_code}\n" http://localhost/bareos-webui/Lệnh cuối phải trả 200. Mở http://<địa-chỉ-máy-chủ>/bareos-webui/ và đăng nhập bằng console vừa tạo.

Bước 6 — Chạy job backup đầu tiên
Cấu hình mặc định đã có sẵn job backup-bareos-fd — backup một thư mục nhỏ trên chính máy Bareos, vừa đủ để thử cả chuỗi Director → File Daemon → Storage Daemon → catalog:
sudo bconsole
*run job=backup-bareos-fd level=Full yes
*wait
*list jobs
*messagesJob kết thúc với trạng thái T (Terminated normally) là hệ thống đã chạy thông suốt. Thử luôn chiều ngược lại bằng lệnh restore ra một thư mục tạm — một hệ thống backup chưa từng restore thử thì chưa thể coi là xong.
Ba bẫy cài đặt
Cả ba đều có chung một đặc điểm: hệ thống không báo lỗi rõ ràng, nên rất dễ bỏ qua cho tới khi có hậu quả.
Bẫy 1 — PostgreSQL sai múi giờ, WebUI hiện thời gian chạy âm
Triệu chứng: trên WebUI, cột Run Time của job đang chạy hiện số âm, kiểu -06:50:35. Backup vẫn chạy bình thường, dữ liệu không sai.
Nguyên nhân: catalog lưu giờ bắt đầu job bằng kiểu timestamp không múi giờ. Director ghi vào đó giờ địa phương (vd giờ Việt Nam). Nhưng nếu PostgreSQL chạy ở múi UTC, WebUI tính NOW() - starttime theo giờ UTC — lệch đúng 7 tiếng. PostgreSQL lấy múi giờ của hệ điều hành tại thời điểm tạo cluster; đổi múi giờ hệ thống sau đó không đổi theo.
Phòng tránh: đặt múi giờ hệ thống trước khi cài PostgreSQL (phần Chuẩn bị).
Sửa khi đã lỡ: đặt múi giờ riêng cho database bareos — không cần khởi động lại PostgreSQL hay Director, phiên kết nối mới sẽ nhận giá trị mới:
sudo -u postgres psql -c "SHOW timezone;"
sudo -u postgres psql -c "ALTER DATABASE bareos SET timezone TO 'Asia/Ho_Chi_Minh';"Kiểm lại bằng hai lệnh dưới — múi giờ của hệ điều hành và của database bareos phải trùng nhau:

Bẫy 2 — WebUI trả 404 dù Apache đang chạy
Triệu chứng: http://<máy-chủ>/bareos-webui/ trả 404. Apache chạy, file cấu hình WebUI đã được bật, log không có gì đáng ngờ.
Nguyên nhân: trên Ubuntu 24.04, gói bareos-webui không tự bật PHP-FPM. Nó chỉ in một dòng NOTICE trong lúc cài — trôi mất giữa hàng trăm dòng đầu ra của apt.
Cách sửa: bật proxy_fcgi và cấu hình php8.3-fpm như Bước 5, rồi kiểm bằng curl cho tới khi ra 200. Bài học rộng hơn: đọc hết phần NOTICE trong đầu ra của apt install, đừng chỉ nhìn dòng cuối.
Bẫy 3 — Kho backup nằm chung ổ hệ thống
Triệu chứng: chạy tốt vài tuần, rồi một đêm ổ hệ thống đầy. PostgreSQL không ghi được, catalog lỗi, và mọi job sau đó đều hỏng — kể cả job backup catalog.
Nguyên nhân: nếu không gắn ổ riêng, /var/lib/bareos/storage nằm trên ổ gốc, chung với hệ điều hành và cơ sở dữ liệu. Dung lượng backup tăng dần cho tới khi chiếm hết chỗ.
Phòng tránh:
- Luôn dùng ổ riêng cho kho (Bước 1), để kho đầy thì chỉ job backup dừng, catalog và hệ điều hành vẫn sống.
- Chọn filesystem nới được khi đang chạy. XFS nới trực tuyến bằng
xfs_growfsrất nhanh, nhưng không thu nhỏ được — hãy nới từng bước vừa đủ, đừng cấp dư một lần. - Đặt cảnh báo khi kho vượt 80%. Bài 5 và 6 sẽ giải thích vì sao đĩa backup cứ đầy dần, và cách tính trước dung lượng cần.

Bảo mật tối thiểu trước khi dùng thật
- Không mở cổng 9101–9103 ra Internet. Chỉ cho các máy chủ cần backup kết nối tới Storage Daemon, và Director tới File Daemon.
- Đặt WebUI sau HTTPS và giới hạn IP quản trị. WebUI chạy HTTP trơn; dùng nginx làm reverse proxy có chứng chỉ và danh sách IP được phép.
- Mỗi người một console, không dùng chung một tài khoản WebUI. Ai chỉ cần xem thì dùng profile chỉ-đọc.
- Giữ quyền file cấu hình
root:bareos 0640— các file trong/etc/bareos/chứa mật khẩu kết nối giữa các thành phần.
Tóm tắt
- Đặt múi giờ và gắn ổ kho riêng trước khi cài.
apt install bareos bareos-database-postgresql bareos-webuikéo về gần như mọi thứ; catalog tự tạo qua dbconfig-common.- Chạy
bareos-dir -ttrước mọi lần khởi động hay reload; kiểm Director bằng dòng1000 OK, không bằng mã thoát. - WebUI cần bật PHP-FPM bằng tay trên Ubuntu 24.04.
- Chạy thử một job và một lần restore trước khi coi là xong.
Bài sau: Giải phẫu cấu hình Bareos — Job, JobDefs, FileSet, Schedule và Pool nối với nhau thế nào, và cách viết cấu hình backup cho một máy chủ web thật.
Bài viết thuộc chuỗi “Bareos từ cài đặt tới vận hành” của đội kỹ thuật Cloudzone.