Docker là một nền tảng ảo hóa cấp phần mềm được sử dụng để xây dựng, đóng gói và triển khai ứng dụng trong các môi trường cô lập gọi là container. Nó cung cấp một cách tiện lợi để đóng gói ứng dụng và tất cả các phụ thuộc của chúng trong một gói duy nhất gọi là Docker container, đảm bảo rằng ứng dụng sẽ hoạt động đúng như mong đợi trên bất kỳ máy chủ nào mà Docker đã được cài đặt.
Zabbix là một phần mềm mã nguồn mở giám sát và quản lý hệ thống, mạng và ứng dụng. Nó cung cấp các tính năng như giám sát hiệu suất, cảnh báo, ghi nhật ký và phân tích dữ liệu thu thập từ các thiết bị và ứng dụng khác nhau. Zabbix giúp quản trị viên hệ thống kiểm soát và giám sát toàn bộ hạ tầng công nghệ thông tin của mình.
Khi chạy Zabbix trên container, Zabbix Server và các thành phần liên quan (như Zabbix Agent, cơ sở dữ liệu) được đóng gói trong các container Docker riêng biệt. Điều này mang lại một số ưu điểm như sau:
- Cô lập: Container cho phép cô lập ứng dụng và các thành phần của nó, đảm bảo rằng các ứng dụng không tác động lẫn nhau và không gây ảnh hưởng tiêu cực đến hệ thống.
- Động nhất và dễ triển khai: Container cho phép triển khai Zabbix một cách nhanh chóng và dễ dàng trên nhiều môi trường khác nhau mà không cần phải lo lắng về sự tương thích và cài đặt phức tạp.
- Linh hoạt mở rộng: Container cho phép mở rộng Zabbix bằng cách thêm hoặc xóa các container một cách linh hoạt, giúp tăng khả năng chịu tải và quản lý tài nguyên hiệu quả.
- Giảm thiểu xung đột phần mềm: Với việc đóng gói ứng dụng và các phụ thuộc của nó trong container, các xung đột giữa các ứng dụng và phụ thuộc trên cùng một hệ thống được giảm thiểu.
Triển khai Zabbix Server tất cả trong một Container với Image hoanghd164/zabbix-server:1.0.5
. Đây là Repo đang Public trên Docker Hub của mình. Mình xây dựng Image này với mục đích test lab là chính, các bạn có thể sử dụng nó triển khai lab cho nhanh.
Trên máy tính hoặc Server của bạn hãy cài đặt Docker trước (xem lại bài https://wiki.hoanghd.com/cai-dat-docker-tren-ubuntu/
). Sau khi cài xong Docker bạn hãy chạy câu lệnh “docker run -itd --name=zabbix-server -p 80:80 hoanghd164/zabbix-server:1.0.5
“. Câu lệnh trên sẽ chạy một container Zabbix Server từ image “hoanghd164/zabbix-server:1.0.5” và ánh xạ cổng 80 từ máy chủ host sang cổng 80 trong container. Container sẽ chạy ở chế độ nền và được đặt tên là “zabbix-server”.
- “docker run”: Dùng để chạy một container từ một image.
- “-itd”: Các cờ để thiết lập chế độ chạy container:
- “-i”: Kết nối stdin của container với terminal của bạn.
- “-t”: Thiết lập chế độ tương tác (interactive) với container.
- “-d”: Chạy container ở chế độ nền (detached mode).
- “–name=zabbix-server”: Đặt tên cho container là “zabbix-server”.
- “-p 80:80”: Ánh xạ cổng (port mapping) từ máy chủ host sang container:
- 80:80: Ánh xạ cổng 80 trên máy chủ host với cổng 80 trên container. Điều này cho phép truy cập vào Zabbix Server thông qua cổng 80 trên máy chủ host.
- “hoanghd164/zabbix-server:1.0.5”: Tên image và phiên bản của Zabbix Server được sử dụng để tạo container.
$ docker run -itd --name=zabbix-server -p 80:80 hoanghd164/zabbix-server:1.0.5
Unable to find image 'hoanghd164/zabbix-server:1.0.5' locally
1.0.5: Pulling from hoanghd164/zabbix-server
4e43cebf9258: Already exists
578addf8460c: Pull complete
b360d6d6a098: Pull complete
a4d914cb2f83: Pull complete
4f4fb700ef54: Pull complete
458f88bcf6fc: Pull complete
Digest: sha256:32c1cc6366c612c5480d0643e71597e4c64bc14cecd02e75bb7e6c2d10a451b6
Status: Downloaded newer image for hoanghd164/zabbix-server:1.0.5
5a0397fecd17a78e93da9b574285cef629b7f098bdbf85618382bada1dc8d25d
Sau khi triển khai xong, bạn có thể dùng lệnh docker ps để kiểm tra trạng thái container.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a0397fecd17 hoanghd164/zabbix-server:1.0.5 "entrypoint" 24 seconds ago Up 21 seconds 0.0.0.0:80->80/tcp zabbix-server
Do mình expose port của Zabbix Web là 80, nên mình sẽ sử dụng IP của máy đang chạy container để truy cập vào Web Interface bằng url http://<ip_docker_host>/zabbix
.
Thông tin login là:
- Username: Admin.
- Password: Hoanghd164
Và kết quả sau khi login thành công.
Dưới đây là hình ảnh động quy trình triển khai cho các bạn tham khảo.
Với container này các bạn có thể thoải mái test lab hoặc cũng có thể sử dụng chạy prod cũng được (tuỳ các bạn).