docker部署zabbix


我相信大家都已經會再物理機上跑zabbix並且監控了,那么有沒有想過在docker中跑zabbix?下面咱們來看看如何在docker中搭建zabbix並且監控

部署環境

2台物理機機器:

zabbix-server:192.168.254.13

zabbix-agent:192.168.254.17

docker版本:Server Version: 19.03.1

zabbix版本:4.0

docker的鏡像網站(清華大學):https://mirrors.tuna.tsinghua.edu.cn/

安裝docker

cd /etc/yum.repos.d/
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

 

部署zabbix

1.部署mysql數據庫

 
         

docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
-v /mysql/data/:/var/lib/mysql -v /mysql/conf/:/etc/my.cnf.d/ \
-d mariadb:10.2

2.部署zabbix-server

docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

3.部署apache web

docker run --name zabbix-web-apache-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-apache-mysql:latest

4.打開瀏覽器

用戶名為Admin,密碼為zabbix

 

 5.安裝zabbix客戶端agent

docker run --name zabbix-agent \
-e ZBX_HOSTNAME="self" \
-e ZBX_SERVER_HOST="192.168.254.13" \
-e ZBX_METADATA="client" \
-p 10050:10050 \
-d zabbix/zabbix-agent:latest

6.在zabbix server端開啟自動注冊規則

 

 過一會我們就可以看到宿主機192.168.254.17上的容器已經被注冊進來了

 

最后說明一下上面用到的命令和參數解釋

說明一下各個參數的意義:
--name:代表容器的名字,或者標簽
-e:代表要執行的環境變量
-p:代表映射的端口,:前面為宿主機,:后面代表容器的端口
-d:代表后台運行
-v:代表映射卷
--character-set-server:字符集
--collation-server:大小寫是否敏感
MYSQL_USER:代表zabbix用戶名
MYSQL_PASSWORD:代表zabbix的密碼
MYSQL_DATABASE:zabbix創建的數據庫名字為zabbix
MYSQL_ROOT_PASSWORD:代表數據庫root密碼,沒有指定USER是因為默認就是root

更多參數詳情請參照以下網站: mariadb10.2參考手冊:https:
//hub.docker.com/_/mariadb zabbix-server參考手冊:https://hub.docker.com/r/zabbix/zabbix-server-mysql zabbix-web-apache-mysql參考手冊:https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql zabbix-agent參考手冊:https://hub.docker.com/r/zabbix/zabbix-agent

 用docker-compose部署zabbix

編輯docker-compose.yaml文件

[root@master ~]# cat docker-compose.yaml
version: '3.3'
services:
  mysql-server:
    container_name: mariadb-server
    image: mariadb:10.2
    restart: always
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: root
    volumes:
    - /data/mysql/data/:/var/lib/mysql
    - /data/mysql/conf/:/etc/my.cnf.d/server.cnf
  zabbix-server:
    container_name: zabbix-server
    image: zabbix/zabbix-server-mysql
    restart: always
    environment:
      DB_SERVER_HOST: "mysql-server"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix" 
      MYSQL_ROOT_PASSWORD: "root"
    ports:
      - 10051:10051
    links:
      - mysql-server
  zabbix-web:
    container_name: zabbix-web
    image: zabbix/zabbix-web-apache-mysql
    restart: always
    depends_on:
    - mysql-server
    - zabbix-server
    environment:
      DB_SERVER_HOST: "mysql-server"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix"
      MYSQL_ROOT_PASSWORD: "root"
    ports:
      - 80:80
    links:
      - mysql-server
      - zabbix-server

用docker-compose執行創建容器

#啟動docker-compose.yaml文件中定義的容器,並且是后台運行
[root@master ~]# docker-compose up -d

說明

docker-compose命令的用法

Commands:
  build              Build or rebuild services                       
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the Compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  images             List images
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  top                Display the running processes
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

 

build 構建或重建服務
help 命令幫助
pause 暫停服務
exec 進入到一個docker容器的交互界面
kill 殺死容器
logs 顯示docker-compose.yaml文件中容器的輸出內容
ps 顯示啟動的容器
pull 拉取服務鏡像
restart 重啟服務
rm 刪除停止的容器
run 運行容器
scale 設置服務的容器數目
start 開啟服務
stop 停止服務
up 創建並啟動容器
config 測試docker-comose.yaml文件的語法是否ok
 

 

docker-compose.yaml文件中的語法參數說明

一個docker-compose.yaml文件大致分為:version,services,network

version

version可以是1,2,3這是大版本,還有小版本,比如1.0,2.2,3.3等,在定義yaml文件時必須制定version版本,每個版本的語法可能不太相同,可以參照文章下方給的官方文檔了解詳情

service

1.service中定義服務名稱,service的下一級定義服務名稱

version: '3.3'
services:
  服務名稱:

 

2.在服務名稱下一級標簽有container_name,image,restart,privileged,environment,volumes,ports,links等

container_name:定義容器名稱
image:鏡像名稱
restart
    restart: "no"    #不重啟
    restart: always    #總是重啟
    restart: on-failure #失敗時才重啟
    restart: unless-stopped #除非停止
privileged:獲取最高權限
environment:設置系統環境變量
    KEY1:VALUE1
    KEY2:VALUE2
volumes    映射容器卷
    - HOST_PATH:CONTAINER_PATH
    - HOST_PATH:CONTAINER_PATH
ports:    映射容器端口
    - HOST_PORT: CONTAINER_PORT
links: 連接容器
    - SERVICE_NAME
depends_on:定義容器的先后順序
    - zabbix-server
    - zabbix-web
    - mysql-server

 

想要查看更多docker-compose文件的語法格式請參照https://docs.docker.com/compose/compose-file/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM