参考文档:https://www.cnblogs.com/A121/p/17466927.html

Zabbix 组件说明

Zabbix 主要有以下几个组件组成:

组件说明
Zabbix ServerZabbix 服务端,是 Zabbix 的核心组件。负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。
Zabbix AgentZabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 Zabbix Server 处理。

Zabbix Agent 目前有两个版本:Zabbix agent 和 Zabbix agent 2。前者是 C 语言开发的,几乎支持所有的主流平台。后者是 Go 开发的,优点包括:能有效降低 TCP 连接的数量;支持更高的并发;易于扩展。目标是替代 Zabbix agent,目前只支持 Linux 和 Windows 两个平台。
Zabbix Proxy代替 Zabbix Server 接收监控数据并进行预处理,预处理后的数据批量发送给 Zabbix Server,这样可减轻 Zabbix Server 的压力。
Web 页面可通过 Web 页面来管理和维护被监控设备的配置信息、查看监控数据、配置告警等。
数据库负责存储被监控设备的配置信息和监控数据。支持的数据库有:MySQL(Percona,MariaDB)、Oracle、PostgreSQL、TimescaleDB for PostgreSQL、SQLite。

部署环境

角色IPOSZabbix 版本
Zabbix Server10.0.0.228CentOS 7.9Zabbix 6.0.2
Zabbix Agent10.0.0.232CentOS 7.9Zabbix 6.0.2

安装步骤

整体流程:

  1. 部署 Nginx + PHP
  2. 部署 MariaDB 10.5 以上版本
  3. 编译安装 Zabbix Server 服务端以及配置
  4. 部署前端代码进行访问
  5. Web 访问配置

1. 准备工作

1.1 关闭防火墙和 SELinux

# 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

# 关闭 SELinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

1.2 下载 Zabbix 软件包

下载地址:https://www.zabbix.com/download


2. 安装 Nginx + PHP 环境

2.1 配置 Nginx 源

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

2.2 安装 Nginx

yum install -y nginx

2.3 配置 PHP 源

# 配置阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装 webtatic 源
yum install epel-release.noarch -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# 安装 PHP 及扩展
yum install -y php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd

image.png

2.4 Nginx 配置

创建 Zabbix 配置文件 /etc/nginx/conf.d/zabbix.conf

