linux网卡流量告警排查

最近给监控平台加上了网卡流量监控net_bytes_sent,发现有一台机子每分钟发送的流量(increase(net_bytes_sent{yw='bjyw',ident='bjyw-sv006'}[1m]))在1G左右,但其他机子正常流量在10M以上,可以肯定的是,这台机子肯定有问题

按秦总(@快猫-秦晓辉)的建议不定时查看 /proc/net/dev数据,发现eth0数据增长值和监控显示增长幅度相近,可以确定是服务器本身存在占用流量较多的进程
接下来的问题就是怎么查询各进程和网卡流量间的关系,使用nethogs查看,可以发现有一个java进程流量使用较高,使用ps aux |grep pid确认进程,查看程序日志发现有报错:该程序在写数据库时因为没有建立当月记录表,导致写库异常,然后程序检测到报错后重复执行写库操作。。。。
至此,问题原因已经很清楚,程序重复连接数据库写入数据时异常(该程序计划下线,巡检时未关注相关日志,当月新的记录表未及时生成)导致网卡流量显示异常。
使用create table like命令生成新的记录表,数据写入正常后结束循环,之后网卡流量监控显示正常
总结如下:
- 要更深入的了解各监控项的数据来源,在对监控数据存疑时要学会使用其他方法验证。
- 要学会使用更多的工具从异常监控项定位问题原因,如在此例中,可以使用nethogs来定位是哪个进程占用网卡流量更多。
- 从进程日志中判断错误原因,找出解决问题的方法。
- 对问题进行整体分析,多问几个为什么,从问题表象找到问题发生原因、分析解决问题的方法,避免类似问题再次发生(增加相关日志监控等)
- 从系统、日志、业务数据等各方面进行监控,保持对异常数据的敏感性
浙公网安备 33010602011771号