docker方式安装zabbix
这个示例展现了如何运行支持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的更多相关文章
- Windows下VMware虚拟机使用Centos,Docker方式安装openstf的小坑
今天使用docker方式安装openstf碰到了一小坑,坑了我半天.特此记录! docker方式安装stf就不说了,网上教程一大把. 但是... 安装完之后.进入web控制界面,手机连接的好好的.但硕 ...
- 在CentOS上通过Docker方式安装Redis
在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...
- Linux上通过docker方式安装mysql
centos版本信息: docker版本信息 mysql版本:5.7 1.docker方式安装 首先拉取mysql镜像:docker pull mysql:5.7 查看本地的mysql镜像 执 ...
- openresty——yum安装 配置 使用 错误处理 docker方式安装
yum方式安装 wget https://openresty.org/package/centos/openresty.repo mv openresty.repo /etc/yum.repos.d/ ...
- docker 一键安装zabbix server、zabbix agent
基本原理.须知:1.zabbix 分为zabbix server和zabbix agent,其中zabbix server需要web环境,并且其数据存储在独立的数据库中:2.docker是一种容器服务 ...
- Zabbix系列-REHL6.10离线方式安装Zabbix 4.0 LTS
环境 第零步:关闭系统默认防火墙 setenforce 0 sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/confi ...
- pipelinewise 学习一 docker方式安装
pipelinewise 没有提供基于pip 包的模式进行安装,而且推荐使用docker 以及源码的方式 以下是一个使用docker运行的方式 安装 git clone https://githu ...
- docker部署安装zabbix
安装docker 安装docker需要配置网络yum源,centos7自带的版本太低了 第一步:下载阿里云的docker安装包 在yum仓库的目录之下 [root@localhost yum.repo ...
- Docker方式安装QIIME 2
# 下载最新版QIIME 2 docker pull qiime2/core:2017.7 # 测试是否安装成功 docker run -t -i -v $(pwd):/mnt/hgfs/2017 q ...
随机推荐
- jdbc.properties/(驱动、URL、用户名、密码)跟换数据库时改该配置文件/Untitled Text File格式
背景:这几天从阿里云上面购买了云服务器,最垃圾的那种,还送oss和EDS数据库服务器,只不过EDS数据库服务器只有一个月的,就主动升级为一年的,49还是59忘了.对于配置这种EDS过程中,产生的一个念 ...
- 软路由openwrt中替换国内镜像源(以阿里云为例)
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.打开openwrt终端 二.找到distfeeds.conf 进入opkg cd /etc/opkg 查看opkg内文件 ls 可以找到di ...
- 创建一个 20G 的分区,并格式化为 ext4 文件系统
创建一个 20G 的分区,并格式化为 ext4 文件系统,并完成如下要求: (1)block 大小为 2048,预留空间 20%,卷标为 MYDATA #fdisk /dev/sdb -->n ...
- 网络编程 基础 基于socket的tcp和udp连接
网络开发的框架 C/S B/S 架构 程序都是bs架构的程序(b指浏览器,s指服务器) c(client)是客户端,s(server)是服务器 bs架构是cs架构的一种 未来的趋势, pc端bs架构, ...
- seqlist template
1 #include <iostream.h> 2 typedef int ElemType; 3 typedef struct{ 4 ElemType *elem; 5 int leng ...
- 如何在 Spring Boot 中禁用 Actuator 端点安全性?
默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们.安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的. ...
- Kafka 与传统 MQ 消息系统之间有三个关键区别?
(1).Kafka 持久化日志,这些日志可以被重复读取和无限期保留 (2).Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过 复制数据提升容错能力和高可用性 (3).Kafk ...
- keybd_event 在F按键系列不起作用的解决办法
最近给公司做自动化测试工具,主要用到的功能是模拟鼠标键盘录制回放.一切都很完美了,但在客户大机系统上使用的时候,发现F1-F24系列按键无法正确使用,查了很多资料,主要有2个方面的原因: 1.一些游戏 ...
- Python学习--21天Python基础学习之旅(Day05、Day06、Day07)
Day05: Chapter 8 函数 1.1函数定义与调用 1.1.1向函数传递参数 1.2传递实参 1.2.1位置实参:基于实参顺序 1.2.2关键字实参:调用时指出各个实参对应的形参 1.2.3 ...
- C语言break,return
C语言break,continue,return的相似与区别 相同点: 都改变了程序的执行流程 区别是:break 用于循环和switch分支,跳出它所在分支或循环体到它所在的模块的 ...