news 2026/6/8 16:45:55

从监控小白到上手:用Zabbix 5.0 + MariaDB监控你的第一台Linux服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从监控小白到上手:用Zabbix 5.0 + MariaDB监控你的第一台Linux服务器

从零搭建企业级监控系统:Zabbix 5.0与MariaDB实战指南

当你第一次登录服务器后台,面对闪烁的命令行界面,是否曾感到无从下手?服务器就像黑箱,CPU负载、内存消耗、磁盘空间这些关键指标看不见摸不着。这正是监控系统的价值所在——它如同给服务器装上了仪表盘,让运维人员对系统状态一目了然。本文将带你从零开始,用Zabbix 5.0和MariaDB搭建一个完整的监控系统,并实现第一个监控项的可视化。

1. 环境准备与基础配置

在开始安装前,我们需要确保基础环境就绪。CentOS 7作为经典的服务器操作系统,其稳定性和广泛的兼容性使其成为学习Zabbix的理想平台。建议使用至少2核CPU、4GB内存的虚拟机或物理机进行实践。

首先处理系统安全模块。不同于简单粗暴的完全关闭防护,我们采用更专业的配置方式:

# 临时设置SELinux为宽松模式 setenforce 0 # 修改配置文件使其永久生效 sed -i 's/SELinux=enforcing/SELinux=permissive/' /etc/selinux/config

防火墙配置需要精细化管理,只开放必要的端口:

firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=10050/tcp firewall-cmd --permanent --add-port=10051/tcp firewall-cmd --reload

Zabbix官方仓库的添加是保证软件来源可靠的关键步骤:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all

2. 数据库部署与优化

MariaDB作为MySQL的分支,在开源社区中广受欢迎。我们不仅需要安装它,还要进行安全加固和性能优化。

安装数据库服务:

yum -y install mariadb-server mariadb systemctl start mariadb systemctl enable mariadb

执行安全初始化脚本时,建议设置强密码并移除测试数据库:

mysql_secure_installation

创建专用于Zabbix的数据库账户时,密码策略应当符合企业安全标准:

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ComplexP@ssw0rd!2023'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%'; FLUSH PRIVILEGES;

为提高Zabbix性能,建议调整MariaDB的InnoDB缓冲池大小(在/etc/my.cnf中添加):

[mysqld] innodb_buffer_pool_size = 1G innodb_log_file_size = 256M innodb_log_buffer_size = 16M

3. Zabbix服务端安装与配置

Zabbix服务端是整个监控系统的核心大脑,需要精心配置。安装必要的组件:

yum install zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-nginx-conf-scl

导入初始数据库架构时,使用zcat管道可以高效处理压缩的SQL文件:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

关键的zabbix_server.conf配置需要关注以下参数:

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=ComplexP@ssw0rd!2023 StartPollers=4 StartPollersUnreachable=2 StartTrappers=4 StartPingers=2

对于PHP配置,时区设置尤为重要(在/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf中):

php_value[date.timezone] = Asia/Shanghai

4. Web界面部署与初次登录

Nginx作为Web服务器,需要正确配置才能提供流畅的访问体验。检查/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf中的关键设置:

