当前位置: 首页 > news >正文

Zabbix监控初步搭建

一、环境准备

1. 基础环境信息

项目配置说明
操作系统RHEL 10(或 CentOS Stream 10)
主机名zabbix-server
IP 地址192.168.24.41/24
网关192.168.24.2
DNS223.5.5.5
软件版本Zabbix 7.0 LTS、MariaDB 10.11、Nginx 1.24、PHP 8.2

2. 系统初始化配置

2.1 克隆虚拟机

基于干净的 RHEL 10 模板克隆虚拟机,避免环境依赖冲突。

2.2 设置主机名
hostnamectl set-hostname zabbix-server && bash
2.3 配置静态 IP 地址
nmcli connection modify ens160 \ ipv4.method manual \ ipv4.addresses 192.168.24.24/24 \ ipv4.gateway 192.168.24.2 \ ipv4.dns 223.5.5.5 \ connection.autoconnect yes nmcli connection up ens160 # 验证IP配置 ip addr show ens160 ping 192.168.24.2 -c 3
2.4 系统时间同步(监控系统必须)
dnf install -y chrony systemctl enable --now chronyd timedatectl set-timezone Asia/Shanghai # 验证时间同步状态 chronyc tracking timedatectl status
2.5 防火墙配置(RHEL 10 默认启用 firewalld)
# 开放Zabbix前端、Agent通信端口 firewall-cmd --permanent --add-port=8080/tcp # Web前端端口 firewall-cmd --permanent --add-port=10050/tcp # Zabbix Agent端口 firewall-cmd --permanent --add-port=10051/tcp # Zabbix Trapper端口 firewall-cmd --reload # 验证规则生效 firewall-cmd --list-ports

二、安装 Zabbix 服务端

1. 配置 Zabbix 官方仓库

官网

下载Zabbix 7.0 LTS for Red Hat Enterprise Linux 10, MySQL, Nginxhttps://www.zabbix.com/cn/download?zabbix=7.0&os_distribution=red_hat_enterprise_linux&os_version=10&components=server_frontend_agent&db=mysql&ws=nginx

1.1 处理 EPEL 源冲突(可选,若已安装 EPEL)

如果系统已配置 EPEL 源,需禁用 EPEL 中的 Zabbix 包,避免版本冲突:

# 编辑EPEL源配置(路径示例:/etc/yum.repos.d/epel.repo) vim /etc/yum.repos.d/epel.repo

[epel]段添加以下内容:

[epel] name=Extra Packages for Enterprise Linux $releasever - $basearch baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever excludepkgs=zabbix* # 禁用EPEL中的Zabbix包
1.2 安装 Zabbix 官方仓库
# 安装Zabbix 7.0 LTS仓库(适配RHEL 10) rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm # 刷新仓库缓存 dnf clean all && dnf makecache

2. 安装 Zabbix 核心组件

dnf install -y \ zabbix-server-mysql \ # Zabbix服务端(MySQL/MariaDB版) zabbix-web-mysql \ # Web前端(支持MySQL) zabbix-nginx-conf \ # Nginx配置文件 zabbix-sql-scripts \ # 数据库初始化脚本 zabbix-selinux-policy \ # SELinux策略包(RHEL 10必装) zabbix-agent \ # 本地Zabbix Agent nginx \ # Web服务器 php-fpm # PHP运行环境

3. 部署 MariaDB 数据库

3.1 安装并启动 MariaDB
dnf install -y mariadb-server systemctl enable --now mariadb # 验证数据库状态 systemctl status mariadb
3.2 配置 MariaDB(关键优化)

编辑 MariaDB 主配置文件:

vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]段添加 / 修改以下配置:

[mysqld] # 基础配置 bind-address=127.0.0.1 # 仅本地监听,安全加固 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # 字符集配置(与Zabbix要求一致) character-set-server=utf8mb4 collation-server=utf8mb4_bin # InnoDB优化(适配Zabbix负载) innodb_buffer_pool_size=256M # 建议为内存的50%(根据实际调整) innodb_log_file_size=64M innodb_flush_log_at_trx_commit=2 # 日志配置 log-error=/var/log/mariadb/mariadb.log pid-file=/run/mariadb/mariadb.pid

