APT 安装方式(适合生产环境)Zabbix 6.4 LTS

APT 安装方式(适合生产环境)Zabbix 6.4 LTS

一、准备环境

bash 复制代码
sudo apt update -y
sudo apt upgrade -y
sudo timedatectl set-timezone Asia/Shanghai

安装常用工具:

bash 复制代码
sudo apt install -y wget curl gnupg lsb-release software-properties-common

二、安装 Zabbix 仓库

bash 复制代码
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-4+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_6.4-4+ubuntu24.04_all.deb
sudo apt update

三、安装 Zabbix Server + Web + Agent

这里以 MySQL + Nginx + PHP-FPM 为例:

bash 复制代码
sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
    zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mysql-server

四、配置数据库

  1. 登录 MySQL:
bash 复制代码
sudo mysql -uroot
  1. 创建数据库和用户:
sql 复制代码
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpass';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  1. 导入初始数据:
bash 复制代码
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -pzabbixpass --default-character-set=utf8mb zabbix

mysql -ure -p -h [ip] -P 3306 --default-character-set=utf8mb4 zabbix < server.sql

五、配置 Zabbix Server

编辑配置文件:

bash 复制代码
sudo nano /etc/zabbix/zabbix_server.conf

找到并修改:

复制代码
DBPassword=zabbixpass

六、配置 Nginx

编辑:

bash 复制代码
sudo nano /etc/zabbix/nginx.conf

修改监听端口和 server_name,比如:

复制代码
listen          8080;
server_name     zabbix.example.com;

七、启动服务

bash 复制代码
sudo systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm

八、访问 Web 界面

浏览器访问:

复制代码
http://<你的服务器IP>:8080

进入 Zabbix 安装向导,默认账号密码:

复制代码
用户名:Admin
密码:zabbix

九、语言包配置

检查本地语言包:

bash 复制代码
locale -a

安装所需的语言环境:

bash 复制代码
# Debian/Ubuntu
## 安装语言包
sudo apt update
sudo apt install language-pack-zh-hans language-pack-zh-hans-base
## 生成语言环境
sudo locale-gen zh_CN.UTF-8
sudo update-locale

#  CentOS/RHEL
## 安装语言包
sudo yum install glibc-common zh_CN.UTF-8

## 设置语言环境
sudo localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

配置系统默认语言环境(可选):

编辑 /etc/default/locale(Debian/Ubuntu)或 /etc/locale.conf(CentOS/RHEL)文件。

text 复制代码
# 设置为中文
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

# 使更改生效
source /etc/default/locale  # Debian/Ubuntu
source /etc/locale.conf     # CentOS/RHEL

重启 Web 服务器:

bash 复制代码
# Apache
sudo systemctl restart apache2

# Nginx
sudo systemctl restart nginx

Docker Compose 部署 Zabbix 6.4 (LTS)

这种方式比在系统上直接装包更方便,升级和迁移也容易。

一、准备环境

Ubuntu 24.04 上安装 Docker & Compose:

bash 复制代码
sudo apt update -y
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

二、创建目录

bash 复制代码
mkdir -p ~/zabbix-docker
cd ~/zabbix-docker

三、编写 docker-compose.yml

zabbix-docker/docker-compose.yml

yaml 复制代码
version: '3.5'

services:
  mysql:
    image: mysql:8.0
    container_name: zabbix-mysql
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./mysql_data:/var/lib/mysql
    restart: unless-stopped

  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.4-ubuntu-latest
    container_name: zabbix-server
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
    ports:
      - "10051:10051"
    depends_on:
      - mysql
    restart: unless-stopped

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.4-ubuntu-latest
    container_name: zabbix-web
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai
    ports:
      - "8080:8080"
    depends_on:
      - zabbix-server
    restart: unless-stopped

  zabbix-agent:
    image: zabbix/zabbix-agent:6.4-ubuntu-latest
    container_name: zabbix-agent
    environment:
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "10050:10050"
    restart: unless-stopped

四、启动服务