server { listen 80; server_name your.server.ip; root /usr/share/zabbix; location / { index index.php; } location ~ \.php$ { fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock; # 其他fastcgi参数... } }

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

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

首次访问Web界面时(http://your.server.ip),你会看到安装向导。默认的管理员凭据是:

  • 用户名:Admin
  • 密码:zabbix

强烈建议首次登录后立即修改管理员密码,并创建具有适当权限的普通用户用于日常操作。

5. 监控你的第一台主机

现在进入最激动人心的环节——添加你的第一台监控主机。在Zabbix中,这通常是指运行Zabbix agent的服务器本身。

通过Web界面添加主机的步骤:

  1. 导航至"配置" → "主机"
  2. 点击右上角的"创建主机"按钮
  3. 填写主机名称和可见名称(如"My First Server")
  4. 在"群组"中选择适当的分类(如"Linux servers")
  5. 添加主机接口:类型选择"Agent",IP地址填写"127.0.0.1",端口保持"10050"

关联监控模板是快速获得监控项的关键:

  1. 在主机配置页面,切换到"模板"标签
  2. 点击"选择"按钮,搜索"Linux by Zabbix agent"
  3. 从列表中选择该模板并点击"添加"

保存配置后,Zabbix将开始自动收集数据。大约5分钟后,你可以在"监测" → "最新数据"中查看各项指标。

6. 解读关键监控指标

理解监控数据比单纯收集数据更重要。以下是几个核心指标及其健康阈值:

指标名称正常范围危险阈值可能的问题
CPU利用率<70%>90%持续5分钟计算资源不足
内存使用率<80%>95%内存泄漏或不足
磁盘空间使用率<85%>95%存储即将耗尽
系统负载<CPU核心数×0.7>CPU核心数×1.5进程排队严重

要创建可视化仪表盘:

  1. 导航至"仪表盘" → "所有仪表盘"
  2. 点击"创建仪表盘"
  3. 添加小部件,如"图形原型"、"简单图形"
  4. 选择之前监控的主机和指标

7. 告警配置与通知设置

没有告警的监控系统是不完整的。配置合理的告警可以让你在问题发生前得到通知。

创建动作(Action)的步骤:

  1. 进入"配置" → "动作"
  2. 选择事件源为"触发器"
  3. 点击"创建动作"
  4. 定义动作名称(如"CPU过高告警")
  5. 设置条件:触发器名称包含"CPU"
  6. 在"操作"标签中添加发送消息的操作

配置邮件通知需要先设置媒体类型:

  1. 进入"管理" → "媒体类型"
  2. 点击"Email"进行配置
  3. 填写SMTP服务器信息
  4. 测试连接确保配置正确

为用户分配通知方式:

  1. 进入"管理" → "用户"
  2. 选择相应用户
  3. 切换到"媒体"标签
  4. 添加新的媒体,选择类型为"Email"
  5. 填写接收邮箱地址

8. 高级配置与优化技巧

随着监控规模的扩大,系统性能优化变得至关重要。以下是一些专业建议:

Zabbix proxy部署: 对于分布式环境,可以在不同网络区域部署proxy:

yum install zabbix-proxy-mysql

主动式监控配置: 修改agent配置文件(/etc/zabbix/zabbix_agentd.conf):

ServerActive=your.zabbix.server.ip Hostname=MyServer_UniqueName RefreshActiveChecks=120

历史数据存储优化: 在zabbix_server.conf中调整:

HistoryStorageURL=elasticsearch://elastic:password@elasticsearch:9200 HistoryStorageTypes=uint,dbl,str,log,text

定期维护任务: 设置cron作业清理旧数据:

0 3 * * * mysql -uroot -p zabbix -e "DELETE FROM history WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))"

监控系统本身也需要被监控。可以创建一个专门的仪表盘跟踪:

  • Zabbix队列状态
  • 数据库性能指标
  • 前端响应时间
  • 存储空间使用情况
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 16:42:06

基于C#的S7-200 PLC PPI串口通信调试工具包(含源码与图形界面)

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;专为西门子S7-200系列PLC设计的PPI协议串口通信解决方案&#xff0c;使用C#开发&#xff0c;无需额外依赖即可在Windows系统直接运行。支持RS232物理接口&#xff0c;完成PLC数字量I/Q点单点/批量读写、V区和M区…

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

用户态 TCP 端口转发:对 CUBIC 友好,对 BBR/KCC 收益不大

用户态 TCP 端口转发&#xff1a;对 CUBIC 友好&#xff0c;对 BBR/KCC 收益不大 1. 核心观点 用户态 TCP 端口转发&#xff08;gost、rinetd、socat&#xff09;把一条连接拆成两段。这种架构对 CUBIC、Reno、BIC 等丢包驱动算法有一定提升&#xff0c;但对 BBR、KCC 等模型…

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

PN7160 Linux移植实战:从内核驱动到NFC功能验证全解析

1. 项目概述&#xff1a;为什么要在Linux上折腾PN7160&#xff1f;如果你正在为一个嵌入式Linux设备&#xff08;比如自助收银机、智能门锁、工控平板或者任何需要“碰一碰”功能的物联网终端&#xff09;添加NFC功能&#xff0c;那么NXP的PN7160大概率会出现在你的候选清单里。…

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

单斜率ADC原理与应用:在MC68HC705JP7上实现高精度比例测量

1. 项目概述&#xff1a;为什么需要了解单斜率ADC&#xff1f;在嵌入式系统开发&#xff0c;尤其是涉及传感器信号采集、电池管理或精密测量的项目中&#xff0c;模数转换器&#xff08;ADC&#xff09;的性能往往是决定系统精度和成本的关键。从业多年&#xff0c;我发现很多工…

作者头像 李华