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';

Zabbix-(二) 使用docker部署的更多相关文章

  1. 二、Docker部署应用

    一.有关Docker的安装请参考docker官网  Docker 提供了两个版本:社区版 (CE) 和企业版 (EE). Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并 ...

  2. 【Docker学习之二】Docker部署安装

    环境 docker-ce-19.03.1-3.el7.x86_64 一.Docker的部署安装 Docker采用Linux(内核)技术,所以只能运行在Linux上,官方说Linux kernel至少3 ...

  3. 二进制安装 kubernetes 1.12(二) - 安装docker, 部署Flannel网络

    在 node 节点上安装 docker 参考 https://www.cnblogs.com/klvchen/p/8468855.html Flannel 工作原理: 部署Flannel网络 在 ma ...

  4. Docker部署Zabbix+Grafana监控

    Docker部署Zabbix+Grafana监控 环境 centos 7 ; Docker 17.12.0-ce ; docker-compose version 1.20.1 2018-4-1 当前 ...

  5. docker部署nodejs项目应用

    之前笔者弄了一套nestjs项目放在自己服务器上,并用pm2管理进程. 现在要把pm2停止,尝试一下用docker容器,那么首先要安装docker 一.安装docker 由于笔者服务器的系统是cent ...

  6. Linux上用Jexus部署Asp.Net网站:常规部署与Docker部署

    (一)常规部署 一.把 jexus压缩包下载到linux临时文件夹中. cd /tmp wget linuxdot.net/down/jexus-6.2.x-arm64.tar.gz (不同的操作系统 ...

  7. Docker部署Zabbix监控MariaDB主从同步(Percona Monitoring Plugins for Zabbix)

    一.安装Docker并部署Zabbix 建议先配置清华大学的docker-ce yum源,速度有保障:清华大学repo源 1.Zabbix Server节点配置 部署环境: [root@server0 ...

  8. AspNetCore容器化(Docker)部署(二) —— 多容器通信

    一.前言 着上一篇 AspNetCore容器化(Docker)部署(一) —— 入门,在单个容器helloworld的基础上引入nginx反向代理服务器组成多容器应用. 二.配置反向代理转接 配置转接 ...

  9. docker部署zabbix

    我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环境 2台物理机机器: zabbix ...

  10. docker部署zabbix并设置自动发现规则

      docker部署zabbix比源码安装简单一些,特此记录: 机器准备: zabbix-server: 192.168.0.150 homeserver zabbix-agent: 192.168. ...

随机推荐

  1. TableViewCell的封装(显示不同内容)

    http://blog.csdn.net/qq_24513939/article/details/45968123

  2. 工作中的开发过程(Javaweb路线,写给刚刚实习或者马上就要工作的朋友)

    工作中的开发过程(Javaweb路线,写给刚刚实习或者马上就要工作的朋友) 当我还没开始工作的时候,我是对实际项目开发流程充满未知和向往的,当时很希望能够有一个过来人,给我介绍一下实际工作起来是什么样 ...

  3. 基于webpack实现多html页面开发框架五 开发环境配置 babel配置

    一.解决什么问题      1.开发环境js.css不压缩,可在浏览器选中代码调试      2.开发环境运行http服务指向打包后的文件夹      3.babel输出浏览器兼容的js代码 二.需要 ...

  4. jquery.validate的一个bug

    在用jquery.validate.js做输入验证中,用到了对某个字段重复性的判断,就是在某字段的验证中使用remote进行输入时用ajax不断向后台发送请求,但是奇怪的是,在你在data:{}中用n ...

  5. gdb调试常用方法介绍

    一.概述   GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.没有统一的界面,所有的操作都是通过命令的方式进行提供.对于习惯了图形界面方式进行调试的猿猿来说可能不是很顺手,但是如果你在 ...

  6. 压缩感知重构算法之IRLS算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  7. ST MCU的UID

    ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹.这里跟大家一起简单分享下. 上面说了ST MCU芯片中的绝大部分 ...

  8. ARTS-S k8s常用命令

    本地访问minikube的docker eval $(minikube docker-env) 删除statefulset kubectl delete statefulset web --casca ...

  9. Nginx的事件循环

    首先事件循环的起点就是监听端口获取连接,我们可以在ngx_event_core_module模块的ngx_event_process_init函数中看到如下的代码: /* for each liste ...

  10. 使用chole创建一个连接池

    using Chloe; using Chloe.Infrastructure; using Chloe.SqlServer; using System; using System.Collectio ...