这个示例展现了如何运行支持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. Windows XP系统搜索故障及处理办法点点通

    故障1:单击资源管理器工具栏上的"搜索"按钮或者按F3,系统无任何响应. 解决方法:首先进入C:\Windows\inf文件夹(该文件夹属性为隐藏),右键单击srchasst.in ...

  2. k8s学习笔记一(搭建&部署helloworld应用)

    kubernetes 目录 kubernetes 虚拟机创建三个节点 k8s install 部署hello world 应用 issue 汇总 node 一直处理NotReady状态 重启系统后虚拟 ...

  3. 关于alertmanager报No private IP address found, and explicit IP not provided

    ./alertmanager --config.file=alertmanager.yml level=info ts=2021-11-22T05:53:11.195Z caller=main.go: ...

  4. DDOS流量攻击

    0x01 环境 包含2台主机 attact 作为攻击方,使用Centos7.2 windows_server ,用于被攻击,同时抓包分析流量 ,任意版本均可.安装wireshark,用于抓包 0x02 ...

  5. Python datetime获取当前年月日时分秒

    from datetime import datetime now_time = datetime.now() str_time = now_time.strftime("%Y-%m-%d ...

  6. Zookeeper 有哪几种几种部署模式?

    部署模式:单机模式.伪集群模式.集群模式.

  7. Redis的集群搭建(四)

    1.redis-cluster架构图 2.redis-cluster投票:容错 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2) ...

  8. Hadoop全分布式

    1.安装jdk      Linux下安装jdk-7u67-linux-x64.rpm 2.免密登录   ssl免密登录(centos6) 3.同步时间:date -s "2020-04-0 ...

  9. BeanFactory – BeanFactory 实现举例?

    Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离. 最常用的BeanFactory 实现是XmlBeanFactory 类.

  10. 什么是 Spring Framework?

    Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度.它是轻量级.松 散耦合的.它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序 开发提供了一个有凝聚力的框架.它可以集成其 ...