server {
    listen       8080;
    server_name  localhost;
    root /app/code/zbx;

    location / {
        index  index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

2.5 PHP 配置

# 修改 PHP-FPM 运行用户为 nginx
sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf

# 验证配置
egrep '^(user|group)' /etc/php-fpm.d/www.conf

2.6 创建 PHP 测试文件

mkdir -p /app/code/zbx
cat > /app/code/zbx/info.php << 'EOF'
<?php
phpinfo();
?>
EOF

2.7 设置开机自启动

systemctl enable nginx php-fpm
systemctl start nginx php-fpm

3. 部署数据库

注意:Zabbix 6.0 不支持 MariaDB 5.5(默认源中的 MariaDB),需要安装 MariaDB 10.5 以上版本。

3.1 配置 MariaDB YUM 源

创建 /etc/yum.repos.d/mariadb.repo

[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1

3.2 安装 MariaDB

yum install -y mariadb-server
# 注意查看版本确认是 10.5 以上

3.3 启动服务

systemctl enable mariadb
systemctl start mariadb

3.4 数据库初始化

mysql_secure_installation

交互说明:

  • Enter current password for root (enter for none): 直接回车(新用户没有密码)
  • Switch to unix_socket authentication [Y/n] 输入 n
  • Change the root password? [Y/n] 输入 y 设置 root 密码
  • 其余选项全部输入 y

3.5 创建数据库和用户

# 登录 MySQL
mysql -uroot -p

# 创建数据库(必须指定字符集,否则会出现乱码)
create database zabbix character set utf8 collate utf8_bin;

# 创建 Zabbix 用户并授权
grant all on zabbix.* to 'zabbix'@'%' identified by 'Zhangjiuhang2!';

# 刷新权限
flush privileges;
exit;

3.6 导入数据库

注意导入顺序:schema.sql → images.sql → data.sql

# 进入 Zabbix 解压后的 database/mysql/ 目录
cd /path/to/zabbix-6.0.x/database/mysql/

# 导入数据结构
mysql -uroot -p zabbix < schema.sql

# 导入图片数据
mysql -uroot -p zabbix < images.sql

# 导入初始数据
mysql -uroot -p zabbix < data.sql

4. 编译安装 Zabbix Server

4.1 编译安装 OpenSSL(Zabbix 7.0 以上需要)

如果安装 Zabbix 7.0 及以上版本,需要升级 OpenSSL:

# 下载并解压源码
wget https://www.openssl.org/source/openssl-3.0.8.tar.gz
tar -zxvf openssl-3.0.8.tar.gz
cd openssl-3.0.8

# 编译安装到自定义路径
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make -j$(nproc) && make install

# 配置动态库路径
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig

4.2 安装编译依赖

yum install -y gcc mysql-devel pcre-devel openssl-devel zlib-devel \
    libxml2-devel net-snmp-devel net-snmp libssh2-devel \
    OpenIPMI-devel libevent-devel openldap-devel libcurl-devel

4.3 编译安装 Zabbix Server

# 进入 Zabbix 源码目录
cd /path/to/zabbix-6.0.x

# 配置编译参数
./configure \
    --sysconfdir=/etc/zabbix/ \
    --enable-server \
    --with-mysql \
    --with-net-snmp \
    --with-libxml2 \
    --with-ssh2 \
    --with-openipmi \
    --with-zlib \
    --with-libpthread \
    --with-libevent \
    --with-openssl \
    --with-ldap \
    --with-libcurl \
    --with-libpcre

# Zabbix 7.0+ 需要指定 OpenSSL 路径
# --with-openssl=/usr/local/openssl

# 编译安装
make install

# 检查安装是否成功
echo $?
# 返回 0 表示成功

编译参数说明

参数说明
--sysconfdir=/etc/zabbix/指定配置文件的目录
--enable-server安装服务端
--with-mysql开启对 MySQL 的支持
--with-net-snmpSNMP 支持
--with-libxml2XML 支持
--with-ssh2SSH 支持
--with-openipmiIPMI 支持
--with-opensslSSL/TLS 支持
--with-ldapLDAP 认证支持
--with-libcurlWeb 监控支持

4.4 修改 Zabbix Server 配置文件

编辑 /etc/zabbix/zabbix_server.conf

# 查看当前配置
grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf

关键配置项:

ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zzjjhh123
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

image 1.png

4.5 创建 Zabbix 用户

# 创建 zabbix 用户(不允许登录)
useradd -s /sbin/nologin -M zabbix

# 创建日志目录并授权
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix/

4.6 启动 Zabbix Server

# 测试启动
zabbix_server

# 如果出现 "user zabbix does not exist" 错误,先创建用户

4.7 创建 Systemd 服务文件

创建 /usr/lib/systemd/system/zabbix-server-mysql.service

[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
Restart=always

[Install]
WantedBy=multi-user.target
EOF
# 重新加载 systemd
systemctl daemon-reload

# 启动服务
systemctl enable zabbix-server-mysql
systemctl start zabbix-server-mysql

# 查看状态
systemctl status zabbix-server-mysql

5. 部署前端代码

# 复制前端文件到网站目录
cp -r /path/to/zabbix-6.0.x/ui/* /app/code/zbx/

# 设置权限
chown -R zabbix:zabbix /app/code/zbx/

6. Web 页面访问

打开浏览器访问:http://<服务器IP>:8080

默认登录信息:

  • 用户名:Admin
  • 密码:zabbix

安装客户端

1. 安装 Zabbix 源

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm

2. 查看可用包

yum list | grep zabbix-agent2

3. 安装客户端

yum install -y zabbix-agent2

4. 配置客户端

编辑 /etc/zabbix/zabbix_agent2.conf

Server=10.0.0.228
ServerActive=10.0.0.228
Hostname=Zabbix Agent

image 2.png

5. 启动客户端

systemctl enable zabbix-agent2
systemctl start zabbix-agent2

常见问题

1. Zabbix Server 无法启动

  • 检查数据库连接配置是否正确
  • 检查 zabbix 用户是否存在
  • 查看日志 /tmp/zabbix_server.log

2. 前端页面显示错误

  • 检查 PHP 扩展是否安装完整
  • 检查 Nginx 配置是否正确
  • 检查文件权限
最后修改:2026 年 04 月 14 日
如果觉得我的文章对你有用,请随意赞赏