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

从零搭建企业监控:手把手教你用Zabbix 5.0 + MariaDB + Nginx部署监控系统

从零搭建企业监控:手把手教你用Zabbix 5.0 + MariaDB + Nginx部署监控系统

当你的业务系统从几台服务器扩展到数十台时,凌晨三点被电话叫醒处理故障的经历会让你深刻理解监控系统的重要性。Zabbix作为企业级开源监控解决方案,不仅能实时掌握系统健康状态,更能通过智能告警让你在用户发现问题前就采取行动。本文将带你完整部署Zabbix 5.0,并重点讲解如何让这套系统真正为业务服务。

1. 环境规划与准备

在开始安装前,我们需要明确几个关键决策点。首先是服务器规格:对于监控50个以下节点的场景,2核4GB的配置足够运行Zabbix Server、MariaDB和Nginx。如果预计监控对象超过100个,建议将数据库单独部署。

基础环境要求

  • CentOS 7.6+ 或 RHEL 7.x(本文以CentOS 7.9为例)
  • 至少10GB可用磁盘空间(历史数据会持续增长)
  • 开放10051(Server端口)和80/443(Web访问)防火墙规则

提示:生产环境强烈建议配置SSL证书,可通过Let's Encrypt免费获取。本文为简化流程使用HTTP演示。

先完成基础系统配置:

# 关闭SELinux(需重启生效) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 # 配置防火墙 firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=10050-10051/tcp firewall-cmd --reload

2. 数据库部署与优化

MariaDB作为Zabbix的后端存储,其配置直接影响监控系统的性能。我们采用10.5版本以获得更好的JSON支持:

# 添加MariaDB官方源 cat > /etc/yum.repos.d/MariaDB.repo <<EOF [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF # 安装并启动 yum install -y MariaDB-server MariaDB-client systemctl enable --now mariadb

执行安全初始化后,创建专属数据库实例:

-- 创建使用utf8mb4字符集的数据库 CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; -- 建议使用非root账户 CREATE USER 'zabbix_dbadmin'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix_dbadmin'@'%'; FLUSH PRIVILEGES;

/etc/my.cnf.d/zabbix.cnf中添加专属配置:

[mysqld] innodb_buffer_pool_size = 1G # 建议物理内存的50-70% innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 # 平衡性能与可靠性 character-set-server = utf8mb4 collation-server = utf8mb4_bin

3. Zabbix服务端安装

官方仓库提供了完整的RPM包,我们同时安装Java gateway以支持JMX监控:

# 添加Zabbix仓库 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # 安装核心组件 yum install -y zabbix-server-mysql zabbix-agent zabbix-java-gateway # 导入初始数据 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix_dbadmin -p zabbix

编辑/etc/zabbix/zabbix_server.conf关键参数:

DBHost=localhost DBName=zabbix DBUser=zabbix_dbadmin DBPassword=StrongPassword123! JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5

4. Web前端部署

使用Nginx+PHP-FPM的组合能获得更好的并发性能:

# 安装SCL仓库以获取新版PHP yum install -y centos-release-scl-rh # 安装必要组件 yum install -y rh-nginx116 nginx rh-php72-php-fpm zabbix-web-mysql-scl

Nginx配置示例(/etc/nginx/conf.d/zabbix.conf):

