参考文档:https://www.cnblogs.com/A121/p/17466927.html
Zabbix 组件说明
Zabbix 主要有以下几个组件组成:
| 组件 | 说明 |
|---|---|
| Zabbix Server | Zabbix 服务端,是 Zabbix 的核心组件。负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。 |
| Zabbix Agent | Zabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 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。 |
部署环境
| 角色 | IP | OS | Zabbix 版本 |
|---|---|---|---|
| Zabbix Server | 10.0.0.228 | CentOS 7.9 | Zabbix 6.0.2 |
| Zabbix Agent | 10.0.0.232 | CentOS 7.9 | Zabbix 6.0.2 |
安装步骤
整体流程:
- 部署 Nginx + PHP
- 部署 MariaDB 10.5 以上版本
- 编译安装 Zabbix Server 服务端以及配置
- 部署前端代码进行访问
- 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/config1.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
EOF2.2 安装 Nginx
yum install -y nginx2.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
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.conf2.6 创建 PHP 测试文件
mkdir -p /app/code/zbx
cat > /app/code/zbx/info.php << 'EOF'
<?php
phpinfo();
?>
EOF2.7 设置开机自启动
systemctl enable nginx php-fpm
systemctl start nginx php-fpm3. 部署数据库
注意: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 = 13.2 安装 MariaDB
yum install -y mariadb-server
# 注意查看版本确认是 10.5 以上3.3 启动服务
systemctl enable mariadb
systemctl start mariadb3.4 数据库初始化
mysql_secure_installation交互说明:
Enter current password for root (enter for none):直接回车(新用户没有密码)Switch to unix_socket authentication [Y/n]输入nChange 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.sql4. 编译安装 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
ldconfig4.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-devel4.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-snmp | SNMP 支持 |
--with-libxml2 | XML 支持 |
--with-ssh2 | SSH 支持 |
--with-openipmi | IPMI 支持 |
--with-openssl | SSL/TLS 支持 |
--with-ldap | LDAP 认证支持 |
--with-libcurl | Web 监控支持 |
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
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-mysql5. 部署前端代码
# 复制前端文件到网站目录
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.rpm2. 查看可用包
yum list | grep zabbix-agent23. 安装客户端
yum install -y zabbix-agent24. 配置客户端
编辑 /etc/zabbix/zabbix_agent2.conf:
Server=10.0.0.228
ServerActive=10.0.0.228
Hostname=Zabbix Agent
5. 启动客户端
systemctl enable zabbix-agent2
systemctl start zabbix-agent2常见问题
1. Zabbix Server 无法启动
- 检查数据库连接配置是否正确
- 检查 zabbix 用户是否存在
- 查看日志
/tmp/zabbix_server.log
2. 前端页面显示错误
- 检查 PHP 扩展是否安装完整
- 检查 Nginx 配置是否正确
- 检查文件权限