zoukankan      html  css  js  c++  java
  • Linux流量监控工具

    iftop工具简述

    今天看到一流量监控工具,觉得不错,就在自家服务器上装了一下,记录一下,留以后之需;

    在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftopiftop是类似于top的实时流量监控工具;可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明:

    使用iftop -P 定位最大流量端口

    iftop界面相关说明

    界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

    中间的<= =>这两个左右箭头,表示的是流量的方向。

    • TX:发送流量
    • RX:接收流量
    • TOTAL:总流量
    • Cumm:运行iftop到目前时间的总流量
    • peak:流量峰值
    • rates:分别表示过去 2s 10s 40s 的平均流量

    根据端口定位程序PID

    图中红框中直接显示了http服务,当然如果只显示端口号而且我们也不知道什么程序时,可以通过下面步骤来确认:

    [root@localhost sbin]# lsof -i:45294   或者 netstat -atunp |grep 45294 
    

    通过上面代码可以进一步确定PID

    根据进程PID确定进程的名称

    [root@localhost sbin]# cat /proc/PID号/cmdline

    然后可以看到具体运行的程序,最后就可以分析为什么这个程序这么消耗流量了

    iftop工具安装

    安装前需要已经安装好基本的编译所需的环境,比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses

    安装所需依赖包(centos)

    [root@localhost sbin]# yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel
    

    编译安装iftop工具
    1)下载iftop工具的源码包;

    [root@localhost ~]# wget http://oss.aliyuncs.com/aliyunecs/iftop-0.17.tar.gz

    2) 解压缩下载的iftop文件

    [root@localhost ~]# tar zxvf iftop-0.17.tar.gz

    3) 进入到解压的的iftop目录中

    [root@localhost ~]# cd iftop-0.17 

    4) 配置并制定安装目录为/usr/local/iftop目录下

    [root@localhost iftop-0.17]# ./configure –prefix=/usr/local/iftop

    5)编译并安装

    [root@localhost iftop-0.17]# make && make install

    安装完成以后直接使用/usr/local/iftop/sbin/iftop 启动iftop程序查看流量使用情况,如果想使用iftop的方式直接开启程序,需要将iftop的程序添加到环境变量中即可

    遇到的问题

    make: yacc: Command not found
    make: *** [grammar.c] Error 127

    解决方法:apt-get install byacc   /   yum install byacc
    

    configure: error: Curses! Foiled again!
    (Can't find a curses library supporting mvchgat.)
    Consider installing ncurses.

    解决方法:apt-get install libncurses5-dev  /    yum  install ncurses-devel
    

    常用的参数

    -i设定监测的网卡,如:# iftop -i eth1

    -B 以bytes为单位显示流量(默认是bits),如:# iftop -B

    -n使host信息默认直接都显示IP,如:# iftop -n

    -N使端口信息默认直接都显示端口号,如: # iftop -N

    -F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

    -h(display this message),帮助,显示参数信息

    -p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;

    -b使流量图形条默认就显示;

    -f这个暂时还不太会用,过滤计算包用的;

    -P使host信息及端口信息默认就都显示;

    -m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

     

    进入iftop画面后的一些操作命令(注意大小写)

    按h切换是否显示帮助;

    按n切换显示本机的IP或主机名;

    按s切换是否显示本机的host信息;

    按d切换是否显示远端目标主机的host信息;

    按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

    按N切换显示端口号或端口服务名称;

    按S切换是否显示本机的端口信息;

    按D切换是否显示远端目标主机的端口信息;

    按p切换是否显示端口信息;

    按P切换暂停/继续显示;

    按b切换是否显示平均流量图形条;

    按B切换计算2秒或10秒或40秒内的平均流量;

    按T切换是否显示每个连接的总流量;

    按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;

    按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;

    按j或按k可以向上或向下滚动屏幕显示的连接记录;

    按1或2或3可以根据右侧显示的三列流量数据进行排序;

    按<根据左边的本机名或IP排序;

    按>根据远端目标主机的主机名或IP排序;

    按o切换是否固定只显示当前的连接;

    按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

    按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!

    按q退出监控。

    更多工具

    通常定位进程流量的还可以用到iptraf,nethogs等

    iptraf可以参考:http://linuxperf.com/?p=11 

    nethogs可以参考:http://man.linuxde.net/nethogs 

    bmon工具参考:http://blog.sina.com.cn/s/blog_706476980101gliu.html

  • 相关阅读:
    laravel前后端分离分页查询
    swagger-open api 手动编写规范
    linux开启端口命令
    docker容器的基本使用
    centos更换阿里云的yum源
    VS中生成pdf
    代码整洁之道阅读笔记-02
    周总结
    Mongo的基本操作
    Redis的基本操作
  • 原文地址:https://www.cnblogs.com/lianzhilei/p/6019709.html
Copyright © 2011-2022 走看看