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/

相关文章
相关标签/搜索