news 2026/6/8 11:40:24

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零搭建企业监控:手把手教你用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响应时间、队列长度
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 11:35:38

LLM上下文缓存技术:磁盘级输入复用降本增效实战指南

1. 项目概述&#xff1a;当“重复使用输入”从技术细节变成成本杠杆这周刷到DeepSeek在API层面落地的Context Caching on Disk&#xff0c;我盯着屏幕看了三分钟——不是因为看不懂&#xff0c;而是因为太懂了&#xff0c;反而有点恍惚。过去两年做LLM应用落地&#xff0c;最常…

作者头像 李华
网站建设 2026/6/8 11:35:31

UABEA实战指南:Unity资源编辑与逆向工程深度解析

UABEA实战指南&#xff1a;Unity资源编辑与逆向工程深度解析 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA UABEA&#xff08;Unity Asset Bundle Extractor and Editor&#xff09;是一款面向现代Un…

作者头像 李华