文章目录
- 一、
-
- 1、系统环境准备
- 2、安装Zabbix
- [3、MariaDB 数据库配置](#3、MariaDB 数据库配置)
- 4、Zabbix服务器配置
- [5、Nginx 与 PHP 配置](#5、Nginx 与 PHP 配置)
- 6、添加被监控对象
- [7、在 Zabbix 前端正确添加主机](#7、在 Zabbix 前端正确添加主机)
- 8、配置故障告警
- 9、邮件告警配置
一、
Zabbix是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
1、系统环境准备
- 关闭 SELinux
bash
# 临时关闭
setenforce 0
# 永久关闭
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
- 配置防火墙
bash
# 开放HTTP(80)、HTTPS(443)和Zabbix服务器端口(10051)
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --reload
2、安装Zabbix
- 安装最新的 Zabbix 7.0 LTS 官方仓库
bash
# 使用官方通用最新版本链接(永远指向最新的7.0 LTS release包)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
# 安装Zabbix服务器、前端、代理和SQL脚本
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
# 验证仓库是否正常
dnf list zabbix-server-mysql

3、MariaDB 数据库配置
- 登录MariaDB并创建Zabbix数据库
bash
mysql -u root -p
- 执行SQL语句
bash
-- 创建数据库(必须使用utf8mb4字符集和utf8mb4_bin排序规则)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- 创建Zabbix数据库用户并授权
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
- 导入 Zabbix 初始数据库结构
bash
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

4、Zabbix服务器配置
- 编辑 Zabbix 服务器主配置文件
bash
vim /etc/zabbix/zabbix_server.conf

bash
# 数据库名称
DBName=zabbix
# 数据库用户名
DBUser=zabbix
# 数据库密码(替换为您设置的zabbix_password)
DBPassword=zabbix_password
# 数据库套接字路径(Rocky Linux 10默认路径)
DBSocket=/var/lib/mysql/mysql.sock
# 启用日志
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
# 超时设置
Timeout=30
- 启动 Zabbix 服务器并设置开机自启
bash
systemctl enable --now zabbix-server
systemctl status zabbix-server

5、Nginx 与 PHP 配置
- 编辑 Zabbix Nginx 配置文件
bash
vim /etc/nginx/conf.d/zabbix.conf
- 修改以下内容(替换your_server_ip为您服务器的实际 IP 地址或域名)
bash
server {
listen 1031;
server_name 192.168.13.134;
root /usr/share/zabbix;
index index.php;
# 安全设置
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ ^/api/(?!(event|item|graph|image|chart)\.php).*\.php$ {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
# 解决Zabbix前端超时问题
fastcgi_read_timeout 300;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1d;
add_header Cache-Control "public, max-age=86400";
}
# 禁止访问敏感文件
location ~ /\.ht {
deny all;
}
location ~ /(conf|include|locale|setup)/ {
deny all;
}
}
- 配置 PHP 参数以满足 Zabbix 要求
bash
vim /etc/php-fpm.d/www.conf
- 修改以下 PHP-FPM 参数
bash
; 用户和组(与Nginx运行用户一致)
user = nginx
group = nginx
; 监听套接字权限
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

- 编辑 PHP 主配置文件
bash
vim /etc/php.ini
bash
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
- 重启相关服务
bash
systemctl restart php-fpm nginx
systemctl enable php-fpm nginx
- 访问 Zabbix 前端

bash
用户名 Admin
密码 zabbix


6、添加被监控对象
- 新建一台虚拟机用于被监控端

- 在被监控端(192.168.13.135)安装配置 Zabbix Agent2
bash
# 安装Zabbix 7.0 LTS仓库(与服务器版本一致)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
- 安装 Zabbix Agent2
bash
dnf install -y zabbix-agent2 zabbix-selinux-policy

- 配置 Zabbix Agent2修改以下参数
bash
vim /etc/zabbix/zabbix_agent2.conf
bash
# Zabbix服务器的IP地址(您的Zabbix服务器IP)
Server=192.168.13.XXX # 替换为您Zabbix服务器的实际IP
# 主动模式服务器地址
ServerActive=192.168.13.XXX # 同上
# 被监控主机的主机名(必须与Zabbix前端添加的主机名一致)
Hostname=192.168.13.135
# 允许远程命令执行(可选,用于告警动作)
AllowKey=system.run[*]
- 启动 Agent2 并设置开机自启
bash
systemctl enable --now zabbix-agent2
systemctl status zabbix-agent2
- 配置被监控端防火墙
bash
# 开放Zabbix Agent端口10050
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
7、在 Zabbix 前端正确添加主机
- 添加被监控对象

- 查看监控数据

- 模拟 CPU 飙升场景 使用专门的 CPU 压力测试工具
bash
# 安装stress-ng
dnf install -y stress-ng
# 测试1:打满所有CPU核心,持续60秒
stress-ng --cpu 0 --timeout 60s
# 测试2:打满2个CPU核心,持续5分钟
stress-ng --cpu 2 --timeout 300s
# 测试3:同时测试CPU和内存
stress-ng --cpu 2 --vm 1 --vm-bytes 512M --timeout 300s
- 实时查看最新数据

- 实时查看最新数据

8、配置故障告警
- 设置 CPU 高负载告警

- 修改配置 CPU使用率高于1分钟即告警

-
- 修改配置 修改CPU使用阈值

- 修改配置 修改CPU使用阈值
- 重新模拟 CPU 飙升
- 观察仪表盘可以看到问题

- 观察监测-问题可以看到告警

- 停止模拟可以看到问题已解决

9、邮件告警配置
- 163 邮箱端开启 SMTP 服务 并新增客户端授权码(KD3MCDr5ymp8NysF)