bash 复制代码
docker-compose up -d

查看容器状态:

bash 复制代码
docker ps

五、访问 Zabbix Web

浏览器访问:

复制代码
http://<你的服务器IP>:8080

默认账号:

复制代码
用户名:admin
密码:zabbix

六、数据持久化

  • MySQL 数据会保存在 ~/zabbix-docker/mysql_data
  • 如果要升级,只需更新镜像后 docker-compose pull && docker-compose up -d 即可。

Zabbix 6.4 多机分布式部署(Server + Proxy + Agent)

复制代码
           ┌──────────────┐
           │   Zabbix     │
           │   Server     │
           └───────┬──────┘
                   │
         ┌─────────┴──────────┐
         │                    │
 ┌───────┴───────┐    ┌───────┴───────┐
 │   Zabbix Proxy │    │   Zabbix Proxy│   ← 分布在不同机房/区域
 └───────┬───────┘    └───────┬───────┘
         │                    │
   ┌─────┴─────┐         ┌────┴─────┐
   │  Agents   │         │  Agents  │
   └───────────┘         └──────────┘

一、Zabbix Server 节点

服务器 A 部署 Server + Web + DB
server-compose.yml

yaml 复制代码
version: '3.5'

services:
  mysql:
    image: mysql:8.0
    container_name: zabbix-mysql
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./mysql_data:/var/lib/mysql
    restart: unless-stopped

  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.4-ubuntu-latest
    container_name: zabbix-server
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
    ports:
      - "10051:10051"   # Proxy 会连这个端口
    depends_on:
      - mysql
    restart: unless-stopped

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.4-ubuntu-latest
    container_name: zabbix-web
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai
    ports:
      - "8080:8080"
    depends_on:
      - zabbix-server
    restart: unless-stopped

启动:

bash 复制代码
docker-compose -f server-compose.yml up -d

二、Zabbix Proxy 节点

每个 Proxy 部署在不同物理机/区域,用于收集监控数据并转发到 Server。

例如:服务器 B。
proxy-compose.yml

yaml 复制代码
version: '3.5'

services:
  proxy-mysql:
    image: mysql:8.0
    container_name: zabbix-proxy-mysql
    environment:
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./proxy_mysql_data:/var/lib/mysql
    restart: unless-stopped

  zabbix-proxy:
    image: zabbix/zabbix-proxy-mysql:6.4-ubuntu-latest
    container_name: zabbix-proxy
    environment:
      DB_SERVER_HOST: proxy-mysql
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_HOSTNAME: proxy-b     # Proxy 名称,需要和 Web 界面配置一致
      ZBX_SERVER_HOST: <server_ip>   # Server 节点的 IP
    ports:
      - "10052:10051"   # Proxy 本地监听
    depends_on:
      - proxy-mysql
    restart: unless-stopped

启动:

bash 复制代码
docker-compose -f proxy-compose.yml up -d

⚠️ 注意:

  • ZBX_HOSTNAME 必须和你在 Zabbix Web 界面添加 Proxy 时的名字一致。
  • ZBX_SERVER_HOST 指向 Server 节点的 IP 或域名

三、Zabbix Agent 节点

每台需要监控的服务器运行 Agent。

例如服务器 C(业务主机)。

agent-compose.yml

yaml 复制代码
version: '3.5'

services:
  zabbix-agent:
    image: zabbix/zabbix-agent:6.4-ubuntu-latest
    container_name: zabbix-agent
    environment:
      ZBX_HOSTNAME: agent-c
      ZBX_SERVER_HOST: <proxy_ip>   # 这里填 Proxy 的 IP,而不是直接 Server
    ports:
      - "10050:10050"
    restart: unless-stopped

启动:

bash 复制代码
docker-compose -f agent-compose.yml up -d

