Zabbix监控部署
一、环境准备
一台centos7.9的服务器,4G/4C/20G差不多了
本次使用docker安装zabbix
提前准备3个镜像【可以从docker desktop下载好,保存到本地,上传到centos服务器】


部署成功后:

网页:

账号:Admin
密码:zabbix

二、正式部署
因为采用的脚本一键部署,所以前提条件需要准备好
2.1 安装docker软件
yum install -y docker
systemctl start docker
systemctl enable docker

2.2 准备好的3个docker镜像
必须提前弄好,因为docker pull 时“挂梯子”都不一定能下载到!
聪明的你一定可以拿到手,观察下图。。。。。。。。。

[root@localhost ~]# ll mysql.tar zabbix-server-mysql.tar zabbix-web-nginx-mysql.tar
-rw-r--r--. 1 root root 257695232 7月 20 10:37 mysql.tar
-rw-r--r--. 1 root root 36185088 7月 20 10:37 zabbix-server-mysql.tar
-rw-r--r--. 1 root root 57250304 7月 20 10:37 zabbix-web-nginx-mysql.tar
# 导入镜像
[root@localhost ~]# docker load -i zabbix-server-mysql.tar
[root@localhost ~]# docker load -i zabbix-web-nginx-mysql.tar
[root@localhost ~]# docker load -i mysql.tar
# 查看镜像,确保3个都在
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix/zabbix-web-nginx-mysql alpine-6.0-latest 98aa4bb666ce 2 days ago 158 MB
zabbix/zabbix-server-mysql alpine-6.0-latest 8618664759b9 2 days ago 104 MB
mysql 8.4 083c8ddb1fa1 3 days ago 821 MB
2.3 执行server.sh
server.sh
#!/bin/bash
# CentOS 7.9 Zabbix 6.0 LTS 服务端一键部署(精简版)
set -e
echo "========== Zabbix 6.0 服务端一键部署 =========="
# 1. 安装 Docker
echo "[1/8] 安装 Docker..."
yum install -y docker
systemctl start docker
systemctl enable docker
# 2. 配置镜像加速
echo "[2/8] 配置镜像加速..."
mkdir -p /etc/docker
cat <<'EOF' > /etc/docker/daemon.json
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl restart docker
# 3. 清理旧容器
echo "[3/8] 清理旧容器..."
docker stop $(docker ps -aq) 2>/dev/null || true
docker rm $(docker ps -aq) 2>/dev/null || true
rm -rf /data/mysql/*
# 4. 创建数据目录
echo "[4/8] 创建数据目录..."
mkdir -p /data/mysql
# 5. 启动 MySQL 8.4
echo "[5/8] 启动 MySQL 8.4..."
docker run -d \
--name zabbix-mysql \
--privileged \
-e MYSQL_ROOT_PASSWORD=Hinner@q1w2e3 \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=Hinner@q1w2e3 \
-v /data/mysql:/var/lib/mysql \
mysql:8.4
echo "等待 MySQL 初始化(约 30 秒)..."
sleep 30
# 6. 设置 MySQL 参数
echo "[6/8] 设置 MySQL 参数..."
docker exec zabbix-mysql mysql -uroot -p'Hinner@q1w2e3' -e "
SET GLOBAL log_bin_trust_function_creators = 1;
GRANT SUPER ON *.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;
"
# 7. 启动 Zabbix Server
echo "[7/8] 启动 Zabbix Server..."
docker run -d \
--name zabbix-server \
--privileged \
--link zabbix-mysql:mysql \
-e DB_SERVER_HOST=mysql \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=Hinner@q1w2e3 \
-e MYSQL_DATABASE=zabbix \
-p 10051:10051 \
zabbix/zabbix-server-mysql:alpine-6.0-latest
echo "等待 Zabbix Server 初始化(约 2 分钟)..."
sleep 120
# 8. 启动 Zabbix Web
echo "[8/8] 启动 Zabbix Web..."
docker run -d \
--name zabbix-web \
--privileged \
--link zabbix-mysql:mysql \
--link zabbix-server:zabbix-server \
-e ZBX_SERVER_HOST=zabbix-server \
-e DB_SERVER_HOST=mysql \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=Hinner@q1w2e3 \
-e MYSQL_DATABASE=zabbix \
-e PHP_TZ=Asia/Shanghai \
-p 80:8080 \
zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest
echo "等待 Web 启动(约 30 秒)..."
sleep 30
echo ""
echo "========== 部署完成 =========="
echo "访问地址: http://$(ip route get 1 | awk '{print $NF;exit}')"
echo "账号: Admin"
echo "密码: zabbix"
echo ""
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
执行 sh server.sh 命令,等待几分钟即可。。。。
说明:
1. web账号密码Admin zabbix
2. mysql账号密码root Hinner@q1w2e3
3. 有时间再去了解细节,重点是关心zabbix如何使用!!!!

5477

被折叠的 条评论
为什么被折叠?



