CentOS7服务器流量飙升?别慌,用iftop+nload快速揪出‘吃流量’的进程
CentOS7服务器流量异常排查实战iftop与nload组合拳深夜的告警铃声突然响起监控系统显示某台核心业务服务器的带宽使用率飙升至95%。作为运维人员这种场景并不陌生——可能是业务量激增也可能是恶意攻击或是某个失控进程在疯狂吞噬资源。本文将分享一套在CentOS7环境下快速定位流量异常源的实战方法结合iftop的网络连接分析和nload的流量趋势监控形成完整的诊断闭环。1. 应急响应前的准备工作在开始排查前我们需要确保工具就位并了解基本环境。CentOS7默认不安装高级流量监控工具需要手动部署# 安装基础工具集 yum install -y epel-release yum install -y iftop nload net-tools lsof关键工具作用对比工具名称核心功能适用场景输出特点iftop实时网络连接流量统计定位具体IP/端口的流量消耗交互式界面连接级明细nload网卡流量趋势监控观察流量波动规律和时间特征图形化显示时间序列lsof端口与进程映射关系确认端口对应的服务进程文本输出精确对应提示建议在正常业务时段提前安装这些工具避免紧急情况下因网络问题导致安装失败2. 初步定位nload快速判断异常特征当收到告警时首先用nload确认异常模式nload -u m ens33 # 以MB为单位监控ens33网卡典型异常模式分析突发尖峰可能遭遇CC攻击或突发大文件传输持续高流量可能存在数据泄露或爬虫抓取规律波动可能是正常业务高峰或定时任务异常操作示例Device ens33 [192.168.1.100] (1/2): Incoming: Curr: 45.55 MB/s Avg: 12.34 MB/s Min: 1.23 MB/s Max: 45.55 MB/s Ttl: 3.45 GB Outgoing: Curr: 2.34 MB/s Avg: 1.56 MB/s Min: 0.23 MB/s Max: 2.34 MB/s Ttl: 234.56 MB按q退出后可以记录关键指标异常时间段的峰值流量主要流量方向入站/出站流量波动周期3. 深度分析iftop锁定问题连接确认异常后使用iftop进行连接级分析iftop -i ens33 -n -P关键参数解析-i指定监控网卡-n禁用DNS反向解析加快显示速度-P显示端口号关键参数界面元素解读191.23.45.67:443 192.168.1.100:55678 2.45MB 1.23MB 0.78MB 192.168.1.100:55678 191.23.45.67:443 1.23MB 0.67MB 0.45MB表示出站流量表示入站流量三列数据分别代表2s、10s、40s内的平均流量重点关注持续高流量的连接对实战技巧按T切换显示累计流量按S显示源端口D显示目标端口按p暂停刷新锁定当前画面4. 进程关联从端口到应用获取异常端口后需要定位对应进程# 方法1通过lsof查询 lsof -i :27017 # 方法2通过netstat查询 netstat -tulnp | grep 27017典型输出分析COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 1234 app 12u IPv6 12345 0t0 TCP *:27017 (LISTEN)关键信息提取进程名称java进程ID1234运行用户app进阶排查技巧# 查看进程详细信息 ps -fp 1234 # 查看进程打开的文件 ls -l /proc/1234/fd # 统计进程资源使用 top -p 12345. 组合拳实战案例场景还原 某电商平台凌晨3点突然出现数据库服务器流量激增通过以下步骤定位问题nload初步确认nload -u m enp0s3发现出站流量持续保持在80MB/siftop定位连接iftop -i enp0s3 -n -P发现大量到MongoDB端口的连接进程关联lsof -i :27017确认是某个数据分析服务异常最终处理# 临时限制进程网络 tc qdisc add dev enp0s3 root handle 1: htb default 12 tc class add dev enp0s3 parent 1: classid 1:12 htb rate 10mbit # 优雅终止问题进程 kill -TERM 1234经验总结异常流量往往伴随CPU或内存异常可结合top/htop综合判断数据库类服务要注意检查是否有全表扫描操作保持终端多窗口同时监控更高效6. 自动化监控方案对于长期运维建议建立自动化监控体系基础监控脚本#!/bin/bash # 流量异常检测脚本 THRESHOLD10 # MB/s INTERFACEens33 LOG_FILE/var/log/network_monitor.log current$(nload -t 1000 -i $INTERFACE -u M -o total -Tm | grep Avg | awk {print $2}) if (( $(echo $current $THRESHOLD | bc -l) )); then echo $(date) - 流量异常: ${current}MB/s $LOG_FILE iftop -i $INTERFACE -n -P -t -s 10 $LOG_FILE fi进阶方案组件Prometheus Grafana可视化监控Elastic Stack日志分析自定义告警规则基于流量特征触发配置示例Prometheus- name: network_alerts rules: - alert: HighNetworkOut expr: rate(node_network_transmit_bytes_total{deviceens33}[1m]) 10*1024*1024 for: 5m labels: severity: warning annotations: summary: 高出站流量 (instance {{ $labels.instance }}) description: ens33网卡出站流量持续高于10MB/s\n当前值: {{ $value }}7. 性能优化与防护建议发现异常后的长期改进措施系统层面优化调整内核网络参数echo net.core.rmem_max4194304 /etc/sysctl.conf echo net.core.wmem_max4194304 /etc/sysctl.conf sysctl -p应用层防护对关键服务实施速率限制iptables -A INPUT -p tcp --dport 27017 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT安全加固检查清单检查异常进程的启动用户和权限验证进程的二进制文件完整性审查crontab和systemd服务列表检查网络连接中的异常地理IP在最近一次金融系统巡检中我们发现某台服务器在非工作时间持续产生2MB/s的出站流量最终定位到一个被入侵的Redis实例正在外泄数据。通过iftop观察到异常连接指向境外IPlsof确认Redis进程被注入恶意模块及时阻断避免了更大损失。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2461514.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!