docker部署zabbix

環境部署

2臺物理機:zabbix-server 192.168.233.96  zabbix-agent 192.168.233.95mysql

docker版本:(docker --virsion 或 docker info 能夠查看)Server Version: 19.03.1linux

zabbix版本:(/usr/local/zabbix/sbin/zabbix_server --V 能夠查看)zabbix 4.0web

docker鏡像源:(下載到 /etc/yum.repo.d/ 目錄下)wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposql

 

安裝docker

yum install docker-ce -y(社區免費版是 -ce 企業收費版是 -ee)docker

解決依賴關係的時候可能會報以下錯apache

Error: Package: containerd.io-1.2.6-3.3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74

錯誤緣由是:須要的 container-selinux 包 版本較低,須要2.74版本的json

解決方案:到官方網站 mirror.centos.org 找到所需版本的包,下載安裝centos

 

yum -y install http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm

登陸阿里雲 --> 進入控制檯 -->產品與服務 --> 容器鏡像服務 --> 鏡像加速器

編寫一個腳本並執行(實現鏡像加速)

#!/bin/bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://m8ce5kzp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 

使用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

 

 

在部署zabbix的時候最好用mariadb10.2版本如下的,包括10.2,由於10.3.17版本對於長字段有了一些限制,這樣會致使倒數據時候出現報錯,直接用10.2就能夠了,10.2也是mariadb官網給出的一個穩定版,仍是很好用的bash

 

以後均爲zabbix界面使用

 

 

用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,networkless

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/

相關文章
相關標籤/搜索