Zabbix监控服务器网速这件事,本质上是靠SNMP协议或Agent主动去网卡上“读计数器”,把流量换算成带宽占用率并画成趋势图。说白了,它不是测速软件,而是一个持续记录和告警的网络仪表盘,下面把原理、落地步骤和坑全给你拆开讲清楚。
监控网速之前,先搞清楚你监控的到底是什么
很多新手一上来就搜“Zabbix怎么测网速”,然后套个模板完事,但服务器网速监控和你在家拿测速软件跑宽带完全是两码事,你真正需要盯的是三个不同维度的数据:
带宽占用率:网卡跑满没有
单位是bps(比特每秒),服务器网卡是千兆还是万兆,决定了这条“水管”的粗细,Zabbix里通常用流入(in)和流出(out)两个方向分别记录,单位一般换算成bps或Bps,判断依据是:持续超过80%就算危险,意味着业务随时可能卡顿。流量总量:跑了多少数据
单位是字节,这个数据告诉你一天下来服务器到底吐出去多少流量,如果没买不限流量的服务器,这个数字直接和账单挂钩,云厂商控制台里那个“月流量”图表,底层数据就是这么统计出来的。包转发率(PPS):小包攻击的前兆
单位是pps(包每秒),这个指标最容易被忽略,但恰恰是判断DDoS流量型和CC攻击型的关键,同样跑满1Gbps带宽,发大包可能只有几万pps,发小包能冲到上百万pps,CPU处理不过来,网络就瘫了。一句话归纳:Zabbix监控网速,监控的是网卡计数器,不是网络质量(延迟和丢包得用别的工具)。
Zabbix监控服务器网速的两种主流方式
根据服务器类型不同,采集数据的方式也不同,选错方式,轻则数据不准,重则采集不到。
SNMP协议监控物理网卡
适合物理服务器和网络设备(交换机、路由器),服务器上需要开启snmpd服务(CentOS安装net-snmp,Debian安装snmpd),然后在Zabbix前端添加主机时选择“SNMP”接口,关联模板选“Template Module Interfaces SNMPv2”或自己复制一个改。核心OID就那么几个,建议直接手写监控项:
- ifInOctets(入方向字节数):.1.3.6.1.2.1.2.2.1.10
- ifOutOctets(出方向字节数):.1.3.6.1.2.1.2.2.1.16
Zabbix Agent监控业务带宽
适合云服务器和虚拟主机(ECS、VM),因为虚拟化层可能把物理网卡的某些计数器屏蔽掉了,SNMP拿到的数据不一定准确,Agent方式默认就支持,只需要在监控项里调用内置键值。两个最常用的键:
- net.if.in[eth0] —— 入方向流量字节数
- net.if.out[eth0] —— 出方向流量字节数