server { listen 80; server_name zabbix.yourdomain.com; root /usr/share/zabbix; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

PHP时区设置在/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai

5. 系统启动与验证

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

systemctl enable --now zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

访问http://服务器IP应看到安装向导。使用默认凭据登录:

  • 用户名:Admin
  • 密码:zabbix

首次登录后立即修改密码,并在Administration → Users中创建个人账户。

6. 生产环境关键配置

6.1 监控项自动发现

Configuration → Discovery创建自动发现规则,例如:

  • 扫描IP范围:192.168.1.1-254
  • 检查项:SSH、ICMP Ping
  • 间隔:1h

6.2 告警媒介配置

配置邮件通知(以Gmail为例):

  1. Administration → Media types创建SMTP媒介
  2. 设置smtp.gmail.com:587,启用TLS
  3. 在用户配置中关联媒介并设置接收邮箱

6.3 仪表板定制

创建业务视图仪表板:

  1. 添加"System uptime"等核心指标
  2. 设置触发器当CPU>90%持续5分钟时告警
  3. 配置聚合图形显示历史趋势

7. 高级运维技巧

7.1 数据库维护

定期执行表优化:

OPTIMIZE TABLE history, history_uint, trends, trends_uint;

设置自动清理旧数据(/etc/zabbix/zabbix_server.conf):

HistoryStorageURL=mysql://zabbix_dbadmin:password@localhost/zabbix HistoryStorageDateIndex=1 HousekeepingFrequency=24

7.2 代理部署

在被监控节点安装agent:

yum install -y zabbix-agent sed -i 's/Server=127.0.0.1/Server=zabbix-server-ip/' /etc/zabbix/zabbix_agentd.conf systemctl enable --now zabbix-agent

7.3 性能调优

高负载时可调整:

  • 增加StartPollers数量(CPU核心数×2)
  • 启用Proxy模式分担压力
  • 对历史数据使用TimescaleDB分区

在完成基础部署后,建议优先配置这些监控项:

  1. 服务器:CPU/Memory/Disk/Network
  2. 服务状态:Nginx/MySQL/Redis等进程
  3. 业务指标:API响应时间、队列长度
http://www.jsqmd.com/news/974360/

相关文章:

  • 保姆级教程:用ESP32驱动ST7789/ILI9341屏幕玩转LVGL(基于ESP-IDF V5.1)
  • 不只是电压测量:用ADS1115和树莓派DIY一个高精度环境监测站(Python代码分享)
  • 荆州市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 三大殿
  • 2026手把手教你Excel转TXT,附另存为文本格式完整步骤 - 软件小管家
  • 别再手动巡检了!用Zabbix 5.0 + SNMPv2自动监控华为S系列交换机(附完整命令集)
  • 在线考试系统实测:题库导入、智能评分与高并发能力综合测评 - 讲清楚了
  • Hadoop 3.x 实战:手把手教你配置HDFS透明加密与KMS(附常见报错排查)
  • 荆门市2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 如何用N_m3u8DL-CLI-SimpleG实现高效M3U8视频下载
  • 天津高端全屋定制厂家选购指南:如何选对靠谱高端定制服务商 - 速递信息
  • 聊城市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 三大殿
  • 北京品牌首饰回收优选攻略,多年口碑老店实测,出价公道流程清晰 - 薛定谔的梨花猫
  • 3分钟搞定抖音批量下载:douyin-downloader让你的视频收藏效率提升10倍
  • app测试|工作中常用的adb命令集
  • 煤矿皮带巡检专用YOLOv8图像数据集:30张实拍图,含煤块与传送带双目标标注
  • 荆州市2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 石家庄市2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 前端开发必看:一招解决图片403防盗链问题,用HTML meta标签轻松搞定
  • 如何用Umi-OCR实现高效离线文字识别:Windows/Linux终极指南
  • 终极指南:如何用AI轻松征服2048游戏?胜率提升85%的完整教程
  • 高考完这三个月,AI入门最该做的5件事(深度版)
  • 2026年甘肃兰州 西藏太阳能热水器厂家梳理 深耕清洁能源适配西北气候的靠谱企业 - 品研笔录
  • 无锡市三菱电机空调维修师傅电话|各区金牌师傅,靠谱选欧米到家 - 欧米到家
  • 超声波泥水界面仪产品介绍:高频探头与信号处理技术 - 仪表人叶工
  • 数据科学家必学的Docker容器化实战:从环境隔离到GPU训练部署
  • 石景山区2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 聊城市2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 如何用DeTikZify轻松将科研图表转为高质量TikZ代码?终极指南
  • 词袋模型为何是情感分析不可跳过的前置步骤
  • 电赛B题AC-DC深度解析:如何用三相PFC电路把功率因数做到0.99以上?