jtm 一键安装mysql_通过docker-compose配置快速实现zabbix安装
上一篇文章介绍了如何通过docker的基本操作命令搭建运行一个zabbix系统,搭建运行zabbix涉及到了多个容器组成。操作起来相对繁琐,并且每次运行都要来一遍,很是不方便。
使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。[39]它使用YAML文件配置应用程序的服务,并使用单个命令执行所有容器的创建和启动过程。该docker-composeCLI工具允许用户同时运行多个集装箱的命令。
一、安装docker-compose工具
1、快速安装docker
curl -fsSL https://get.docker.com/ | sh
2、启动docker
systemctl enable docker
systemctl start docker
3、安装docker-compose工具
如果系统中已经安装了docker则不需要再执行前两步,docker-compose需要单独安装。
yum install docker-compose -y
安装完毕后使用docker-compose version验证安装
二、规划设计zabbix系统环境依赖配置文件
1、主机安装目录规划
目录结构如上图,在/home下设置一个zabbix目录,然后在zabbix目录下创建三个环境依赖文件即可
.env_db_mysql #数据库运行依赖环境文件
.env_srv #zabbix-server运行依赖环境变量文件
.env_web #zabbix前端web运行依赖文件
2、.env_db_mysql文件内容
[root@localhost zabbix]# cat .env_db_mysql # DB_SERVER_HOST=mysql-server # DB_SERVER_PORT=3306 # MYSQL_USER=zabbix MYSQL_USER=zabbix # MYSQL_PASSWORD=zabbix MYSQL_PASSWORD=zabbix # MYSQL_ROOT_PASSWORD= MYSQL_ROOT_PASSWORD=zabbix # MYSQL_ALLOW_EMPTY_PASSWORD=false # MYSQL_DATABASE=zabbix MYSQL_DATABASE=zabbix
3、.env_srv文件内容如下
[root@localhost zabbix]# cat .env_srv # ZBX_LISTENIP= # ZBX_HISTORYSTORAGEURL=http://elasticsearch:9200/ # Available since 3.4.5 # ZBX_HISTORYSTORAGETYPES=uint,dbl,str,log,text # Available since 3.4.5 # ZBX_HISTORYSTORAGEDATEINDEX=0 # Available since 4.0.0 # ZBX_DEBUGLEVEL=3 #定义zabbix-server启动时的输出日志模式 # ZBX_STARTPOLLERS=5 # ZBX_IPMIPOLLERS=0 # ZBX_STARTPREPROCESSORS=3 # Available since 3.4.0 # ZBX_STARTPOLLERSUNREACHABLE=1 # ZBX_STARTTRAPPERS=5 # ZBX_STARTPINGERS=1 # ZBX_STARTDISCOVERERS=1 # ZBX_STARTHTTPPOLLERS=1 # ZBX_STARTTIMERS=1 # ZBX_STARTESCALATORS=1 # ZBX_STARTALERTERS=3 # Available since 3.4.0 ZBX_JAVAGATEWAY_ENABLE=false #在这里设置为true 可以支撑JAVA网关 # ZBX_JAVAGATEWAY=zabbix-java-gateway # ZBX_JAVAGATEWAYPORT=10052 ZBX_STARTJAVAPOLLERS=5 # ZBX_STARTVMWARECOLLECTORS=0 # ZBX_VMWAREFREQUENCY=60 # ZBX_VMWAREPERFFREQUENCY=60 # ZBX_VMWARECACHESIZE=8M # ZBX_VMWARETIMEOUT=10 ZBX_ENABLE_SNMP_TRAPS=false #在这里设置为true 可以支持snmp的traps # ZBX_SOURCEIP= # ZBX_HOUSEKEEPINGFREQUENCY=1 # ZBX_MAXHOUSEKEEPERDELETE=5000 # ZBX_SENDERFREQUENCY=30 # ZBX_CACHESIZE=8M # ZBX_CACHEUPDATEFREQUENCY=60 # ZBX_STARTDBSYNCERS=4 # ZBX_HISTORYCACHESIZE=16M # ZBX_HISTORYINDEXCACHESIZE=4M # ZBX_TRENDCACHESIZE=4M # ZBX_VALUECACHESIZE=8M # ZBX_TIMEOUT=4 # ZBX_TRAPPERIMEOUT=300 # ZBX_UNREACHABLEPERIOD=45 # ZBX_UNAVAILABLEDELAY=60 # ZBX_UNREACHABLEDELAY=15 # ZBX_LOGSLOWQUERIES=3000 # ZBX_STARTPROXYPOLLERS=1 # ZBX_PROXYCONFIGFREQUENCY=3600 # ZBX_PROXYDATAFREQUENCY=1 # ZBX_LOADMODULE="dummy1.so,dummy2.so,dummy10.so" # ZBX_TLSCAFILE= # ZBX_TLSCRLFILE= # ZBX_TLSCERTFILE= # ZBX_TLSKEYFILE=
4、.env_web 文件内容
# ZBX_SERVER_HOST=zabbix-server # ZBX_SERVER_PORT=10051 ZBX_SERVER_NAME=My Zabbix-Server #定义启动web页面后的TITLE # ZBX_HISTORYSTORAGEURL=http://elasticsearch:9200/ # Available since 3.4.5 # ZBX_HISTORYSTORAGETYPES=['uint', 'dbl', 'str', 'text', 'log'] # Available since 3.4.5 # ZBX_MAXEXECUTIONTIME=600 # ZBX_MEMORYLIMIT=128M # ZBX_POSTMAXSIZE=16M # ZBX_UPLOADMAXFILESIZE=2M # ZBX_MAXINPUTTIME=300 # Timezone one of: http://php.net/manual/en/timezones.php PHP_TZ=Asia/Shanghai
三、规划设计zabbix系统compose的yaml配置文件
cat docker-compose.yaml
version: '3.5' services: zabbix-server: image: zabbix/zabbix-server-mysql:centos-4.0-latest ports: - "10051:10051" volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./home/zabbix/modules:/var/lib/zabbix/modules:ro - ./home/zabbix/enc:/var/lib/zabbix/enc:ro - ./home/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro - ./home/zabbix/mibs:/var/lib/zabbix/mibs:ro - ./home/zabbix/snmptraps:/var/lib/zabbix/snmptraps:ro links: - mysql-server:mysql-server ulimits: nproc: 65535 nofile: soft: 20000 hard: 40000 deploy: resources: limits: cpus: '0.70' memory: 1G reservations: cpus: '0.5' memory: 512M env_file: - .env_db_mysql - .env_srv user: root depends_on: - mysql-server networks: zbx_net_backend: aliases: - zabbix-server - zabbix-server-mysql - zabbix-server-centos-mysql - zabbix-server-mysql-centos zbx_net_frontend: # devices: # - "/dev/ttyUSB0:/dev/ttyUSB0" stop_grace_period: 30s sysctls: - net.ipv4.ip_local_port_range=1024 65000 - net.ipv4.conf.all.accept_redirects=0 - net.ipv4.conf.all.secure_redirects=0 - net.ipv4.conf.all.send_redirects=0 labels: com.zabbix.description: "Zabbix server with MySQL database support" com.zabbix.company: "Zabbix SIA" com.zabbix.component: "zabbix-server" com.zabbix.dbtype: "mysql" com.zabbix.os: "centos"
zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql ports: - "8080:80" - "8443:443" links: - mysql-server:mysql-server - zabbix-server:zabbix-server volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./home/zabbix/ssl/nginx:/etc/ssl/nginx:ro deploy: resources: limits: cpus: '0.70' memory: 512M reservations: cpus: '0.5' memory: 256M env_file: - .env_db_mysql - .env_web user: root depends_on: - mysql-server - zabbix-server healthcheck: test: ["CMD", "curl", "-f", "http://localhost"] interval: 10s timeout: 5s retries: 3 start_period: 30s networks: zbx_net_backend: aliases: - zabbix-web-nginx-mysql - zabbix-web-nginx-centos-mysql - zabbix-web-nginx-mysql-centos zbx_net_frontend: stop_grace_period: 10s sysctls: - net.core.somaxconn=65535 labels: com.zabbix.description: "Zabbix frontend on Nginx web-server with MySQL database support" com.zabbix.company: "Zabbix SIA" com.zabbix.component: "zabbix-frontend" com.zabbix.webserver: "nginx" com.zabbix.dbtype: "mysql" com.zabbix.os: "centos"
mysql-server: image: mysql:5.7 command: [mysqld, --character-set-server=utf8, --collation-server=utf8_bin] volumes: - ./home/zabbix/mysql:/var/lib/mysql:rw env_file: - .env_db_mysql user: root stop_grace_period: 1m networks: zbx_net_backend: aliases: - mysql-server - zabbix-database - mysql-database
db_data_mysql: image: busybox volumes: - ./home/zabbix/mysql:/var/lib/mysql:rw
# elasticsearch: # image: elasticsearch # environment: # - transport.host=0.0.0.0 # - discovery.zen.minimum_master_nodes=1 # networks: # zbx_net_backend: # aliases: # - elasticsearch
networks: zbx_net_frontend: driver: bridge driver_opts: com.docker.network.enable_ipv6: "false" ipam: driver: default config: - subnet: 172.16.238.0/24 zbx_net_backend: driver: bridge driver_opts: com.docker.network.enable_ipv6: "false" internal: true ipam: driver: default config: - subnet: 172.16.239.0/24
配置文件内容介绍:
a、定义zabbix-server服务
zabbix-server服务只连通后端网络zbx_net_backend
b、定义zabbix-web-nginx-mysql服务
zabbix-web-nginx-mysql服务连接前后端两个网络,zbx_net_backend和zbx_net_frontend
c、定义mysql-server服务
mysql-server服务连接后端网络zbx_net_backend
d、定义db_data_mysql服务
e、定义了两个网络桥接服务
zbx_net_frontend 定义的ip范围是172.16.238.0/24
zbx_net_backend 定义的ip范围是172.16.239.0/24
四、一键启动zabbix服务
docker-compose -f docker-compose.yaml up -d
或者 docker-compose up -d 也可以
使用docker ps 查看已经启动的三个服务 ,mysql5.7 zabbix-server-mysql zabbix-web-nginx-mysql
五、验证zabbix启动效果
在地址栏输入http://133.3.103.2地址后查看登陆界面
登陆后的界面如下
六、一键关停zabbix服务
通过docker-compose down命令一键关停前面部署的多个docker服务及网络环境
总结:
compose会保留所有服务的volume data,这个volume data,我理解的是对容器做的所有修改。当再次运行docker-compose run这条命令的时候,compose会找到之前运行过的所有容器,然后把它们的volumes,也就是修改后的容器状态,从老的容器中,拷贝到新的容器中,在这个过程中新老容器的CONTAINER ID不会变化。
Compose 文件是一个 YAML , 主要定义了 services , networks 和 volumes , 其默认路径是 ./docker-compose.yml 。service 定义包含了应用与每个容器的配置,很像给 docker run 传参,同样, network 和 volume 对于 docker network create 和 docker volume create 也类似
jtm 一键安装mysql_通过docker-compose配置快速实现zabbix安装相关推荐
- Docker Compose配置springboot微服务项目
[Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...
- 如何在 CentOS 7上安装和使用 Docker Compose
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 介绍 Docker是一个很好的工具,但要真正充分利用它的潜力,最好是应用程序的每个组件都在它自己的容 ...
- 腾讯云yum安装mysql_腾讯云CentOS7.0使用yum安装mysql_MySQL
背景: 今天才申请了腾讯云+校园计划的1元服务器,(http://www.qcloud.com/event/qcloudSchool)安装了Centos7.0,在安装mysql的时候,使用yum li ...
- docker 使用tar安装mysql_使用docker安装mysql服务
转载:https://www.cnblogs.com/notejava/p/7124189.html 使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址 docker ...
- nas4free 安装mysql_[转]Docker学习之四:使用docker安装mysql
Docker学习之一:注册Docker Hub账号 Docker学习之二:Docker基本简单操作命令 Docker学习之三:Docker在linux下简单安装使用 Docker学习之四:使用dock ...
- 17.04安装mysql_【17-04-11】 【求助】在线安装mysql时出现问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [root@localhost 桌面]# yum list | grep mysql One of the configured repositories ...
- 笔记本安装centos7.6网络的配置_大学生需要安装哪些专业软件,又应该配置什么样的笔记本呢?...
导读:新的学弟学妹们入学了,该谈恋爱的谈恋爱,但也别忘了学习!我们每个人都有自己的课程,那我们准备买电脑的话,应该怎么挑选呢?我的专业需要哪些软件?需要什么样的配置呢? 请看看过来人的经验吧! 我先把 ...
- 安装ug要java许可怎么弄_为什么安装ug许可证会失败?快速解决ug安装许可证会失败问题...
为何ug 安装许可证失败?小编认为有以下几点一.首先确定你的电脑是否装有JAVA9.0.二.查看安装步骤是否正确?在安装许可证之前一定要先修改许可文件里的配置.三.确认电脑之前是否安装过UG的其它版本 ...
- 安装ug时提示java出错_为什么安装ug许可证会失败?快速解决ug安装许可证会失败问题...
为何ug 安装许可证失败?小编认为有以下几点一.首先确定你的电脑是否装有JAVA9.0.二.查看安装步骤是否正确?在安装许可证之前一定要先修改许可文件里的配置.三.确认电脑之前是否安装过UG的其它版本 ...
- Docker Compose方式安装GitLab
文章目录 用Docker Compose方式安装GitLab 前提条件 一键自动化以Docker Compose方式安装GitLab GitLab Docker Compose文件 安装和运行GitL ...
最新文章
- SASS 和 SCSS 的区别
- 集群环境下,你不得不注意的ASP.NET Core Data Protection 机制
- 红橙Darren视频笔记 RecyclerView基本使用
- ArcGis api配合vue开发入门系列(二)距离以及面积的测量
- 长时间使用s档有危害吗_空调长时间不清洗竟有这么多危害 你知道吗?
- MOSS Visual How To 系列
- Oracle数据库练习题及答案(个人总结)
- redis问题及答案
- 第三方接入-飞猪酒店商品发布流程
- reflections歌词翻译_Reflections歌词
- 第一种单击事件方法 onCreate 1、先在按钮中添加onCreate单击事件 android:onClick=wlj/ 2、再在主函数MainActivity中添加自定义方法
- 使用JS监听键盘按下事件
- 重庆php就业前景,重庆就业前景最好的十大专业是哪些_中职中专网
- 耦合式无线充电系统设计记录_3
- 童鞋想盗取我十几个G的“种子”,看我是用python来层层加锁!!!
- 1477_AURIX TC275 iLLD中看门狗密码获取接口分析
- nb移动udp_NB-IOT联网及模块UDP数据传输过程
- 华为校招前端开发一面
- 大学计算机课试题答案,大学计算机基础试题及答案课件.doc
- Java分割字符串、拼接字符串
热门文章
- 38译码器verilog代码_Verilog设计实例(2)一步一步实现一个多功能通用计数器
- easyui 隐藏input_Easyui-Datebox设置隐藏或者不可用如何解决
- mysql 全文所有_MySQL中的全文搜索
- python 操作psd_python psd
- MyBatis(七)------MyBatis映射器(resultMap元素)
- Objective-C中ORM的运用:实体对象和字典的相互自动转换
- Path.Combine 合并两个路径字符串,会出现的问题
- 第十五章笔记 虚拟机管理
- IPhone在横屏字体变大解决办法-webkit-text-size-adjust
- 1489 数据结构:矩阵鞍点