zoukankan      html  css  js  c++  java
  • Zabbix-(二) 使用docker部署

    Zabbix-(二)使用docker部署

    一.前言

    前文记录了在服务器上搭建zabbix平台,本文记录使用docker部署zabbix 4.4

    准备

    • Centos7.6 虚拟机,并安装了docker 版本为18.09.6

    二.docker部署

    ​ 可以通过拉取官方镜像,修改启动参数,部署zabbix-server-mysql、zabbix-web-nginx-mysql、zabbix-web-nginx-mysql、zabbix-agent模块。本文记录拉取各个模块的镜像,并启动容器部署。

    ​ 除此之外,也可以拉取zabbix-appliance镜像,进行部署,该镜像内置了Mysql数据库、Zabbix server、基于Nginx和Java gateway的Zabbix web页面。可以参考官方部署示例:通过Zabbix appliance部署

    1.官方镜像

    各模块镜像地址:

    zabbix官方所有镜像地址

    2.容器部署

    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" 
            -d mysql:8.0 
            --character-set-server=utf8 --collation-server=utf8_bin
      
    2. zabbix java gateway部署

      docker run --name zabbix-java-gateway -t 
            -d zabbix/zabbix-java-gateway:centos-4.4-latest
      
    3. zabbix-server-mysql部署

      ​ 这里link了上面部署的mysql容器和zabbix java gateway容器,并且指定数据库相关参数,和修改时区。更多的参数可以参考dockerhub zabbix-server-msql启动参数 以及 zabbix-server 4.4官方参数

      注:如果启动日志无法连接到mysql,可以查看部署问题

      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_PORT="3306" 
            -e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
            -e ZBX_TIMEOUT="20" 
            -e PHP_TZ="Asia/Shanghai" 
            -v /etc/localtime:/etc/localtime 
            --link zabbix-java-gateway:zabbix-java-gateway 
            --link mysql-server:mysql 
            -p 10051:10051 
            -d zabbix/zabbix-server-mysql:centos-4.4-latest
      
    4. zabbix-web-nginx-mysql部署

      需要配置数据库相关参数,并暴露容器80端口供外部18080端口访问

      docker run --name zabbix-web-nginx-mysql -t 
            -e DB_SERVER_HOST="mysql-server" 
            -e MYSQL_DATABASE="zabbix" 
            -e MYSQL_USER="zabbix" 
            -e MYSQL_PASSWORD="zabbix" 
            -e MYSQL_PORT="3306" 
            -e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
            -e ZBX_SERVER_HOST="zabbix-server-mysql" 
            -e PHP_TZ="Asia/Shanghai" 
            -v /etc/localtime:/etc/localtime 
            --link zabbix-server-mysql:zabbix-server-mysql 
            --link mysql-server:mysql 
            -p 18080:80 
            -d zabbix/zabbix-web-nginx-mysql:centos-4.4-latest
      
    5. zabbix-agent部署

      docker run --name zabbix-agent 
                 -e ZBX_HOSTNAME="zabbix-server-mysql" 
                 -e ZBX_SERVER_HOST="zabbix-server-mysql" 
                 -v /etc/localtime:/etc/localtime 
                 -p 10050:10050 
                 --link zabbix-server-mysql:zabbix-server-mysql 
                 -d zabbix/zabbix-agent:centos-4.4-latest
      

    三.访问zabbix界面

    访问 http://192.168.152.140:18080/

    四.其他

    部署问题

    1. 无法连接到mysql,zabbix-server-mysql和zabbix-web-nginx-mysql容器打印日志

      **** MySQL server is not available. Waiting 5 seconds...
      

      原因:由于mysql镜像使用的是mysql 8.0,而zabbix-server-mysql和zabbix-web-nginx-mysql镜像中安装的mysql-client是5版本的,所以这两个容器连接mysql时会报以下错误

      ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
      

      解决:修改zabbix账号

      # 进入mysql-server容器
      docker exec -it mysql-server /bin/bash -c 'mysql -uroot -proot'
      
      # 修改zabbix账号
      ALTER USER 'zabbix'@'%' IDENTIFIED WITH mysql_native_password BY 'zabbix';
      
  • 相关阅读:
    和菜鸟一起学android4.0.3源码之硬件gps简单移植
    Android学习笔记(三一):线程:Message和Runnable
    Android Runnable 运行在那个线程
    Android 的消息队列模型
    iOS开发UI篇—iOS开发中三种简单的动画设置
    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明
    ios开发UI篇—Kvc简单介绍
    iOS开发UI篇—从代码的逐步优化看MVC
    iOS开发UI篇—字典转模型
    iOS开发UI篇—九宫格坐标计算
  • 原文地址:https://www.cnblogs.com/Sherry-XRJ/p/11760042.html
Copyright © 2011-2022 走看看