四、Web 界面配置

  1. 登录 Zabbix Web(Server 节点 http://server_ip:8080)。

  2. Administration → Proxies 添加 Proxy:

    • Proxy name:要和 ZBX_HOSTNAME 一致,比如 proxy-b
    • Mode:Active(推荐)
  3. Configuration → Hosts 中,把 Agent 所属主机的 Monitored by proxy 设置为对应 Proxy。


✅ 这样就能实现:

  • Server:统一存储和展示数据
  • Proxy:分布式采集,减少跨区域压力
  • Agent:安装在被监控主机上

docker-compose 配置里统一管理多个 Proxy

这可以通过 docker-compose.yml + 一个 docker-compose.override.yml 来实现,Override 文件里定义多个 Proxy。


📂 目录结构

bash 复制代码
zabbix-docker/
├── docker-compose.yml           # 主配置(Server + Web + DB)
├── docker-compose.override.yml  # 扩展 Proxy 集群
└── mysql_data/                  # Server DB 数据

🖥 主配置:docker-compose.yml

(部署 Server + Web)
docker-compose.yml

yaml 复制代码
version: '3.5'

services:
  mysql:
    image: mysql:8.0
    container_name: zabbix-mysql
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./mysql_data:/var/lib/mysql
    restart: unless-stopped

  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.4-ubuntu-latest
    container_name: zabbix-server
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
    ports:
      - "10051:10051"
    depends_on:
      - mysql
    restart: unless-stopped

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.4-ubuntu-latest
    container_name: zabbix-web
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai
    ports:
      - "8080:8080"
    depends_on:
      - zabbix-server
    restart: unless-stopped

📡 Override 配置:docker-compose.override.yml

(定义多个 Proxy,每个 Proxy 带独立 MySQL)

docker-compose.override.yml

yaml 复制代码
version: '3.5'

services:
  # Proxy A
  proxy-a-mysql:
    image: mysql:8.0
    container_name: proxy-a-mysql
    environment:
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./proxy-a-mysql-data:/var/lib/mysql
    restart: unless-stopped

  proxy-a:
    image: zabbix/zabbix-proxy-mysql:6.4-ubuntu-latest
    container_name: proxy-a
    environment:
      DB_SERVER_HOST: proxy-a-mysql
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_HOSTNAME: proxy-a
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "10052:10051"
    depends_on:
      - proxy-a-mysql
    restart: unless-stopped

  # Proxy B
  proxy-b-mysql:
    image: mysql:8.0
    container_name: proxy-b-mysql
    environment:
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./proxy-b-mysql-data:/var/lib/mysql
    restart: unless-stopped

  proxy-b:
    image: zabbix/zabbix-proxy-mysql:6.4-ubuntu-latest
    container_name: proxy-b
    environment:
      DB_SERVER_HOST: proxy-b-mysql
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_HOSTNAME: proxy-b
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "10053:10051"
    depends_on:
      - proxy-b-mysql
    restart: unless-stopped

  # Proxy C
  proxy-c-mysql:
    image: mysql:8.0
    container_name: proxy-c-mysql
    environment:
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - ./proxy-c-mysql-data:/var/lib/mysql
    restart: unless-stopped

  proxy-c:
    image: zabbix/zabbix-proxy-mysql:6.4-ubuntu-latest
    container_name: proxy-c
    environment:
      DB_SERVER_HOST: proxy-c-mysql
      MYSQL_DATABASE: zabbix_proxy
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbixpass
      ZBX_HOSTNAME: proxy-c
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "10054:10051"
    depends_on:
      - proxy-c-mysql
    restart: unless-stopped

🚀 启动命令

zabbix-docker/ 目录执行:

bash 复制代码
docker-compose up -d

Docker 会自动加载 docker-compose.ymldocker-compose.override.yml,一起启动:

  • 1 个 Server
  • 1 个 Web 前端
  • 3 个 Proxy(A/B/C)

⚙️ Web 配置

进入 http://<server_ip>:8080,在 Administration → Proxies 添加:

  • proxy-a
  • proxy-b
  • proxy-c

⚠️ 名字必须和 ZBX_HOSTNAME 保持一致。

相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei3 天前
linux 系统目录详解
linux·运维·服务器