zabbix监控端 监控四件套
mysql-server
zabbix-java-gateway
zabbix-server-mysql
zabbix-web-nginx-mysql
zabbix-agent
我这里采用6.0.21版本
server端操作拉取镜像
docker pull mysql:8.0
docker pull zabbix/zabbix-java-gateway:alpine-6.0-latest
docker pull zabbix/zabbix-server-mysql:alpine-6.0-latest
docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest
docker pull zabbix/zabbix-agent:alpine-6.0-latest
创建容器挂载卷
docker volume create -d local mysql_data
docker volume create -d local mysql_logs
docker volume create -d local mysql_conf
docker volume create -d local zabbix_server
docker volume create -d local zabbix_agent
创建zabbix容器专属网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
创建MySQL容器存储数据
docker run --name mysql-server -t \
-v mysql_data:/var/lib/mysql \
-v mysql_logs:/var/log/mysql \
-v mysql_conf:/etc/mysql \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="password" \
-e MYSQL_ROOT_PASSWORD="password" \
--network=zabbix-net \
--restart=unless-stopped \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=caching_sha2_password
注释#
-v 均为挂载卷 映射出容器的数据到本地
-e MYSQL_DATABASE="zabbix" ##数据库名
-e MYSQL_USER="zabbix" ##zabbix用户名
-e MYSQL_PASSWORD="password" #zabbix用户密码
-e MYSQL_ROOT_PASSWORD="password" #root用户密码
--network=zabbix-net #使用创建的zabbix专用网络
--restart=unless-stopped #当容器在关闭时重启docker不会重新启动容器
--character-set-server=utf8 --collation-server=utf8_bin ###数据库字符集
--default-authentication-plugin=caching_sha2_password ##加密方式推荐使用这种话,官方文档的加密过时了,会一直警告
查看容器状态 出现up即为成功
docker ps | grep mysql-server
创建 zabbix-java-gateway 容器
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart=unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-6.0-latest
一样查看已经状态up状态即可
docker ps |grep zabbix-java-gateway
创建zabbix-server-mysql
docker run --name zabbix-server-mysql -t \
-v zabbix_server:/etc/zabbix \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="password" \
-e MYSQL_ROOT_PASSWORD="password" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-p 10051:10051 \
--network=zabbix-net \
--restart=unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-6.0-latest
查看一下日志 出现Updating就是在导入数据了
docker logs -f zabbix-server-mysql
创建zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql -t \
-e PHP_TZ="Asia/Shanghai" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="password" \
-e MYSQL_ROOT_PASSWORD="password" \
-p 7777:8080 \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest
注释
这里的-p 7777:8080 是映射端口 我这里用宿主机IP:7777 访问 你们也可以 -p 80:8080 直接使用IP访问
浏览器打开ip:7777
默认账号密码为 Admin zabbix
到此zabbix-server监控端就部署完毕
汉化面板
汉化就完事了
在server监控端部署node
docker run --name zabbix-agent -t \
-v zabbix_agent:/etc/zabbix \
-e ZBX_HOSTNAME="master" \
-e ZBX_SERVER_HOST="172.20.240.3" \
-e ZBX_SERVER_PORT=10051 -p 10050:10050 \
--network host \
--restart=unless-stopped \
--privileged \
-d zabbix/zabbix-agent:alpine-6.0-latest
注意在server端部署的node 需要把 -e ZBX_SERVER_HOST="172.20.240.3" 里面的ip写zabbix-server-mysql容器ip
docker inspect zabbix-server-mysql | grep "IPAddress"
然后添加主机即可
被监控端部署node节点
node被监控端服务器
首先创建挂载卷
docker volume create -d local zabbix_agent
拉取镜像
docker pull zabbix/zabbix-agent:alpine-6.0-latest
docker run --name zabbix-agent -t \
-v zabbix_agent:/etc/zabbix \
-e ZBX_HOSTNAME="master" \
-e ZBX_SERVER_HOST="zabbix-server主机IP" \
-e ZBX_SERVER_PORT=10051 \
-p 10050:10050 \
--network host \
--restart=unless-stopped \
--privileged \
-d zabbix/zabbix-agent:alpine-6.0-latest
添加主机 填写node节点的IP即可