zabbix企业级分布式开源监控解决方案

详细介绍Zabbix Server的部署方法。以下是几种常见的部署方式:

一、使用Docker部署(推荐)

1. 快速部署

bash复制下载

# 创建必要的目录
mkdir -p /opt/zabbix/{mysql,alertscripts,externalscripts,modules}

# 启动MySQL容器
docker run --name zabbix-mysql -t \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix" \
  -e MYSQL_ROOT_PASSWORD="root" \
  -v /opt/zabbix/mysql:/var/lib/mysql \
  --restart unless-stopped \
  -d mysql:8.0 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_bin \
  --default-authentication-plugin=mysql_native_password

# 启动Zabbix Server容器
docker run --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="zabbix-mysql" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix" \
  -e MYSQL_ROOT_PASSWORD="root" \
  -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
  -v /opt/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
  -v /opt/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
  -v /opt/zabbix/modules:/var/lib/zabbix/modules \
  --link zabbix-mysql:mysql \
  --restart unless-stopped \
  -p 10051:10051 \
  -d zabbix/zabbix-server-mysql:latest

# 启动Zabbix Web界面
docker run --name zabbix-web-nginx-mysql -t \
  -e ZBX_SERVER_HOST="zabbix-server-mysql" \
  -e DB_SERVER_HOST="zabbix-mysql" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix" \
  -e MYSQL_ROOT_PASSWORD="root" \
  --link zabbix-mysql:mysql \
  --link zabbix-server-mysql:zabbix-server \
  --restart unless-stopped \
  -p 80:8080 \
  -d zabbix/zabbix-web-nginx-mysql:latest

2. 使用Docker Compose

yaml复制下载

# docker-compose.yml
version: '3.5'
services:
  zabbix-mysql:
    image: mysql:8.0
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - zabbix-network

  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    ports:
      - "10051:10051"
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./alertscripts:/usr/lib/zabbix/alertscripts
      - ./externalscripts:/usr/lib/zabbix/externalscripts
      - ./modules:/var/lib/zabbix/modules
    depends_on:
      - zabbix-mysql
    networks:
      - zabbix-network

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    ports:
      - "80:8080"
    environment:
      ZBX_SERVER_HOST: zabbix-server
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    depends_on:
      - zabbix-mysql
      - zabbix-server
    networks:
      - zabbix-network

networks:
  zabbix-network:
    driver: bridge

二、传统方式部署(CentOS/RHEL)

1. 安装数据库(以MySQL为例)

bash复制下载

# 安装MySQL
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 创建Zabbix数据库和用户
mysql -u root -p <<EOF
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user 'zabbix'@'localhost' identified by 'zabbix';
grant all privileges on zabbix.* to 'zabbix'@'localhost';
flush privileges;
EOF

# 导入初始数据库架构
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix

2. 安装Zabbix Server

bash复制下载

# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum clean all

# 安装Zabbix组件
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent

# 配置Zabbix Server
vi /etc/zabbix/zabbix_server.conf
# 修改以下配置:
# DBHost=localhost
# DBName=zabbix
# DBUser=zabbix
# DBPassword=zabbix

# 配置PHP时区
vi /etc/php.ini
# date.timezone = Asia/Shanghai

# 启动服务
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

三、安装后配置

1. Web界面初始化

  1. 访问 http://your-server-ip/zabbix
  2. 按照向导完成配置:
    • 检查前提条件
    • 配置数据库连接
    • 设置Zabbix Server详情
    • 预览配置
    • 完成安装

2. 默认登录信息

  • 用户名:Admin
  • 密码:zabbix

四、基本配置建议

1. 安全加固

bash复制下载

# 修改默认密码
# 限制访问IP
# 配置HTTPS
# 定期备份配置和数据库

2. 监控代理部署

在被监控主机上安装Zabbix Agent:

bash复制下载

# Linux
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum install -y zabbix-agent
systemctl enable zabbix-agent
systemctl start zabbix-agent

# Windows
# 从官网下载Windows版本的Zabbix Agent安装程序

3. 重要目录说明

text复制下载

/etc/zabbix/          # 配置文件目录
/var/log/zabbix/      # 日志目录
/usr/lib/zabbix/      # 脚本和插件目录

五、常见问题排查

1. 检查服务状态

bash复制下载

systemctl status zabbix-server
tail -f /var/log/zabbix/zabbix_server.log

2. 端口检查

bash复制下载

netstat -tlnp | grep 10051

3. 数据库连接测试

bash复制下载

mysql -uzabbix -pzabbix -e "use zabbix; show tables;"

六、生产环境建议

  1. 分离部署:将数据库、Web界面和Server分开部署
  2. 高可用:考虑使用Zabbix Proxy实现分布式监控
  3. 备份策略:定期备份数据库和配置文件
  4. 性能优化:根据监控规模调整数据库参数和Zabbix配置
  5. 监控Zabbix自身:确保监控系统本身可用

选择哪种部署方式取决于您的环境和技术偏好。Docker方式适合快速部署和测试,传统方式更适合生产环境的细粒度控制。

滚动至顶部