• docker 部署 zabbix


    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
  • 相关阅读:
    开博了,将会定期更新博客
    C++实验二
    C++实验三
    c++第八章课后题
    c++第八章复数运算
    我的第一篇Window Live Writer日志
    Item 3: Prefer the is or as Operators to Casts(选择is或者as操作符而不是做强制类型转换)
    C# 中list的排序
    CodeSmith的应用
    using 关键字
  • 原文地址:https://www.cnblogs.com/it-peng/p/11584411.html
Copyright © 2020-2023  润新知