重启数据库使配置生效:

systemctl restart mariadb
3.3 初始化数据库与用户
  1. 登录 MariaDB(初始无密码,直接回车登录)

    mysql -uroot
  2. 修改 root 用户密码(安全加固,非必须但强烈建议)

    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的数据库root密码'; FLUSH PRIVILEGES;
  3. 创建 Zabbix 数据库与专用用户

    -- 创建Zabbix数据库(字符集必须为utf8mb4_bin) CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; -- 创建Zabbix数据库用户(仅本地访问) CREATE USER zabbix@localhost IDENTIFIED BY '你的Zabbix数据库密码'; -- 授予用户所有权限 GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost; -- 临时开启函数创建权限(导入数据用) SET GLOBAL log_bin_trust_function_creators = 1; -- 退出数据库 QUIT;
  4. 导入 Zabbix 初始化数据

    # 导入SQL脚本,输入上一步设置的Zabbix数据库密码 zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \ mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
  5. 恢复数据库安全配置

    mysql -uroot -p你的数据库root密码
    -- 关闭函数创建权限(生产环境必须) SET GLOBAL log_bin_trust_function_creators = 0; QUIT;

4. 配置 Zabbix 服务端

编辑 Zabbix 服务端主配置文件:

vim /etc/zabbix/zabbix_server.conf

修改以下关键配置:

# 数据库连接配置 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=你的Zabbix数据库密码 # 与数据库创建时设置的密码一致 # 日志配置 LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=100 # 单个日志文件最大100MB LogFileCount=3 # 保留3个日志文件 # 性能基础配置(可根据服务器规格调整) StartPollers=5 # 轮询器进程数 StartDiscoverers=2 # 自动发现进程数 StartTrappers=5 # 接收器进程数 CacheSize=8M # 配置缓存大小 HistoryCacheSize=16M # 历史数据缓存大小 TrendCacheSize=4M # 趋势数据缓存大小

5. 配置 Web 前端环境

5.1 配置 Nginx

编辑 Zabbix 的 Nginx 配置文件:

vim /etc/nginx/conf.d/zabbix.conf

修改以下配置:

server { listen 8080; # 监听端口(默认8080,避免与80冲突) server_name zabbix-server; # 修改为你的主机名或IP root /usr/share/zabbix; index index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; include fastcgi_params; } }

验证 Nginx 配置语法:

nginx -t
5.2 配置 PHP 时区(关键!否则前端报错)

编辑 PHP 配置文件:

vim /etc/php.ini

修改时区配置:

date.timezone = Asia/Shanghai # 必须设置为东八区时间

6. 启动所有服务并设置开机自启

# 启动并设置开机自启 systemctl enable --now \ zabbix-server \ zabbix-agent \ nginx \ php-fpm # 验证所有服务状态 systemctl status zabbix-server zabbix-agent nginx php-fpm

三、Web 端初始化配置

1. 访问 Zabbix 前端

打开浏览器访问:http://192.168.24.41:8080,按向导完成初始化配置:

  1. 检查 PHP 环境依赖(确保所有项显示OK
  2. 配置数据库连接信息(与zabbix_server.conf中配置一致)
  3. 设置 Zabbix 服务端名称与时区(选择Asia/Shanghai
  4. 完成安装,生成配置文件(若提示权限问题,手动创建/etc/zabbix/web/zabbix.conf.php

2. 登录 Web 端

  • 默认用户名:Admin(首字母大写)
  • 默认密码:zabbix

3. 配置中文界面(解决乱码问题)

3.1 安装中文语言包
# 查找系统镜像中的中文包(若已挂载RHEL镜像) find /mnt -name "zh_CN" # 安装中文语言包 dnf install -y langpacks-zh_CN
3.2 切换界面语言

登录后进入:User settings → Profile → Language,选择Chinese(zh_CN),点击Update

3.3 解决中文乱码

Zabbix 默认字体不支持中文,需替换为中文字体:

  1. 上传中文字体文件(如simhei.ttf)到/usr/share/zabbix/assets/fonts/
  2. 修改字体配置文件:
    vim /usr/share/zabbix/include/defines.inc.php
    将以下配置:
    define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); define('ZBX_FONT_NAME', 'DejaVuSans');
    修改为:
    define('ZBX_GRAPH_FONT_NAME', 'simhei'); define('ZBX_FONT_NAME', 'simhei');
  3. 刷新页面,中文即可正常显示。

四、关键验证与排错

1. 验证服务日志

# 查看Zabbix服务端日志 tail -f /var/log/zabbix/zabbix_server.log # 查看Nginx错误日志 tail -f /var/log/nginx/error.log

2. 常见问题排查

  • 问题 1:数据库连接失败检查zabbix_server.conf中的DBPassword是否与数据库中设置的一致,确认localhost连接权限。
  • 问题 2:Web 前端时区报错检查/etc/php.ini中的date.timezone是否设置为Asia/Shanghai,重启php-fpm服务。
  • 问题 3:中文乱码确认已替换中文字体并修改defines.inc.php配置,清除浏览器缓存后刷新。

五、安全加固建议

  1. 修改默认 Admin 用户密码,设置强密码
  2. 禁用数据库远程访问(已配置bind-address=127.0.0.1
  3. 限制 Zabbix 前端访问 IP(修改 Nginx 配置添加allow规则)
  4. 定期备份 Zabbix 数据库:
    mysqldump -uroot -p zabbix > /backup/zabbix_$(date +%Y%m%d).sql

结果展示:

http://www.jsqmd.com/news/904865/

相关文章:

  • 猫抓浏览器扩展完全指南:告别网页资源获取烦恼
  • 2026年5月泰安黄金回收哪家好?8家实测+避坑全攻略 - 生活测评君
  • 2026年5月停车场出入口设备厂家选型攻略|智慧停车采购指南 - TOP10品牌推荐榜单
  • 有什么软件可以去视频水印?四款小程序加桌面工具实测
  • 2026年国内3大主流一物一码服务商对比:中大型快消选型权威测评报告 - 纳宝科技一物一码
  • 山东省 乳山市寄件省钱天花板!2026全国靠谱快递平台实测,低价寄件不踩坑 - 时讯资讯
  • 2026广州白云区注册公司攻略|靠谱财税代办机构TOP5科普推荐 - GrowthUME
  • 【数据分析】python-pandas速查文档(3)
  • Sora 2 AI主播生成全链路拆解:从提示词工程、语音驱动到唇形同步的7大关键技术突破
  • 基于DLP平台的手写数字分类——CPU到深度学习处理器的加速实践
  • 从零打造蓝牙遥控履带车:Arduino、3D打印与FPV系统全解析
  • 2025泉州除甲醛公司Top5深度测评:绿舒环保稳居榜首 - 绿舒环保母婴除甲醛
  • 2026年最值得关注的8款AI简历工具深度解析
  • 基于Raspberry Pi Pico W的Wi-Fi邮件报警系统设计与实现
  • 踩坑!JDK8u371 报 No appropriate protocol,加启动参数无效
  • 选择题专练数据库原理精选30题
  • 如何使用Legacy iOS Kit实现旧款iOS设备降级与越狱的完整指南
  • Arduino LED乒乓球游戏:从电路设计到状态机编程的嵌入式开发实践
  • 2.隐藏账户
  • crabc - api 开源项目更名 ApiGo,一站式 API 数据服务平台更新多项功能
  • 求职季必备!这7款AI简历工具,让你的简历匹配度飙升,效率翻倍!
  • 2026碑林区企业变更哪家好?西安碑林区优质财税机构TOP4测评 - 小柏云
  • Ubuntu 20.04 新手必看:刚装完系统,ifconfig和vim都用不了?5分钟搞定镜像源和常用工具安装
  • 老年人陪伴与护理智能体
  • 国内钢模板企业排行:5家实力厂商核心能力对比 - 奔跑123
  • 化龙附近拿证快的正规驾校盘点:5家机构客观对比 - 奔跑123
  • ZYZ28 2026.5.26 Round 记录
  • 专业开发者指南:使用pywencai高效获取同花顺问财金融数据
  • 对比自行维护与使用 Taotoken 聚合 API 的运维成本观感
  • Dism++:让Windows系统维护变得简单高效