需求分析
使用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查看容器日志
如:常见故障可能是没有连接到数据库