Zabbix技术分享compose快速部署zabbix监控系统

前面文章有提到过使用docker来快速拉起一个zabbix监控系统(详见:如何使用docker快速部署一个zabbix监控系统),但是要一个个执行docker启动命令去将对应的容器启动。如果要配置参数多,那敲启动命令就是一件让人心累的事情。而且敲完后若没有保存启动命令,后面的管理也是比较麻烦,并且如果容器数量较多,还要一个个手敲启动命令,这就非常的不方便。

所以为了解决这个问题,并且更加高效的启动一个zabbix监控系统。现在使用docker-compose这个容器编排工具来高效的启动zabbix监控系统。

1. Docker-compose介绍

2.基础语法

Docker-compose就是通过docker-compose.yaml文件所定义的容器作为一个项目,从而进行docker容器的管理。下面就对docker-compose.yaml模板文件的常用基础语法进行一个简单的解释

2.1. container_name

Compose 的容器默认名称格式是:<项目名称><服务名称><序号>

虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定:

比如我要制定一个mysql容器的名为“mysql-test”,那么

version: '3'

services:

mysql:

container_name: mysql-test

2.2. image

指定服务的镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。

比如我要制定一个mysql容器,使用的镜像名为“mysql:8.0”,那么

version: '3'

services:

mysql:

image: mysql:8.0

2.3. depends_on

在使用 Compose 时,最大的好处就是少打启动命令,但是一般项目容器启动的顺序是有要求的,如果直接从上到下启动容器,必然会因为容器依赖问题而启动失败。

例如在没启动数据库容器的时候启动了应用容器,这时候应用容器会因为找不到数据库而退出,为了避免这种情况我们需要加入一个标签,就是 depends_on,这个标签解决了容器的依赖、启动先后的问题。

比如我要先启动一个MySQL,后启动nginx,那么

version: '3'

services:

nginx:

image: nginx:1.16.1

depends_on:

- mysql

mysql:

image: mysql:8.0

2.4. environment

这是设置镜像的环境变量,直接将变量定义到镜像里面,这样启动容器时会自动读取该环境变量

如启动一个MySQL容器,要设置它的root初始化密码为“123456”,那

version: '3'

services:

mysql:

image: mysql:8.0

environment:

MYSQL_ROOT_PASSWORD: 123456

2.5. ports

该参数是将宿主机的端口映射到容器端口,从而在宿主机访问对应的端口能访问到容器内。

如要讲MySQL容器的3306端口映射到宿主机的33060端口,那

version: '3'

services:

mysql:

image: mysql:8.0

ports:

- “33060:3306”

2.6. volumes

挂载一个目录或者一个已存在的数据卷容器,可以直接使用 [HOST:CONTAINER] 这样的格式,或者使用 [HOST:CONTAINER:ro] 这样的格式,后者对于容器来说,数据卷是只读的,这样可以有效保护宿主机的文件系统。
Compose的数据卷指定路径可以是相对路径,使用 . 或者 .. 来指定相对目录。
version: '3'

services:

mysql:

image: mysql:8.0

volumes:

- ./data:/var/lib/mysql

- /var/log/mysql:/var/log/mysql

3.安装docker-compose

选择对应版本下载安装包

https://github.com/docker/compose/releases?after=1.28.0

上传到服务器修改名称并授权

mv docker-compose-x86 docker-compose

chmod +x docker-compose

测试

./docker-compose –v

安装

mv docker-compose /usr/bin

4. 编写zabbix监控系统的docker-compose.yaml文件

version: '3.7'

services:

mysql:

container_name: mysql

image: mysql:latest

restart: always

environment:

MYSQL_DATABASE: zabbix

MYSQL_ROOT_PASSWORD: zabbix@2022

ports:

- "3306:3306"

volumes:

- /data/mysql:/var/lib/mysql

zabbix-server:

container_name: zabbix_server

image: zabbix/zabbix-server-mysql:latest

restart: always

depends_on:

- mysql

environment:

MYSQL_DATABASE: zabbix

MYSQL_PASSWORD: zabbix@2022

MYSQL_USER: root

DB_SERVER_HOST: 192.168.75.31

DB_SERVER_PORT: 3306

ports:

- "10051:10051"

volumes:

- /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts

- /data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts

zabbix-web:

container_name: zabbix_web

image: zabbix/zabbix-web-nginx-mysql:latest

restart: always

depends_on:

- mysql

- zabbix_server

environment:

MYSQL_DATABASE: zabbix

MYSQL_PASSWORD: zabbix@2022

MYSQL_USER: root

DB_SERVER_HOST: 192.168.75.31

DB_SERVER_PORT: 3306

ZBX_SERVER_HOST: 192.168.75.31

ZBX_SERVER_PORT: 10051

ports:

- "8080:8080"

zabbix-agent:

container_name: zabbix_agent

image: zabbix/zabbix-agent:latest

restart: always

depends_on:

- mysql

- zabbix_server

environment:

ZBX_HOSTNAME: 192.168.75.31

ZBX_SERVER_HOST: 172.18.0.1

ports:

- "10050:10050"

5. 启动zabbix监控系统

别忘了安装docker!

编写好zabbix监控系统的docker-compose.yaml文件后,就可以启动系统了

Docker-compose up –d

如图所示,已成功启动

6.验证监控系统

我这边web端口映射为宿主机的18080,所以访问zabbix界面,那就是IP+18080

默认的账号密码:

Admin

zabbix

如图,成功访问。


这一期的Zabbix技术内容到这就结束了。我是乐维IT君,专注运维技术分享,更多Zabbix技术及其他运维内容,还可以查看我的往期内容,zabbix服务,zabbix配置,zabbix部署等zabbix服务解决方案。

展开阅读全文

页面更新:2024-03-25

标签:乐维   宿主   容器   环境变量   命令   定义   名称   快速   文件   项目   工程   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top