文章目录一、1、系统环境准备2、安装Zabbix3、MariaDB 数据库配置4、Zabbix服务器配置5、Nginx 与 PHP 配置6、添加被监控对象7、在 Zabbix 前端正确添加主机8、配置故障告警9、邮件告警配置一、Zabbix是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。1、系统环境准备关闭 SELinux# 临时关闭setenforce0# 永久关闭sed-is/^SELINUX.*/SELINUXdisabled//etc/selinux/config配置防火墙# 开放HTTP(80)、HTTPS(443)和Zabbix服务器端口(10051)firewall-cmd--permanent--add-servicehttp firewall-cmd--permanent--add-servicehttps firewall-cmd--permanent--add-port10051/tcp firewall-cmd--reload2、安装Zabbix安装最新的 Zabbix 7.0 LTS 官方仓库# 使用官方通用最新版本链接永远指向最新的7.0 LTS release包rpm-Uvhhttps://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm dnf clean all# 安装Zabbix服务器、前端、代理和SQL脚本dnfinstall-yzabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2# 验证仓库是否正常dnf list zabbix-server-mysql3、MariaDB 数据库配置登录MariaDB并创建Zabbix数据库mysql-uroot-p执行SQL语句-- 创建数据库必须使用utf8mb4字符集和utf8mb4_bin排序规则 CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;-- 创建Zabbix数据库用户并授权 CREATEUSERzabbixlocalhostIDENTIFIED BYzabbix_password;GRANT ALL PRIVILEGES ON zabbix.* TOzabbixlocalhost;FLUSH PRIVILEGES;EXIT;导入 Zabbix 初始数据库结构zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz|mysql-uzabbix-pzabbix4、Zabbix服务器配置编辑 Zabbix 服务器主配置文件vim/etc/zabbix/zabbix_server.conf# 数据库名称DBNamezabbix# 数据库用户名DBUserzabbix# 数据库密码替换为您设置的zabbix_passwordDBPasswordzabbix_password# 数据库套接字路径Rocky Linux 10默认路径DBSocket/var/lib/mysql/mysql.sock# 启用日志LogFile/var/log/zabbix/zabbix_server.logLogFileSize0DebugLevel3# 超时设置Timeout30启动 Zabbix 服务器并设置开机自启systemctlenable--nowzabbix-server systemctl status zabbix-server5、Nginx 与 PHP 配置编辑 Zabbix Nginx 配置文件vim/etc/nginx/conf.d/zabbix.conf修改以下内容替换your_server_ip为您服务器的实际 IP 地址或域名server{listen1031;server_name192.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-Protection1; modeblock;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_timeout300;}# 静态资源缓存location ~*\.(js|css|png|jpg|jpeg|gif|ico|svg)${expires 1d;add_header Cache-Controlpublic, max-age86400;}# 禁止访问敏感文件location ~ /\.ht{deny all;}location ~ /(conf|include|locale|setup)/{deny all;}}配置 PHP 参数以满足 Zabbix 要求vim/etc/php-fpm.d/www.conf修改以下 PHP-FPM 参数;用户和组与Nginx运行用户一致 usernginx groupnginx;监听套接字权限 listen.ownernginx listen.groupnginx listen.mode0660编辑 PHP 主配置文件vim/etc/php.inimax_execution_time300max_input_time300memory_limit256M post_max_size32M upload_max_filesize16M date.timezoneAsia/Shanghai always_populate_raw_post_data-1重启相关服务systemctl restart php-fpm nginx systemctlenablephp-fpm nginx访问 Zabbix 前端用户名 Admin 密码 zabbix6、添加被监控对象新建一台虚拟机用于被监控端在被监控端192.168.13.135安装配置 Zabbix Agent2# 安装Zabbix 7.0 LTS仓库与服务器版本一致rpm-Uvhhttps://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm dnf clean all安装 Zabbix Agent2dnfinstall-yzabbix-agent2 zabbix-selinux-policy配置 Zabbix Agent2修改以下参数vim/etc/zabbix/zabbix_agent2.conf# Zabbix服务器的IP地址您的Zabbix服务器IPServer192.168.13.XXX# 替换为您Zabbix服务器的实际IP# 主动模式服务器地址ServerActive192.168.13.XXX# 同上# 被监控主机的主机名必须与Zabbix前端添加的主机名一致Hostname192.168.13.135# 允许远程命令执行可选用于告警动作AllowKeysystem.run[*]启动 Agent2 并设置开机自启systemctlenable--nowzabbix-agent2 systemctl status zabbix-agent2配置被监控端防火墙# 开放Zabbix Agent端口10050firewall-cmd--permanent--add-port10050/tcp firewall-cmd--reload7、在 Zabbix 前端正确添加主机添加被监控对象查看监控数据模拟 CPU 飙升场景 使用专门的 CPU 压力测试工具# 安装stress-ngdnfinstall-ystress-ng# 测试1打满所有CPU核心持续60秒stress-ng--cpu0--timeout60s# 测试2打满2个CPU核心持续5分钟stress-ng--cpu2--timeout300s# 测试3同时测试CPU和内存stress-ng--cpu2--vm1--vm-bytes 512M--timeout300s实时查看最新数据实时查看最新数据8、配置故障告警设置 CPU 高负载告警修改配置 CPU使用率高于1分钟即告警修改配置 修改CPU使用阈值重新模拟 CPU 飙升观察仪表盘可以看到问题观察监测-问题可以看到告警停止模拟可以看到问题已解决9、邮件告警配置163 邮箱端开启 SMTP 服务 并新增客户端授权码KD3MCDr5ymp8NysF