这个示例展现了如何运行支持MySQL数据库的Zabbix server,基于Nginx web服务器运行Zabbix web接口,以及Zabbix Java gateway。

  1. 启动一个空的MySQL服务器实例

  docker pull mysql:5.7

  docker run --name mysql-server -p 3306:3306 -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="root" -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_bin

  2. 启动Zabbix Java gateway实例

  docker pull zabbix/zabbix-java-gateway:latest

  docker run --name zabbix-java-gateway -t -d zabbix/zabbix-java-gateway:latest

  3. 启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例

  docker pull zabbix/zabbix-server-mysql:latest

  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" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --link mysql-server:mysql --link zabbix-java-gateway:zabbix-java-gateway -p 10051:10051 -d zabbix/zabbix-server-mysql:latest

  Zabbix server实例暴露10051/TCP端口(Zabbix trapper)给主机。

  4. 启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联

  docker pull zabbix/zabbix-web-nginx-mysql:latest

  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_ROOT_PASSWORD="root" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:8080 -d zabbix/zabbix-web-nginx-mysql:latest

  Zabbix web 接口暴露80/TCP端口(HTTP)给主机。

  5.这个步骤我自己安装的时候在第3步出现问题,问题如下:

    继续处理zabbix-server-mysql安装的问题,创建该容器运行后发现该容器并没有启动,启不起来,原因应该是创建容器的命令有问题,把后台运行参数-d去除后发现报zabbix库users表数据不能为空,然后得知原因可能是没有初始化zabbix库,通过导入create.sql可以初始化,但是自己是利用docker方式安装的,使用二进制文件安装的方式下的目录下会有create.sql,但是docker方式就没有的,然后就搞了一份create.sql.gz,然后传到了linux,然后使用gunzip命令解压,然后需要将该sql文件传达docker容器中才行啊,然后就想到了挂载的方法,挂载后出现问题是不能访问挂载目录,因是CentOS7中的安全模块selinux把权限禁掉了,解决方法是在运行容器的时候,给容器加特权,即加上 --privileged=true 参数,然后表数据有了但是报query failed: [1071] Specified key was too long; max key length is 3072 bytes [create index items_1 on items (hostid,key_(1021))]错误。然后将数据库中zabbix中库删掉,重新执行该语句,zabbix-server-mysql就不会掉,zabbix库以及表也会自动生成。当然也可以想到就是在zabbix-server-mysql安装之前mysql库中zabbix库肯定是没有数据的,我现在相当于在安装之前就给它添加了数据,所以的确也有问题。正常应该是安装zabbix-server-mysql过程中会自动添加数据。我这个不知道为啥不行,删掉zabbix库再安装zabbix-server-mysql就可以了。

    解决方法是安装完mysql后,将zabbix库删除,然后按步骤安装zabbix-server-mysql,会生成zabbix以及其中的数据,容器不会停。

    docker挂载:docker run -v /root:/mydata --privileged=true mysql  :前为宿主机目录,:后为容器中挂载目录,不指定--privileged=true没有权限访问挂载目录

    ls -l:文件的详细信息,ls -i:查看文件的inode号(inode存储文件的详细信息)

    删除容器后挂载目录失效

  6.因为选择的容器是nginx做反向代理的,所以应该映射nginx对外服务的端口,即8080,而不是映射容器的80端口,如果用80端口无法访问web页面,所以映射可以写-p 80:8080

  7.如果要设置docker启动,容器启动,可在每个容器的启动参数里添加  --restart  always

  8.挺重要的一点是mysql需要使用5.7版本,刚开始使用的是新版本导致zabbix-web-nginx-mysql连接不上mysql,使用5.7以后没有问题了

  **重点:6和8是重点,5可以不用看正常情况下不会出现5的情况,如若出现重来一遍就完事。

  9.访问ip,用户名Admin,密码zabbix

  10.安装zabbix-agent,刚开始ZBX_SERVER_HOST写的是服务器ip,但是zabbix服务端会收不到agent端数据,通信有问题,使用docker的ip即可解决该问题

  docker run --name zabbix-agent -p 10050:10050 -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="172.17.0.1" -e ZBX_SERVER_PORT=10051 -d zabbix/zabbix-agent:latest

