普通网友 2025-11-11 12:55 采纳率: 98.4%
浏览 1
已采纳

如何查看网卡历史流量使用记录?

如何查看网卡历史流量使用记录?常见的技术问题是如何在Linux系统中准确获取指定网卡过去一段时间的流量统计数据。由于ifconfig、ip link等命令仅显示自系统启动以来的累计流量,无法直接提供历史时段的使用情况,因此需依赖第三方工具或日志机制。常见疑问包括:sar(sysstat)是否支持按网卡细分流量?nload或iftop能否保存历史记录?此外,用户常困惑于如何配置netdata、Cacti或Zabbix实现长期监控与数据存储。关键难点在于区分实时流量与可追溯的历史数据采集,以及如何合理设置数据采样周期与持久化策略,确保统计准确且不占用过多系统资源。
  • 写回答

1条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-11-11 17:15
    关注

    让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。

    如果答案能帮助您,请采纳,非常感谢!
    .
    每日一句正能量,让它带给您好心情:别让过去的阴影,遮挡你未来的阳光。
    .

    在 Linux 系统中查看网卡历史流量记录,通常需要借助监控工具或系统日志。以下是几种常见方案:

    1. 使用 sar 命令(sysstat 工具包)

    安装 sysstat

    # Ubuntu/Debian
    sudo apt-get install sysstat
    
    
    # CentOS/RHEL
    sudo yum install sysstat
    

    查看历史网络流量

    # 查看指定日期的网络统计(默认每10分钟采样)
    sar -n DEV -f /var/log/sa/saXX  # XX 为日期数字
    
    
    # 查看指定时间段的网卡流量
    sar -n DEV -s 10:00:00 -e 12:00:00
    
    
    # 查看特定网卡(如eth0)的历史数据
    sar -n DEV | grep eth0
    

    2. 配置 netdata 实时监控

    安装 netdata

    # 一键安装
    bash <(curl -Ss https://my-netdata.io/kickstart.sh)
    

    查看历史数据

    netdata 默认保存最近一段时间的指标数据,可通过 web 界面(http://localhost:19999)查看历史流量图表。

    3. 使用 vnStat 轻量级工具

    安装配置

    # Ubuntu/Debian
    sudo apt-get install vnstat
    
    
    # CentOS/RHEL
    sudo yum install vnstat
    
    
    # 初始化数据库
    sudo vnstat -u -i eth0  # 替换为你的网卡名
    

    查看统计报告

    # 查看每日统计
    vnstat -d
    
    
    # 查看月度统计
    vnstat -m
    
    
    # 查看实时流量
    vnstat -l
    

    4. 企业级监控方案

    Zabbix 配置

    在 Zabbix 中配置网络接口监控项:

    # 监控键值示例
    net.if.in[eth0,bytes]
    net.if.out[eth0,bytes]
    

    Cacti 流量绘图

    通过 SNMP 协议采集网络接口数据,生成流量趋势图。

    5. 自定义脚本记录

    创建定期采集脚本:

    #!/bin/bash
    # save_network_stats.sh
    
    
    INTERFACE="eth0"
    LOG_FILE="/var/log/network_stats.log"
    
    
    RX=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
    TX=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
    TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
    
    
    echo "$TIMESTAMP $INTERFACE RX:$RX TX:$TX" >> $LOG_FILE
    

    添加到 crontab 定期执行:

    # 每5分钟执行一次
    */5 * * * * /path/to/save_network_stats.sh
    

    关键注意事项

    1. 数据持久化:确保监控工具的日志轮转配置合理,避免磁盘空间耗尽
    2. 采样频率:根据需求平衡数据精度与系统资源消耗
    3. 时间同步:确保系统时间准确,便于历史数据追溯
    4. 网卡名称:使用 ip link show 确认正确的网卡标识符

    推荐对于临时需求使用 sar,长期监控选择 vnStatnetdata,企业环境考虑 Zabbix 等专业方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 11月12日
  • 创建了问题 11月11日