0%

记录:使用docker-compose搭建zabbix监控系统

需求分析

使用zabbix来监控各个系统的性能(硬盘,CPU,内存)
用来监控web服务器的流量和状态
监控tomcat的状态(JVM,GC)

Docker Compose

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

操作

需要创建目录

在soft目录下创建{web,zabbix-server,mysql,zabbix-agent}的目录

1
mkdir -p ./soft/{web,zabbix-server,mysql,zabbix-agent}  

在soft目录下创建一个docker-compose.yml的文件

1
touch docker-compose.yml

在docker-compose.yml输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
version: '3'
services:
zabbix-mysql:
image: mysql:5.7
container_name: zabbix-mysql
environment:
MYSQL_ROOT_PASSWORD: User_Password
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: User_Password
volumes:
- ./mysql:/var/lib/mysql
zabbix-server:
image: zabbix/zabbix-server-mysql:latest
container_name: zabbix-server
environment:
DB_SERVER_HOST: "zabbix-mysql"
MYSQL_DATABASE: zabbix
MYSQL_USER: root
MYSQL_PASSWORD: User_Password
MYSQL_ROOT_PASSWORD: User_Password
volumes:
- ./zabbix-server:/usr/lib/zabbix/
ports:
- '10051:10051'
links:
- zabbix-mysql
- zabbix-agent
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:latest
container_name: zabbix-web
environment:
DB_SERVER_HOST: "zabbix-mysql"
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: User_Password
MYSQL_ROOT_PASSWORD: User_Password
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: Asia/Shanghai
volumes:
- ./web:/usr/lib/zabbix
ports:
- 80:80
- 443:443
links:
- zabbix-server
- zabbix-mysql

zabbix-agent:
image: zabbix/zabbix-agent:latest
container_name: zabbix-agent
environment:
ZBX_HOSTNAME: zabbix server
ZBX_SERVER_HOST: 127.0.0.1
ports:
- '10050:10050'

然后使用docker-compose up -d启动

启动完成检测

先进入zabbix-web容器中

1
2
docker exec -it zabbix-web /bin/bash
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

在使用docker ps -a 检测容器是否启动成功
如果没有启动成功请使用docker logs -t container_name查看容器日志
如:常见故障可能是没有连接到数据库

-------------本文结束感谢您的阅读-------------