docker安装zabbix

1.docker安装zabbix

微信:ren597634528 ;有不懂的,可以进技术交流群沟通

mkdir -p /opt/zabbix/{conf,data,backups}
 
cat > docker-compose.yml <<-'EOF'
version: '3.3'
 
services:
  mysql-server:
    image: mysql:8.1
    container_name: mysql-server
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      TZ: Asia/Shanghai
    volumes:
      - /opt/zabbix/data:/var/lib/mysql
    networks:
      - zabbix-net
    command: --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password
 
  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:latest
    container_name: zabbix-java-gateway
    restart: always
    ports:
      - "10052:10052"
    environment:
      TZ: Asia/Shanghai
    networks:
      - zabbix-net
 
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server-mysql
    restart: unless-stopped
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      ZBX_JAVAGATEWAY: zabbix-java-gateway
      TZ: Asia/Shanghai
    ports:
      - "10051:10051"
    networks:
      - zabbix-net
 
  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-web-nginx-mysql
    restart: unless-stopped
    environment:
      ZBX_SERVER_HOST: zabbix-server-mysql
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      TZ: Asia/Shanghai
    ports:
      - "80:8080"
    networks:
      - zabbix-net
 
 
networks:
  zabbix-net:
EOF
 

#启动zabbix
docker-compose up -d
 

2.备份mysql

 
yum install -y mariadb mariadb-server && yum clean all
 
#备份mysql脚本
cat > /opt/zabbix/backups/backup_mysql.sh <<-'EOF'
#!/bin/bash
 
# 获取当前日期
current_date=$(date +%Y%m%d_%H%M%S)
 
# 获取容器的 IP 地址
ipname=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-server)
 
# 设置 MySQL 密码环境变量
export MYSQL_PWD=root_pwd
 
# 执行备份命令
mysqldump -h $ipname -u root zabbix > /opt/zabbix/backups/zabbix_$current_date.sql
 
# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup successful!"
else
    echo "Backup failed!"
fi
 
# 清理超过15天的备份文件
find /opt/zabbix/backups/ -type f -name 'zabbix_*.sql' -mtime +15 -exec rm {} \;
 
EOF
 
chmod +x /opt/zabbix/backups/backup_mysql.sh
 
# 定义要添加的任务
TASK="0 0 * * * /opt/zabbix/backups/backup_mysql.sh"
 
# 添加新任务
(crontab -l; echo "$TASK") | crontab -
 
crontab -l
 
 

3.开放防火墙端口


 
firewall-cmd --zone=public --add-port=10052/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
 
#--重载
firewall-cmd --reload
 
#--查询已经开放的端口
firewall-cmd --list-port
 
 

4.清理zabbix

#清除zabbix
docker stop mysql-server zabbix-server-mysql zabbix-web-nginx-mysql zabbix_agent zabbix-java-gateway
 
docker rm mysql-server zabbix-server-mysql zabbix-web-nginx-mysql zabbix_agent zabbix-java-gateway


### 使用 Docker 安装 Zabbix 的最佳实践 #### 1. 准备工作 在开始之前,确保已安装 DockerDocker Compose 工具。可以通过以下命令验证其版本是否存在: ```bash docker --version docker-compose --version ``` 如果未安装,则需先完成安装过程[^1]。 --- #### 2. 创建 `docker-compose.yml` 文件 为了简化部署流程,推荐使用 Docker Compose 来定义服务环境。以下是适用于 Zabbix 6.0 LTS 版本的典型配置: ```yaml version: '3' services: db: image: mysql:5.7 container_name: my-zabbix-db restart: unless-stopped environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: your_password_here MYSQL_ROOT_PASSWORD: your_root_password_here volumes: - ./db_data:/var/lib/mysql command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] zabbix-server-mysql: image: zabbix/zabbix-server-mysql:alpine-6.0-latest container_name: my-zabbix-server depends_on: - db restart: unless-stopped environment: DB_SERVER_HOST: "db" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "your_password_here" MYSQL_ROOT_PASSWORD: "your_root_password_here" ports: - "10051:10051" zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest container_name: my-zabbix-frontend depends_on: - db - zabbix-server-mysql restart: unless-stopped environment: DB_SERVER_HOST: "db" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "your_password_here" PHP_TZ: "Europe/Berlin" # 替换为您所在时区 ports: - "80:8080" ``` 上述配置中包含了三个主要容器:MySQL 数据库、Zabbix Server 和前端 Web 接口。 --- #### 3. 启动服务 保存 `docker-compose.yml` 文件后,在同一目录下运行以下命令来启动服务: ```bash docker-compose up -d ``` 该命令将以后台模式启动所有指定的服务,并自动下载所需的镜像文件(如果尚未存在)。完成后可通过浏览器访问默认地址 `http://localhost` 查看 Zabbix 前端界面。 --- #### 4. 验证与测试 确认各组件正常运行的方法如下: - **数据库状态**:登录到 MySQL 容器内部执行查询语句; - **API 可达性**:尝试调用 RESTful API 或者通过 CLI 测试连接情况; - **Web 页面加载速度**:观察页面响应时间是否合理; 此外还可以利用日志查看工具排查潜在错误信息: ```bash docker logs my-zabbix-server docker logs my-zabbix-frontend ``` 对于更复杂的运维需求,可以考虑集成 Prometheus/Grafana 进行性能指标采集分析或者借助 ELK Stack 实现集中化日志管理等功能扩展[^4]。 --- #### 5. 日常维护建议 定期备份数据卷以防意外丢失重要资料;更新官方最新版镜像保持安全性补丁及时修复漏洞风险;优化资源配置提升整体效率表现等等都是必不可少的工作环节之一[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大侠运维联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值