docker方式安装zabbix的更多相关文章

  1. Windows下VMware虚拟机使用Centos,Docker方式安装openstf的小坑

    今天使用docker方式安装openstf碰到了一小坑,坑了我半天.特此记录! docker方式安装stf就不说了,网上教程一大把. 但是... 安装完之后.进入web控制界面,手机连接的好好的.但硕 ...

  2. 在CentOS上通过Docker方式安装Redis

    在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...

  3. Linux上通过docker方式安装mysql

    centos版本信息: docker版本信息 mysql版本:5.7 1.docker方式安装 首先拉取mysql镜像:docker pull mysql:5.7     查看本地的mysql镜像 执 ...

  4. openresty——yum安装 配置 使用 错误处理 docker方式安装

    yum方式安装 wget https://openresty.org/package/centos/openresty.repo mv openresty.repo /etc/yum.repos.d/ ...

  5. docker 一键安装zabbix server、zabbix agent

    基本原理.须知:1.zabbix 分为zabbix server和zabbix agent,其中zabbix server需要web环境,并且其数据存储在独立的数据库中:2.docker是一种容器服务 ...

  6. Zabbix系列-REHL6.10离线方式安装Zabbix 4.0 LTS

    环境 第零步:关闭系统默认防火墙 setenforce 0 sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/confi ...

  7. pipelinewise 学习一 docker方式安装

    pipelinewise 没有提供基于pip 包的模式进行安装,而且推荐使用docker 以及源码的方式 以下是一个使用docker运行的方式 安装   git clone https://githu ...

  8. docker部署安装zabbix

    安装docker 安装docker需要配置网络yum源,centos7自带的版本太低了 第一步:下载阿里云的docker安装包 在yum仓库的目录之下 [root@localhost yum.repo ...

  9. Docker方式安装QIIME 2

    # 下载最新版QIIME 2 docker pull qiime2/core:2017.7 # 测试是否安装成功 docker run -t -i -v $(pwd):/mnt/hgfs/2017 q ...

随机推荐

  1. Android系统编程入门系列之硬件交互——通信硬件电信SIM卡

    现在的SIM卡通常具备基站定位.语音通话.短信消息.网络流量这四大功能,而在移动端是无法对SIM卡使用基站定位功能的,所以这里只介绍移动端如何使用SIM卡实现语音通话.短信消息.数据流量三个功能. 语 ...

  2. Anaconda Navigator卡logo打不开闪退问题处理方案-更换阿里云镜像源

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 一.打开软件卡logo,点击图标后闪退 最近有同事使用anaconda时出现了卡logo,显示loading applications,点击图标时发 ...

  3. Linux下编译安装mysql数据库服务

    以下是用putty工具远程登录到服务器,在命令行下面操作: Cmake工具下载地址:http://ftp.lfs-matrix.net/pub/blfs/conglomeration/cmake/ M ...

  4. phpmyadmin 4.8.1 文件包含漏

    一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 3.点击新建项目按钮,弹出对画框中选择(C:\ ...

  5. 寻路算法之A*算法详解

    前言 在实际开发中我们会经常用到寻路算法,例如MMOARPG游戏魔兽中,里面的人物行走为了模仿真实人物行走的体验,会选择最近路线达到目的地,期间会避开高山或者湖水,绕过箱子或者树林,直到走到你所选定的 ...

  6. Skye无人机刷Betaflight详细图文教程

    ​前言 首先十分感谢B站TASKBL up主的视频教程以及他的耐心指导,视频链接Skye 原机主板刷BetaFlight 参考教程_哔哩哔哩_bilibili.整个改造过程耗时三天,现把改造过程以及遇 ...

  7. RestTemplate踩坑 之 ContentType 自动添加字符集

    写在前边 最近在写 OAuth2 对接的代码,由于授权服务器(竹云BambooCloud IAM)部署在甲方内网,所以想着自己 Mock 一下授权方的返回体,验证一下我的代码.我这才踩到了坑-- 故事 ...

  8. 记录Markdown的学习

    目录 1. 引言 2. 标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 3. 文字相关 3.1 粗体 3.2 斜体 3.3 粗体和斜体 3.4 删除线 3.5 混合使用 3.6 反引号引 ...

  9. 【编程教室】Python绘制冬奥吉祥物“冰墩墩”

    大家好,欢迎来到 Crossin的编程教室 ! 这两天,随着北京冬奥会的开幕,吉祥物"冰墩墩"可是火出了圈,多少人排长队都买不到.据说甚至有人把价格炒到了几千元. 就连昨天的&qu ...

  10. python3 爬虫--Chrome以及 Chromedriver安装配置

    1终端 将下载源加入到列表 sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ ...