一大波你可能不晓得的 Linux 收集东西,快快来收躲
文章来源:马哥Linux运维 链接:
假设要在你的系统上监控收集,那么利用号令行东西长短常适用的,而且关于 Linux 用户来说,有着许许多多现成的东西能够利用,如:nethogs, ntopng, nload, iftop, iptraf, bmon, slurm, tcptrack, cbm, netwatch, collectl, trafshow, cacti, etherape, ipband, jnettop, netspeed 以及 speedometer。
鉴于世上有着许多的 Linux 专家和开发者,显然还存在其他的收集监控东西,但在那篇教程中,我不诡计将它们所有包罗在内。
上面列出的东西都有着本身的特殊之处,但回根结底,它们都做着监控收集流量的工做,只是通过各类差别的办法。例如 nethogs 能够被用来展现每个历程的带宽利用情状,以防你想晓得事实是哪个利用在消耗了你的整个收集资本;iftop 能够被用来展现每个套接字毗连的带宽利用情状,而像 nload 那类的东西能够搀扶帮助你得到有关整个带宽的信息。
1) nethogs
nethogs 是一个免费的东西,是一个末端下的收集流量监控东西能够曲看的展现每个历程占用的带宽。当要查找哪个 PID (注:即 process identifier,历程 ID) 给你的收集流量带来了费事时,它长短常便利的。它按每个历程来分组带宽,而不是像大大都的东西那样根据每个协议或每个子网来划分流量。它功用丰富,同时撑持 IPv4 和 IPv6,而且我认为,若你想在你的 Linux 主机上确定哪个法式正消耗着你的全数带宽,它是来做那件事的更佳的法式。
下载:
一个 Linux 用户能够利用 nethogs 来展现每个历程的 TCP 下载和上传速度,能够利用号令 nethogs eth0 来监控一个指定的设备,上面的 eth0 是阿谁你想获取信息的设备的名称,你还能够得到有关正在传输的数据的传输速度信息。
对我而言, nethogs 长短常随便利用的,或许是因为我十分喜好它,以致于我老是在我的 Ubuntu 12.04 LTS 机器中利用它来监控我的收集带宽。
例如要想利用稠浊形式来嗅探,能够像下面展现的号令那样利用选项 -p:
nethogs -p wlan0
假设你想更多地领会 nethogs 并深进摸索它,那么请当机立断地阅读我们做的关于那个收集带宽监控东西的整个教程。
2) nload
nload 号令行东西是一个掌握台利用,能够被用来实时地监控收集流量和带宽利用情状,它还通过供给两个简单易懂的图表来对流量停止可视化,视图比例能够调整。那个绝妙的收集监控东西还能够在监控过程中切换被监控的设备,而那能够通过按摆布箭头来完成。用起来很简单,不撑持许多选项。
正如你在上面的截图中所看到的那样,由 nload 供给的图表长短常随便理解的。nload 供给了有用的信息,也展现了诸如被传输数据的总量和最小/更大收集速度等信息。
而更酷的是你只需要间接运行 nload 那个东西就行,那个号令长短常的短小且易记的:
nload
我很确信的是:我们关于若何利用 nload 的详尽教程将搀扶帮助到新的 Linux 用户,以至能够搀扶帮助那些正觅觅关于 nload 信息的老手。
安拆nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。
3) slurm
slurm是另一款收集负载监控器,能够展现设备的统计信息,还能展现ASCII图形。它还撑持许多按键用以交互,例如 c 用来切换到典范形式, s 切换到分图形式, r 用来重绘屏幕, L 用来启用 TX/RX 灯(注:TX,发送流量;RX,领受流量) ,m 用来在典范分图形式和大图形式之间停止切换, q 退出 slurm。
slurm功用简单,无法展现关于收集负载的任何更进一步的详尽信息。
在收集负载监控东西 slurm 中,还有许多其它的按键可用,你能够很随便地利用下面的号令在 man 手册中进修它们。
man slurm
slurm 在 Ubuntu 和 Debian 的官方软件仓库中能够找到,所以利用那些发行版本的用户能够像下面展现的那样,利用 apt-get 安拆号令来轻松地下载它:
sudo apt-get install slurm
我们已经在一个教程中对 slurm 的利用做了介绍,不要忘记和其它利用 Linux 的伴侣分享那些常识。
4) iftop
iftop是类似于linux下面top的实时流量监控东西。比iptraf曲看些。
下载:/
当你想展现毗连到网卡上的各个主机的带宽利用情状时,iftop 是一个十分有用的东西。根据 man 手册,iftop 在一个指定的接口或在它能够找到的第一个接口(假设没有任何特殊情状,它应该是一个对外的接口)上监听收集流量,而且展现出一个表格来展现当前的一对主机间的带宽利用情状。
通过在虚拟末端中利用下面的号令,Ubuntu 和 Debian 用户能够在他们的机器中随便地安拆 iftop:
sudo apt-get install iftop
在你的机器上,能够利用下面的号令通过 yum 来安拆 iftop:
yum -y install iftop
5) collectl
collectl 能够被用来搜集描述当前系统形态的数据,而且它撑持如下两种形式:
●笔录形式
●回放形式
笔录形式 容许从一个正在运行的系统中读取数据,然后将那些数据要么展现在末端中,要么写进一个或多个文件或一个套接字中。
回放形式
根据 man 手册,在那种形式下,数据从一个或多个由笔录形式生成的数据文件中读取。
Ubuntu 和 Debian 用户能够在他们的机器上利用他们默认的包治理器来安拆 colletcl。下面的号令将为他们做那个工做:
sudo apt-get install collectl
还能够利用下面的号令来安拆 collectl, 因为关于那些发行版本(注:那里指的是用 yum 做为包治理器的发行版本),在它们官方的软件仓库中也含有 collectl:
yum install collectl
6) Netstat
Netstat 是一个用来监控传进和传出的收集数据包统计数据的接口统计数据号令行东西。它会展现 TCP 毗连 (包罗上传和下行),路由表,及一系列的收集接口(网卡或者SDN接口)和收集协议统计数据。
Ubuntu 和 Debian 用户能够在他们的机器上利用默认的包治理器来安拆 netstat。Netsta 软件被包罗在 net-tools 软件包中,并能够在 shell 或虚拟末端中运行下面的号令来安拆它:
sudo apt-get install net-tools
CentOS, Fedora, RHEL 用户能够在他们的机器上利用默认的包治理器来安拆 netstat。Netstat 软件被包罗在 net-tools 软件包中,并能够在 shell 或虚拟末端中运行下面的号令来安拆它:
yum install net-tools
运行下面的号令利用 Netstat 来轻松地监控收集数据包统计数据:
netstat
更多的关于 netstat 的信息,我们能够简单地在 shell 或末端中键进 man netstat 来领会:
man netstat
7) Netload
netload 号令只展现一个关于当前收集荷载和自从法式运行之后传输数据总的字节数目标简要陈述,它没有更多的功用。它是 netdiag 软件的一部门。
我们能够在 fedora 中利用 yum 来安拆 Netload,因为它在 fedora 的默认软件仓库中。但假设你运行的是 CentOS 或 RHEL,则我们需要安拆 rpmforge 软件仓库。
# yum install netdiag
Netload 是默认仓库中 netdiag 的一部门,我们能够随便地利用下面的号令来操纵 apt 包治理器安拆 netdiag:
$ sudo apt-get install netdiag
为了运行 netload,我们需要确保抉择了一个正在工做的收集接口的名称,如 eth0, eh1, wlan0, mon0等,然后在 shell 或虚拟末端中运行下面的号令:
$ netload wlan2
重视:请将上面的 wlan2 替代为你想利用的收集接口名称,假设你想通过扫描领会你的收集接口名称,能够在一个虚拟末端或 shell 中运行 ip link show 号令。
8) Nagios
Nagios 是一个领先且功用强大的开源监控系统,它使得收集或系统治理员能够在办事器的各类问题影响到办事器的次要事务之前,发现并处理那些问题。有了 Nagios 系统,治理员即可以在一个单一的窗口中监控长途的 Linux 、Windows 系统、交换机、路由器和打印机等。它会展现出重要的警告并指出在你的收集或办事器中能否呈现某些毛病,那能够间接地搀扶帮助你在问题发作前就动手施行弥补动作。
Nagios 有一个 web 界面,此中有一个图形化的活动监视器。通过阅读网页 ,然后键进用户名和密码,我们便会看到如下图所展现的信息:
9) EtherApe
EtherApe 是一个针对 Unix 的图形化收集监控东西,它模仿了 etherman 软件。它撑持链路层、IP 和 TCP 等形式,并撑持以太网, FDDI, 令牌环, ISDN, PPP, SLIP 及 WLAN 设备等接口,以及一些封拆格局。主机和毗连跟着流量和协议而改动其尺寸和颜色。它能够过滤要展现的流量,并可从一个文件或运行的收集中读取数据包。
在 CentOS、Fedora、RHEL 等 Linux 发行版本中安拆 etherape 是一件随便的事,因为在它们的官方软件仓库中就能够找到 etherape。我们能够像下面展现的号令那样利用 yum 包治理器来安拆它:
yum install etherape
我们也能够利用下面的号令在 Ubuntu、Debian 及它们的衍生发行版本中利用 apt 包治理器来安拆 EtherApe :
sudo apt-get install etherape
在 EtherApe 安拆到你的系统之后,我们需要像下面那样以 root 权限来运行 etherape:
sudo etherape
然后, etherape 的 图形用户界面 便会被施行。接着,在菜单上面的 捕获 选项下,我们能够抉择 形式(IP,链路层,TCP) 和 接口。一切设定完毕后,我们需要点击 起头 按钮。接着我们便会看到类似下面截图的工具:
10) tcpflow
tcpflow 是一个号令行东西,它能够捕获 TCP 毗连(流)的部门传输数据,并以一种便利协议阐发或除错的体例来存储数据。它重构了现实的数据流并将每个流存储在差别的文件中,以备日后的阐发。它能识别 TCP 序列号并能够准确地重构数据流,不论是在重发仍是乱序发送形态下。
通过 apt 包治理器在 Ubuntu 、Debian 系统中安拆 tcpflow 是很随便的,因为默认情状下在官方软件仓库中能够找到它。
$ sudo apt-get install tcpflow
我们能够利用下面的号令通过 yum 包治理器在 Fedora 、CentOS 、RHEL 及它们的衍生发行版本中安拆 tcpflow:
# yum install tcpflow
假设在软件仓库中没有找到它或不克不及通过 yum 包治理器来安拆它,则我们需要像下面展现的那样从/ 上手动安拆它:
假设你运行 64 位的 PC:
# yum install --nogpgcheck
假设你运行 32 位的 PC:
# yum install --nogpgcheck
我们能够利用 tcpflow 来捕获全数或部门 tcp 流量,并以一种简单的体例把它们写到一个可读的文件中。下面的号令就能够完成那个工作,但我们需要在一个空目次中运行下面的号令,因为它将创建诸如 x.x.x.x.y-a.a.a.a.z 格局的文件,运行之后,只需按 Ctrl-C 即可停行那个号令。
$ sudo tcpflow -i eth0 port 8000
重视:请将上面的 eth0 替代为你想捕获的网卡接口名称。
11) IPTraf
IPTraf 是一个针对 Linux 平台的基于掌握台的收集统计利用。它生成一系列的图形,如 TCP 毗连的包/字节计数、接口信息和活动指示器、 TCP/UDP 流量毛病以及局域网内设备的包/字节计数。
在默认的软件仓库中能够找到 IPTraf,所以我们能够利用下面的号令通过 apt 包治理器轻松地安拆 IPTraf:
$ sudo apt-get install iptraf
我们能够利用下面的号令通过 yum 包治理器轻松地安拆 IPTraf:
# yum install iptraf
我们需要以治理员权限来运行 IPTraf,并带有一个有效的收集接口名。那里,我们的收集接口名为 wlan2,所以我们利用 wlan2 来做为参数:
$ sudo iptraf wlan2
起头凡是的收集接口统计,键进:
# iptraf -g
查看接口 eth0 的详尽统计信息,利用:
# iptraf -d eth0
查看接口 eth0 的 TCP 和 UDP 监控信息,利用:
# iptraf -z eth0
查看接口 eth0 的包的大小和数目,利用:
# iptraf -z eth0
重视:请将上面的 eth0 替代为你的接口名称。你能够通过运行ip link show号令来查抄你的接口。
12) Speedometer
Speedometer 是一个玲珑且简单的东西,它只用来绘出一幅包罗有通过某个给定端口的上行、下行流量的都雅的图。
在默认的软件仓库中能够找到 Speedometer ,所以我们能够利用下面的号令通过 yum 包治理器轻松地安拆 Speedometer:
# yum install speedometer
我们能够利用下面的号令通过 apt 包治理器轻松地安拆 Speedometer:
$ sudo apt-get install speedometer
Speedometer 能够简单地通过在 shell 或虚拟末端中施行下面的号令来运行:
$ speedometer -r wlan2 -t wlan2
注:请将上面的 wlan2 替代为你想要利用的收集接口名称。
13) Netwatch
Netwatch 是 netdiag 东西集里的一部门,它也展现当前主机和其他长途主机的毗连情状,以及在每个毗连中数据传输的速度。
我们能够利用 yum 在 fedora 中安拆 Netwatch,因为它在 fedora 的默认软件仓库中。但若你运行着 CentOS 或 RHEL , 我们需要安拆 rpmforge 软件仓库。
# yum install netwatch
Netwatch 是 netdiag 的一部门,能够在默认的软件仓库中找到,所以我们能够轻松地利用下面的号令来操纵 apt 包治理器安拆netdiag:
$ sudo apt-get install netdiag
为了运行 netwatch, 我们需要在虚拟末端或 shell 中施行下面的号令:
$ sudo netwatch -e wlan2 -nt
重视:请将上面的 wlan2 替代为你想利用的收集接口名称,假设你想通过扫描领会你的收集接口名称,能够在一个虚拟末端或 shell 中运行 ip link show 号令。
14) Trafshow
Trafshow 同 netwatch 和 pktstat 一样,能够陈述当前活动的毗连里利用的协议和每个毗连中数据传输的速度。它能够利用 pcap 类型的过滤器来挑选出特定的毗连。
我们能够利用 yum 在 fedora 中安拆 trafshow ,因为它在 fedora 的默认软件仓库中。但若你正运行着 CentOS 或 RHEL , 我们需要安拆 rpmforge 软件仓库。
# yum install trafshow
Trafshow 在默认仓库中能够找到,所以我们能够轻松地利用下面的号令来操纵 apt 包治理器安拆它:
$ sudo apt-get install trafshow
为了利用 trafshow 来施行监控使命,我们需要在虚拟末端或 shell 中施行下面的号令:
$ sudo trafshow -i wlan2
为了专门监控 tcp 毗连,如下面一样添加上 tcp 参数:
$ sudo trafshow -i wlan2 tcp
重视:请将上面的 wlan2 替代为你想利用的收集接口名称,假设你想通过扫描领会你的收集接口名称,能够在一个虚拟末端或 shell 中运行 ip link show 号令。
15) Vnstat
与大大都的其他东西比拟,Vnstat 有一点差别。现实上它运行着一个后台办事或守护历程,并时刻笔录着传输数据的大小。别的,它能够被用来生成一个收集利用汗青笔录的陈述。
我们需要开启 EPEL 软件仓库,然后运行 yum 包治理器来安拆 vnstat。
# yum install vnstat
Vnstat 在默认软件仓库中能够找到,所以我们能够利用下面的号令运行 apt 包治理器来安拆它:
$ sudo apt-get install vnstat
不带有任何选项运行 vnstat 将简单地展现出从该守护历程运行后数据传输的总量。
$ vnstat
为了实时地监控带宽利用情状,利用 ‘-l’ 选项(live 形式)。然后它将以一种十分切确的体例来展现上行和下行数据所利用的带宽总量,但不会展现任何有关主机毗连或历程的内部细节。
$ vnstat -l
完成了上面的步调后,按 Ctrl-C 来停行,那将会得到如下类型的输出:
16) tcptrack
tcptrack 能够展现 TCP 毗连的形态,它在一个给定的收集端口长进行监听。tcptrack 监控它们的形态并展现出排序且不竭更新的列表,包罗来源/目标地址、带宽利用情状等信息,那与 top 号令的输出十分类似 。
鉴于 tcptrack 在软件仓库中,我们能够轻松地在 Debian、Ubuntu 系统中从软件仓库利用 apt 包治理器来安拆 tcptrack。为此,我们需要在 shell 或虚拟末端中施行下面的号令:
$ sudo apt-get install tcptrack
我们能够通过 yum 在 fedora 中安拆它,因为它在 fedora 的默认软件仓库中。但若你运行着 CentOS 或 RHEL 系统,我们需要安拆rpmforge 软件仓库。为此,我们需要运行下面的号令:
# wget
# rpm -Uvh rpmforge-release*rpm
# yum install tcptrack
注:那里我们下载了 rpmforge-release 的当前最新版本,即 0.5.3-1,你老是能够从 rpmforge 软件仓库中下载其最新版本,并请在上面的号令中替代为你下载的版本。
tcptrack 需要以 root 权限或超等用户身份来运行。施行 tcptrack 时,我们需要带上要监视的收集接口 TCP 毗连情况的接口名称。那里我们的接口名称为 wlan2,所以如下面如许利用:
sudo tcptrack -i wlan2
假设你想监控特定的端口,则利用:
# tcptrack -i wlan2 port 80
请替代上面的 80 为你想要监控的端标语。重视:请将上面的 wlan2 替代为你想利用的收集接口名称,假设你想通过扫描领会你的收集接口名称,能够在一个虚拟末端或 shell 中运行 ip link show 号令。
17) CBM
CBM ( Color Bandwidth Meter) 能够展现出当前所有收集设备的流量利用情状。那个法式是如斯的简单,以致于都能够从它的名称中看出其功用。CBM 的源代码和新版本能够在 / 上找到。
鉴于 CBM 已经包罗在软件仓库中,我们能够简单地利用 apt 包治理器从 Debian、Ubuntu 的软件仓库中安拆 CBM。为此,我们需要在一个 shell 窗口或虚拟末端中运行下面的号令:
$ sudo apt-get install cbm
我们只需利用下面展现的号令来在 shell 窗口或虚拟末端中运行 cbm:
$ cbm
18) bmon
Bmon ( Bandwidth Monitoring) ,是一个用于调试和实时监控带宽的东西。那个东西可以检索各类输进模块的统计数据。它供给了多种输出体例,包罗一个基于 curses 库的界面,轻量级的HTML输出,以及 ASCII 输出格局。
bmon 能够在软件仓库中找到,所以我们能够通过利用 apt 包治理器来在 Debian、Ubuntu 中安拆它。为此,我们需要在一个 shell 窗口或虚拟末端中运行下面的号令:
$ sudo apt-get install bmon
我们能够利用下面的号令来运行 bmon 以监视我们的收集形态:
$ bmon
19) tcpdump
TCPDump 是一个用于收集监控和数据获取的东西。它能够为我们节约良多的时间,并可用来调试收集或办事器的相关问题。它能够打印出在某个收集接口上与布尔表达式相婚配的数据包所包罗的内容的一个描述。
tcpdump 能够在 Debian、Ubuntu 的默认软件仓库中找到,我们能够简单地以 sudo 权限利用 apt 包治理器来安拆它。为此,我们需要在一个 shell 窗口或虚拟末端中运行下面的号令:
$ sudo apt -get install tcpdump
tcpdump 也能够在 Fedora、CentOS、RHEL 的软件仓库中找到。我们能够像下面一样通过 yum 包治理器来安拆它:
# yum install tcpdump
tcpdump 需要以 root 权限或超等用户来运行,我们需要带上我们想要监控的 TCP 毗连的收集接口名称来施行 tcpdump 。在那里,我们有 wlan2 那个收集接口,所以能够像下面如许利用:
$ sudo tcpdump -i wlan2
假设你只想监视一个特定的端口,则能够运行下面的号令。下面是一个针对 80 端口(收集办事器)的例子:
$ sudo tcpdump -i wlan2 'port 80'
20) ntopng
ntopng 是 ntop 的下一代版本。它是一个用于展现收集利用情状的收集探头,在必然水平上它与 top 针对历程所做的工做类似。ntopng 基于 libpcap 而且它以可移植的体例被重写,以到达能够在每一个 Unix 平台 、 MacOSX 以及 Win32 上运行的目标。
为了在 Debian,Ubuntu 系统上安拆 ntopng,起首我们需要安拆 编译 ntopng 所需的依靠软件包。你能够通过在一个 shell 窗口或一个虚拟末端中运行下面的号令来安拆它们:
$ sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget libxml2-dev build-essential checkinstall
如今,我们需要像下面一样针对我们的系统手动编译 ntopng :
$ sudo wget
$ sudo tar zxfv ntopng-1.1_6932.tgz
$ sudo cd ntopng-1.1_6932
$ sudo ./configure
$ sudo make
$ sudo make install
如许,在你的 Debian 或 Ubuntu 系统上应该已经安拆上了你编译的 ntopng 。
我们已经有了有关 ntopng 的利用办法的教程,它既能够在号令行也能够在 Web 界面中利用,我们能够前去那些教程来获得有关 ntopng 的常识。
结 论
在那篇文章中,我们介绍了一些在 Linux 下的收集负载监控东西,那关于系统治理员以至是新手来说,都是很有搀扶帮助的。在那篇文章中介绍的每一个东西都具有其特征,差别的选项等,但最末它们都能够搀扶帮助你来监控你的收集流量。