docker部署zabbix

 

我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控

部署环境

2台物理机机器:

zabbix-server:192.168.254.13

zabbix-agent:192.168.254.17

docker版本:Server Version: 19.03.1

zabbix版本:4.0

docker的镜像网站(清华大学):https://mirrors.tuna.tsinghua.edu.cn/

安装docker

cd /etc/yum.repos.d/
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

部署zabbix

1.部署mysql数据库


docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
-v /mysql/data/:/var/lib/mysql -v /mysql/conf/:/etc/my.cnf.d/ \
-d mariadb:10.2

2.部署zabbix-server

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" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

3.部署apache web

docker run --name zabbix-web-apache-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:80 \
-d zabbix/zabbix-web-apache-mysql:latest

4.打开浏览器

用户名为Admin,密码为zabbix

5.安装zabbix客户端agent

docker run --name zabbix-agent \
-e ZBX_HOSTNAME="self" \
-e ZBX_SERVER_HOST="192.168.254.13" \
-e ZBX_METADATA="client" \
-p 10050:10050 \
-d zabbix/zabbix-agent:latest

6.在zabbix server端开启自动注册规则

过一会我们就可以看到宿主机192.168.254.17上的容器已经被注册进来了

最后说明一下上面用到的命令和参数解释

说明一下各个参数的意义:
--name:代表容器的名字,或者标签
-e:代表要执行的环境变量
-p:代表映射的端口,:前面为宿主机,:后面代表容器的端口
-d:代表后台运行
-v:代表映射卷
--character-set-server:字符集
--collation-server:大小写是否敏感
MYSQL_USER:代表zabbix用户名
MYSQL_PASSWORD:代表zabbix的密码
MYSQL_DATABASE:zabbix创建的数据库名字为zabbix
MYSQL_ROOT_PASSWORD:代表数据库root密码,没有指定USER是因为默认就是root
更多参数详情请参照以下网站:
mariadb10.2参考手册:https://hub.docker.com/_/mariadb
zabbix-server参考手册:https://hub.docker.com/r/zabbix/zabbix-server-mysql
zabbix-web-apache-mysql参考手册:https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql
zabbix-agent参考手册:https://hub.docker.com/r/zabbix/zabbix-agent

用docker-compose部署zabbix

编辑docker-compose.yaml文件

[root@master ~]# cat docker-compose.yaml
version: '3.3'
services:
mysql-server:
container_name: mariadb-server
image: mariadb:10.2
restart: always
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: root
volumes:
- /data/mysql/data/:/var/lib/mysql
- /data/mysql/conf/:/etc/my.cnf.d/server.cnf
zabbix-server:
container_name: zabbix-server
image: zabbix/zabbix-server-mysql
restart: always
environment:
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "root"
ports:
- 10051:10051
links:
- mysql-server
zabbix-web:
container_name: zabbix-web
image: zabbix/zabbix-web-apache-mysql
restart: always
depends_on:
- mysql-server
- zabbix-server
environment:
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "root"
ports:
- 80:80
links:
- mysql-server
- zabbix-server

用docker-compose执行创建容器

#启动docker-compose.yaml文件中定义的容器,并且是后台运行
[root@master ~]# docker-compose up -d

说明

docker-compose命令的用法

Commands:
build Build or rebuild services                       
bundle Generate a Docker bundle from the Compose file
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker-Compose version information
build 构建或重建服务
help 命令帮助
pause 暂停服务
exec 进入到一个docker容器的交互界面
kill 杀死容器
logs 显示docker-compose.yaml文件中容器的输出内容
ps 显示启动的容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行容器
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
config 测试docker-comose.yaml文件的语法是否ok
 

docker-compose.yaml文件中的语法参数说明

一个docker-compose.yaml文件大致分为:version,services,network

version

version可以是1,2,3这是大版本,还有小版本,比如1.0,2.2,3.3等,在定义yaml文件时必须制定version版本,每个版本的语法可能不太相同,可以参照文章下方给的官方文档了解详情

service

1.service中定义服务名称,service的下一级定义服务名称

version: '3.3'
services:
服务名称:

2.在服务名称下一级标签有container_name,image,restart,privileged,environment,volumes,ports,links等

container_name:定义容器名称
image:镜像名称
restart
restart: "no" #不重启
restart: always #总是重启
restart: on-failure #失败时才重启
restart: unless-stopped #除非停止
privileged:获取最高权限
environment:设置系统环境变量
KEY1:VALUE1
KEY2:VALUE2
volumes 映射容器卷
- HOST_PATH:CONTAINER_PATH
- HOST_PATH:CONTAINER_PATH
ports: 映射容器端口
- HOST_PORT: CONTAINER_PORT
links: 连接容器
- SERVICE_NAME
depends_on:定义容器的先后顺序
- zabbix-server
- zabbix-web
- mysql-server

最新文章

  1. 洛谷 P1029 最大公约数和最小公倍数问题 Label:Water&&非学习区警告
  2. 在cocos code ide的基础上构建自己的lua开发调试环境
  3. PCB优化设计(转载)
  4. 转载: pyExcelerator(Python操作Excel内库)API 文档
  5. js浮点数精度问题
  6. python3.4 data type
  7. springMVC的拦截器工作流程
  8. Flex4 flash builder保留MXML转换的AS代码
  9. Linux网络配置。Win10能ping虚拟机但虚拟机ping不通Win10,关闭Win10防火墙就好。
  10. Jrebel简单的热部署一个web工程
  11. zookeeper 日志输出到指定文件夹
  12. jenkins持续集成部署
  13. Java入门系列(七)Java 集合框架(JCF, Java Collections Framework)
  14. Linxu安装Tomcat与Jdk并卸载自带OpenJdk
  15. C++ 内存解析
  16. mybatis resultMap 映射配置
  17. CALayer属性:position和anchorPoint
  18. Linux USB驱动学习总结(三)---- USB鼠标的加载、初始化和通信过程
  19. Specified VM install not found: type Standard VM, name jdk1.6...
  20. C++ 的Tool工具收集

热门文章

  1. PAT 2-09. 装箱问题模拟(20)
  2. Rethinking the performance comparison between SNNS and ANNS
  3. SQL语句组合查询 UNION
  4. 学习一下 JVM (二) -- 学习一下 JVM 中对象、String 相关知识
  5. 2020.08.14小bug
  6. 符合SEO的网站标题应该怎么写
  7. 3个必备cookie实用方法
  8. 超全Python IDE武器库大总结,优缺点一目了然!
  9. 安装Android Studio之后无法直接打开SDK Manager
  10. [BUUOJ记录] [BJDCTF 2nd]old-hack & Schrödinger & elementmaster