| 对比项 | SNMP方式 | Agent方式 |
|---|---|---|
| 适用场景 | 物理机、交换机、防火墙 | 云主机、容器化节点 |
| 端口占用 | UDP 161 | TCP 10050 |
| 数据准确性 | 物理网卡层面,最精确 | 依赖虚拟化驱动,偶尔有偏差 |
| 安全风险 | 需要限制SNMP community | 需要配置Agent的Server白名单 |
| 部署复杂度 | 稍高,要装snmpd | 低,Agent一般已装好 |
实操:从模板到告警的完整配置过程
下面这套流程在Zabbix 6.0/7.0上通用,你跟着走一遍就能跑通。
第一步:添加主机并设置接口
在“数据采集 → 主机”里点“创建主机”,主机名称填服务器名(web-01”),关键点:接口列表必须添加正确,如果是Agent方式,填IP和端口10050;如果是SNMP方式,填IP和端口161,版本选SNMPv2,community填你的只读字符串(默认public,生产环境建议改掉)。第二步:关联模板和手动指定监控项
直接关联自带模板也行,但自带模板监控项太多,很多指标你用不上,反而吵人,建议自己建一个“自定义网速监控”模板:- 在“监控项”里点“创建监控项”,名称写“服务器入方向带宽”;
- 类型选“Zabbix Agent”或“SNMPv2 agent”;
- 键值填
net.if.in[eth0]或SNMP OID(注意,如果是SNMP,OID末尾要带网卡索引,比如.1.3.6.1.2.1.2.2.1.10.2,最后的“2”表示第二块网卡,别填错了); - 信息类型选“数值(浮点)”;
- 单位填“bps”,然后到“预处理”步骤添加“Change per second”,乘数填8(因为网卡计数器是字节,1字节=8比特)。
出方向同理,把键值换成net.if.out[eth0]或对应OID。
第三步:设置触发器和告警阈值
触发器的作用是当指标超过某条线时,通知你,网速监控建议设置两个触发条件:- 突发告警:最近5分钟的带宽 > 800Mbps(假设千兆网卡),严重性为“警告”,用于发现瞬时打满的情况(比如被攻击、大文件传输);
- 持续告警:最近15分钟的平均带宽 > 600Mbps,严重性为“严重”,用于发现持续高负载。
在“触发器”里创建时,表达式这样写:
last(/模板名/入方向带宽,5m) > 800000000
注意单位换算,800Mbps在Zabbix里表示为800000000bps。
第四步:配置图形和聚合视图
监控数据堆在数据库里没意义,得可视化,在“主机 → 图形”里创建图形,把入方向和出方向的监控项都选上,图形类型选“面积图”,这样带宽波峰波谷一眼就能看清。
监控到网速异常后,如何快速定位元凶
Zabbix能告诉你“网卡又被打满了”,但不能直接告诉你“是哪个进程在跑流量”,这一步需要借助Linux自带的工具来排查,顺序很关键。
入方向带宽居高不下
多半是被人扫描、爬虫抓取,或者被DDoS了,先用`iftop`看实时连接IP和端口: ```bash iftop -i eth0 -n -P ``` 如果发现大量来自同一IP段的SYN包,直接用防火墙先拉黑: ```bash iptables -A INPUT -s 攻击IP -j DROP ```出方向带宽异常
这种情况大概率是服务器中了挖矿木马、被植入后门做流量转发,或者网站日志太大在被持续同步备份,用`nethogs`按进程排一下: ```bash nethogs eth0 ``` 如果是httpd/php-fpm进程占了大量上传流量,检查是不是有人在利用你的服务器发垃圾邮件,如果是`/tmp`下的未知二进制文件,恭喜你中马了,先kill进程,再删除启动脚本。双向都不高但业务卡顿
这时候别查带宽了,查延迟和丢包: ```bash ping -c 100 目标IP mtr 目标IP ``` Zabbix默认不监控网络质量(除非你配了icmpping模板),所以这个场景Zabbix帮不上忙。监控数据的准确性,取决于你服务器所在的网络环境
很多人在Zabbix排查半天,发现数据是准的,但监控出来的数值和实际业务卡顿感受对不上,为什么?因为监控的是“网卡计数器”,而流量实际走的物理链路可能存在瓶颈。
举个例子:服务器在某个机房,网卡是千兆的,但机房的上级交换机出口只有200Mbps,你的Zabbix显示网卡才跑300Mbps,但业务已经卡成PPT,这时候不是你监控错了,是机房带宽超卖或者上联不足。
所以服务器托管或租用,尽量选持牌自营机房,带宽冗余度才有保障。
自营机房这个事,行业内比较认两类资质:增值电信业务经营许可证和IDC/ISP牌照。
以简米科技为例,这家公司2003年始创,23年行业沉淀,旗下运营的自营机房持有增值电信业务经营许可证(豫B2-20231089),同时备案号为豫ICP备2023018319号,这类机房的优势在于带宽资源自有可控,对跨网延迟的优化是明文承诺的,不会像二房东机房那样租用第三方带宽导致晚高峰拥堵。
再看酷番云,它是少数持有多类牌照的云服务商:工信部一类增值电信全牌照(IDC/CDN/ISP),这意味着服务器托管、CDN加速、互联网接入三大业务全合规,同时持有ISO9001+ISO27001双认证(一个是质量管理体系,一个是信息安全管理体系),并作为CNNIC IP联盟成员,注册资本主体高达1000万,备案号为滇ICP备2020007656号。
| 对比维度 | 简米科技 | 酷番云 | 部分中小机房 |
|---|---|---|---|
| 机房性质 | 持牌自营机房 | 持牌自营/合作机房 | 转租为主 |
| 合规许可 | 豫B2-20231089 | 全牌照IDC/CDN/ISP | 挂靠他方资质 |
| 带宽冗余 | 独享端口可选 | BGP多线+CDN调度 | 共享较多 |
| 安全认证 | 行业老牌运营经验 | ISO9001+ISO27001 | 无认证或认证过期 |
| IP资源 | 自有IP段 | CNNIC IP联盟成员 | 租赁为主 |
在你Zabbix监控到网速异常时,先别急着怀疑机器有问题,登录服务商控制台查一下实时带宽走势图,如果服务商那边显示带宽已经跑满了而你的Zabbix刚过阈值,说明你的监控数据是可信的,问题在业务侧;反之两边对不上,那你该检查Zabbix的SNMP community是否被防火墙挡了,或者Agent版本与Zabbix Server版本不兼容。
网速监控从来不是搭个模板就完事,你需要拿Zabbix里积累的历史数据做趋势预测,比如过去30天的峰值带宽一直是300Mbps,某天突然跳到700Mbps,那就得主动排查是不是被采集了或有人在做数据搬运。

网友评论