分类 技术 下的文章

简介

在监控你的服务器、交换机或者设备时遇到过问题吗?Observium 可以满足你的需求。这是一个免费的监控系统,它可以帮助你远程监控你的服务器。它是一个由PHP编写的基于自动发现 SNMP 的网络监控平台,支持非常广泛的网络硬件和操作系统,包括 Cisco、Windows、Linux、HP、NetApp 等等。在此我会给出在 Ubuntu 12.04 上一步步地设置一个 Observium 服务器的介绍。

目前有两种不同的 observium 版本。

  • Observium 社区版本是一个在 QPL 开源许可证下的免费工具,这个版本是对于较小部署的最好解决方案。该版本每6个月进行一次安全性更新。
  • 第2个版本是 Observium 专业版,该版本采用基于 SVN 的发布机制。 会得到每日安全性更新。 该工具适用于服务提供商和企业级部署。

更多信息可以通过其官网获得。

系统需求

要安装 Observium, 需要具有一个最新安装的服务器。Observium 是在 Ubuntu LTS 和 Debian 系统上进行开发的,所以推荐在 Ubuntu 或 Debian 上安装 Observium,因为可能在别的平台上会有一些小问题。

该文章会引导你在 Ubuntu 12.04 上安装 Observium。对于小型的 Observium 安装,建议使用 256MB 内存和双核处理器的配置。

安装需求

在安装 Observuim 之前,你需要确认安装所有的依赖关系包。

首先,使用下面的命令更新你的服务器:

sudo apt-get update

然后你需要安装下列运行 Observuim 所需的全部软件包。

Observium 需要使用下面所列出的软件才能正确的运行:

  • LAMP 服务器
  • fping
  • Net-SNMP 5.4+
  • RRDtool 1.3+
  • Graphviz

对于可选特性的要求:

  • Ipmitool - 仅在当你想要获取服务器上的 IPMI(Intelligent Platform Management Interface 智能平台管理接口)基板控制器时。
  • Libvirt-bin - 仅在当你想要使用 libvirt 进行远程 VM 主机监控时。

sudo apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick libvirt ipmitool

为 Observium 创建 MySQL 数据库及其用户。

现在你需要登录到 MySQL 中并为 Observium 创建数据库:

mysql -u root -p

在用户验证成功之后,你需要按照下面的命令创建该数据库。

CREATE DATABASE observium;

数据库名为 Observium,稍后你会需要这个信息。

现在你需要创建数据库管理员用户。

CREATE USER observiumadmin@localhost IDENTIFIED BY 'observiumpassword';

接下来,你需要给该管理员用户相应的权限来管理创建的数据库。

GRANT ALL PRIVILEGES ON observium.* TO observiumadmin@localhost;

你需要将权限信息写回到磁盘中来激活新的 MySQL 用户:

FLUSH PRIVILEGES;
exit

下载并安装 Observium

现在我们的系统已经准备好了, 可以开始Observium的安装了。

第一步,创建 Observium 将要使用的文件目录:

mkdir -p /opt/observium && cd /opt

按本教程的目的,我们将会使用 Observium 的社区/开源版本。使用下面的命令下载并解压:

wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz

现在进入到 Observium 目录。

cd observium

将默认的配置文件 'config.php.default' 复制到 'config.php',并将数据库配置选项填充到配置文件中:

cp config.php.default config.php
nano config.php

/ Database config
$config['db_host'] = 'localhost';
$config['db_user'] = 'observiumadmin';
$config['db_pass'] = 'observiumpassword';
$config['db_name'] = 'observium';

现在为 MySQL 数据库设置默认的数据库模式:

php includes/update/update.php

现在你需要创建一个文件目录来存储 rrd 文件,并修改其权限以便让 apache 能将写入到文件中。

mkdir rrd
chown apache:apache rrd

为了在出现问题时排错,你需要创建日志文件。

mkdir -p /var/log/observium
chown apache:apache /var/log/observium

现在你需要为 Observium 创建虚拟主机配置。

<VirtualHost *:80>
  DocumentRoot /opt/observium/html/
  ServerName  observium.domain.com
  CustomLog /var/log/observium/access_log combined
  ErrorLog /var/log/observium/error_log
  <Directory "/opt/observium/html/">
  AllowOverride All
  Options FollowSymLinks MultiViews
  </Directory>
  </VirtualHost>

下一步你需要让你的 Apache 服务器的 rewrite (重写)功能生效。

为了让 'mod\_rewrite' 生效,输入以下命令:

sudo a2enmod rewrite

该模块在下一次 Apache 服务重启之后就会生效。

sudo service apache2 restart

配置 Observium

在登入 Web 界面之前,你需要为 Observium 创建一个管理员账户(级别10)。

# cd /opt/observium
# ./adduser.php admin adminpassword 10 
User admin added successfully.

下一步为发现和探寻任务设置一个 cron 任务,创建一个新的文件 ‘/etc/cron.d/observium’ 并在其中添加以下的内容。

33  */6   * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 *      * * *   root    /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 *      * * *   root    /opt/observium/poller-wrapper.py 1 >> /dev/null 2>&1

重载 cron 进程来增加新的任务。

# /etc/init.d/cron reload

好啦,你已经完成了 Observium 服务器的安装拉! 使用你的浏览器登录到 http://,然后上路吧。

尽情享受吧!


via: http://www.unixmen.com/monitoring-network-servers-observium/

作者:anismaj 译者:theo-l 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我已经用了十年的Linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。

1. 命令行日常系快捷键

如下的快捷方式非常有用,能够极大的提升你的工作效率:

  • CTRL + U - 剪切光标前的内容
  • CTRL + K - 剪切光标至行末的内容
  • CTRL + Y - 粘贴
  • CTRL + E - 移动光标到行末
  • CTRL + A - 移动光标到行首
  • ALT + F - 跳向下一个空格
  • ALT + B - 跳回上一个空格
  • ALT + Backspace - 删除前一个单词
  • CTRL + W - 剪切光标前一个单词
  • Shift + Insert - 向终端内粘贴文本

那么为了让上述内容更易理解来看下面的这行命令。

sudo apt-get intall programname

如你所见,命令中存在拼写错误,为了正常执行需要把“intall”替换成“install”。

想象现在光标正在行末,我们有很多的方法将她退回单词install并替换它。

我可以按两次ALT+B这样光标就会在如下的位置(这里用 指代光标的位置)。

sudo apt-get^intall programname

现在你可以按两下方向键并将“s”插入到install中去了。

如果你想将浏览器中的文本复制到终端,可以使用快捷键"shift + insert"。

2. SUDO !!

如果你还不知道这个命令,我觉得你应该好好感谢我,因为如果你不知道的话,那每次你在输入长串命令后看到“permission denied”后一定会痛苦不堪。

  • sudo !!

如何使用sudo !!?很简单。试想你刚输入了如下命令:

apt-get install ranger

一定会出现“Permission denied”,除非你已经登录了足够高权限的账户。

sudo !! 就会用 sudo 的形式运行上一条命令。所以上一条命令就变成了这样:

sudo apt-get install ranger

如果你不知道什么是sudo,戳这里

警告!主页君强烈反对使用这个命令,因为如果万一上个命令存在一些笔误或者你搞错了哪条是上一条命令,那么有可能带来的后果是灾难性的!所以,千万不要执行这条命令!千万不要执行这条命令!千万不要执行这条命令!重要的事情重复三遍。

3. 暂停并在后台运行命令

我曾经写过一篇如何在终端后台运行命令的指南

  • CTRL + Z - 暂停应用程序
  • fg - 重新将程序唤到前台

如何使用这个技巧呢?

试想你正用nano编辑一个文件:

sudo nano abc.txt

文件编辑到一半你意识到你需要马上在终端输入些命令,但是nano在前台运行让你不能输入。

你可能觉得唯一的方法就是保存文件,退出 nano,运行命令以后在重新打开nano。

其实你只要按CTRL + Z,前台的命令就会暂停,画面就切回到命令行了。然后你就能运行你想要运行命令,等命令运行完后在终端窗口输入“fg”就可以回到先前暂停的任务。

有一个尝试非常有趣就是用nano打开文件,输入一些东西然后暂停会话。再用nano打开另一个文件,输入一些什么后再暂停会话。如果你输入“fg”你将回到第二个用nano打开的文件。只有退出nano再输入“fg”,你才会回到第一个用nano打开的文件。

4. 使用nohup在登出SSH会话后仍运行命令

如果你用ssh登录别的机器时,nohup命令真的非常有用。

那么怎么使用nohup呢?

想象一下你使用ssh远程登录到另一台电脑上,你运行了一条非常耗时的命令然后退出了ssh会话,不过命令仍在执行。而nohup可以将这一场景变成现实。

举个例子,因为测试的需要,我用我的树莓派来下载发行版。我绝对不会给我的树莓派外接显示器、键盘或鼠标。

一般我总是用SSH从笔记本电脑连接到树莓派。如果我在不用nohup的情况下使用树莓派下载大型文件,那我就必须等待到下载完成后,才能登出ssh会话关掉笔记本。可如果是这样,那我为什么要使用树莓派下文件呢?

使用nohup的方法也很简单,只需如下例中在nohup后输入要执行的命令即可:

nohup wget http://mirror.is.co.za/mirrors/linuxmint.com/iso//stable/17.1/linuxmint-17.1-cinnamon-64bit.iso &

5. ‘在(at)’特定的时间运行Linux命令

‘nohup’命令在你用SSH连接到服务器,并在上面保持执行SSH登出前任务的时候十分有用。

想一下如果你需要在特定的时间执行相同的命令,这种情况该怎么办呢?

命令‘at’就能妥善解决这一情况。以下是‘at’使用示例。

at 10:38 PM Fri
at> cowsay 'hello'
at> CTRL + D

上面的命令能在周五下午10时38分运行程序cowsay

使用的语法就是‘at’后追加日期时间。当at>提示符出现后就可以输入你想在那个时间运行的命令了。

CTRL + D 返回终端。

还有许多日期和时间的格式,都需要你好好翻一翻‘at’的man手册来找到更多的使用方式。

6. Man手册

Man手册会为你列出命令和参数的使用大纲,教你如何使用她们。Man手册看起来沉闷呆板。(我思忖她们也不是被设计来娱乐我们的)。

不过这不代表你不能做些什么来使她们变得漂亮些。

export PAGER=most

你需要安装 ‘most’;她会使你的你的man手册的色彩更加绚丽。

你可以用以下命令给man手册设定指定的行长:

export MANWIDTH=80

最后,如果你有一个可用的浏览器,你可以使用-H在默认浏览器中打开任意的man页。

man -H <command>

注意啦,以上的命令只有在你将默认的浏览器设置到环境变量$BROWSER中了之后才效果哟。

7. 使用htop查看和管理进程

你用哪个命令找出电脑上正在运行的进程的呢?我敢打赌是‘ps’并在其后加不同的参数来得到你所想要的不同输出。

安装‘htop’吧!绝对让你相见恨晚。

htop在终端中将进程以列表的方式呈现,有点类似于Windows中的任务管理器。你可以使用功能键的组合来切换排列的方式和展示出来的项。你也可以在htop中直接杀死进程。

在终端中简单的输入htop即可运行。

htop

8. 使用ranger浏览文件系统

如果说htop是命令行进程控制的好帮手,那么ranger就是命令行浏览文件系统的好帮手。

你在用之前可能需要先安装,不过一旦安装了以后就可以在命令行输入以下命令启动她:

ranger

在命令行窗口中ranger和一些别的文件管理器很像,但是相比上下结构布局,她是左右结构的,这意味着你按左方向键你将前进到上一个文件夹,而右方向键则会切换到下一个。

在使用前ranger的man手册还是值得一读的,这样你就可以用快捷键操作ranger了。

9. 取消关机

无论是在命令行还是图形用户界面关机后,才发现自己不是真的想要关机。

shutdown -c

需要注意的是,如果关机已经开始则有可能来不及停止关机。

以下是另一个可以尝试命令:

10. 杀死挂起进程的简单方法

想象一下,你正在运行的应用程序不明原因的僵死了。

你可以使用‘ps -ef’来找到该进程后杀掉或者使用‘htop’。

有一个更快、更容易的命令叫做xkill

简单的在终端中输入以下命令并在窗口中点击你想杀死的应用程序。

xkill

那如果整个系统挂掉了怎么办呢?

按住键盘上的‘alt’和‘sysrq’不放,然后慢慢输入以下键:

这样不按电源键你的计算机也能重启了。

11. 下载Youtube视频

一般来说我们大多数人都喜欢看Youtube的视频,也会通过钟爱的播放器播放Youtube的流媒体。

如果你需要离线一段时间(比如:从苏格兰南部坐飞机到英格兰南部旅游的这段时间)那么你可能希望下载一些视频到存储设备中,到闲暇时观看。

你所要做的就是从包管理器中安装youtube-dl。

你可以用以下命令使用youtube-dl:

youtube-dl url-to-video

你可以在Youtubu视频页面点击分享链接得到视频的url。只要简单的复制链接在粘帖到命令行就行了(要用shift + insert快捷键哟)。

总结

希望你在这篇文章中得到帮助,并且在这11条中找到至少一条让你惊叹“原来可以这样”的技巧。


via: http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.htm

作者:Gary Newell 译者:martin2011qi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

问题:

当Ubuntu14.04或14.10从睡眠和待机状态恢复时,鼠标和键盘出现僵死,不能点击也不能输入。解决这种情况是唯一方法就是按关机键强关系统,这不仅非常不便且令人恼火。因为在Ubuntu的默认情况中合上笔记本等同于切换到睡眠模式。

在这篇短文中,我们将学会如何解决Ubuntu14.04和14.10中出现的鼠标僵死问题。

Ubuntu14.04唤醒后鼠标僵死的解决办法

这个问题的是由内核升级导致的。为何导致这一情况不得而知,但是看起来好像仅需重装输入设备的驱动就能解决了。

sudo apt-get install --reinstall xserver-xorg-input-all

这则贴士源自一个自由开源读者Dev的提问。快试试这篇贴士,看看是否对你也有效。在一个类似的问题中,你可以修复Ubuntu登录后无Unity界面、侧边栏和Dash的问题


via: http://itsfoss.com/keyboard-mouse-freeze-suspend/

作者:Abhishek 译者:martin2011qi 校对:wxy

本文由 LCTT 原创翻译,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 并深入探索它,那么请毫不犹豫地阅读我们做的关于这个网络带宽监控工具的整个教程。

(LCTT 译注:关于 nethogs 的更多信息可以参考:</article-2808-1.html> )

2) nload

nload 是一个控制台应用,可以被用来实时地监控网络流量和带宽使用情况,它还通过提供两个简单易懂的图表来对流量进行可视化。这个绝妙的网络监控工具还可以在监控过程中切换被监控的设备,而这可以通过按左右箭头来完成。

network monitoring tools in linux

正如你在上面的截图中所看到的那样,由 nload 提供的图表是非常容易理解的。nload 提供了有用的信息,也展示了诸如被传输数据的总量和最小/最大网络速率等信息。

而更酷的是你只需要直接运行 nload 这个工具就行,这个命令是非常的短小且易记的:

nload

我很确信的是:我们关于如何使用 nload 的详细教程将帮助到新的 Linux 用户,甚至可以帮助那些正寻找关于 nload 信息的老手。

(LCTT 译注:关于 nload 的更新信息可以参考:</article-5114-1.html> )

3) slurm

slurm 是另一个 Linux 网络负载监控工具,它以一个不错的 ASCII 图来显示结果,它还支持许多按键用以交互,例如 c 用来切换到经典模式, s 切换到分图模式, r 用来重绘屏幕, L 用来启用 TX/RX 灯(注:TX,发送流量;RX,接收流量) ,m 用来在经典分图模式和大图模式之间进行切换, q 退出 slurm。

linux network load monitoring tools

在网络负载监控工具 slurm 中,还有许多其它的按键可用,你可以很容易地使用下面的命令在 man 手册中学习它们。

man slurm

slurm 在 Ubuntu 和 Debian 的官方软件仓库中可以找到,所以使用这些发行版本的用户可以像下面展示的那样,使用 apt-get 安装命令来轻松地下载它:

sudo apt-get install slurm

我们已经在一个教程中对 slurm 的使用做了介绍,不要忘记和其它使用 Linux 的朋友分享这些知识。

4) iftop

当你想显示连接到网卡上的各个主机的带宽使用情况时,iftop 是一个非常有用的工具。根据 man 手册,iftop 在一个指定的接口或在它可以找到的第一个接口(假如没有任何特殊情况,它应该是一个对外的接口)上监听网络流量,并且展示出一个表格来显示当前的一对主机间的带宽使用情况。

通过在虚拟终端中使用下面的命令,Ubuntu 和 Debian 用户可以在他们的机器中轻易地安装 iftop:

sudo apt-get install iftop

在你的机器上,可以使用下面的命令通过 yum 来安装 iftop:

yum -y install iftop

(LCTT 译注:关于 nload 的更多信息请参考:</article-1843-1.html> )

5) collectl

collectl 可以被用来收集描述当前系统状态的数据,并且它支持如下两种模式:

  • 记录模式
  • 回放模式

记录模式 允许从一个正在运行的系统中读取数据,然后将这些数据要么显示在终端中,要么写入一个或多个文件或一个套接字中。

回放模式

根据 man 手册,在这种模式下,数据从一个或多个由记录模式生成的数据文件中读取。

Ubuntu 和 Debian 用户可以在他们的机器上使用他们默认的包管理器来安装 colletcl。下面的命令将为他们做这个工作:

sudo apt-get install collectl

还可以使用下面的命令来安装 collectl, 因为对于这些发行版本(注:这里指的是用 yum 作为包管理器的发行版本),在它们官方的软件仓库中也含有 collectl:

yum install collectl

(LCTT 译注:关于 collectl 的更多信息请参考: </article-3154-1.html> )

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

更多的关于 netstat 的信息,我们可以简单地在 shell 或终端中键入 man netstat 来了解:

man netstat

man netstat

(LCTT 译注:关于 netstat 的更多信息请参考:</article-2434-1.html> )

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 界面,其中有一个图形化的活动监视器。通过浏览网页 http://localhost/nagios/http://localhost/nagios3/ 便可以登录到这个 web 界面。假如你在远程的机器上进行操作,请使用你的 IP 地址来替换 localhost,然后键入用户名和密码,我们便会看到如下图所展示的信息:

在 Chromium 浏览器中的 Nagios3

(LCTT 译注:关于 Nagios 的更多信息请参考:</article-2436-1.html> )

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) 和 接口。一切设定完毕后,我们需要点击 开始 按钮。接着我们便会看到类似下面截图的东西:

EtherApe

10) tcpflow

tcpflow 是一个命令行工具,它可以捕捉 TCP 连接(流)的部分传输数据,并以一种方便协议分析或除错的方式来存储数据。它重构了实际的数据流并将每个流存储在不同的文件中,以备日后的分析。它能识别 TCP 序列号并可以正确地重构数据流,不管是在重发还是乱序发送状态下。

通过 apt 包管理器在 Ubuntu 、Debian 系统中安装 tcpflow 是很容易的,因为默认情况下在官方软件仓库中可以找到它。

$ sudo apt-get install tcpflow

我们可以使用下面的命令通过 yum 包管理器在 Fedora 、CentOS 、RHEL 及它们的衍生发行版本中安装 tcpflow:

# yum install tcpflow

假如在软件仓库中没有找到它或不能通过 yum 包管理器来安装它,则我们需要像下面展示的那样从 http://pkgs.repoforge.org/tcpflow/ 上手动安装它:

假如你运行 64 位的 PC:

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

假如你运行 32 位的 PC:

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.i686.rpm

我们可以使用 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

开始通常的网络接口统计,键入:

# iptraf -g

查看接口 eth0 的详细统计信息,使用:

# iptraf -d eth0  

查看接口 eth0 的 TCP 和 UDP 监控信息,使用:

# iptraf -z eth0

查看接口 eth0 的包的大小和数目,使用:

# iptraf -z eth0

注意:请将上面的 eth0 替换为你的接口名称。你可以通过运行ip link show命令来检查你的接口。

(LCTT 译注:关于 iptraf 的更多详细信息请参考:</article-5430-1.html> )

12) Speedometer

Speedometer 是一个小巧且简单的工具,它只用来绘出一幅包含有通过某个给定端口的上行、下行流量的好看的图。

在默认的软件仓库中可以找到 Speedometer ,所以我们可以使用下面的命令通过 yum 包管理器轻松地安装 Speedometer:

# yum install speedometer

我们可以使用下面的命令通过 apt 包管理器轻松地安装 Speedometer:

$ sudo apt-get install speedometer

Speedometer 可以简单地通过在 shell 或虚拟终端中执行下面的命令来运行:

$ speedometer -r wlan2 -t wlan2

Speedometer

注:请将上面的 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

Netwatch

注意: 请将上面的 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

Trafshow

为了专门监控 tcp 连接,如下面一样添加上 tcp 参数:

 $ sudo trafshow -i wlan2 tcp

Trafshow tcp

注意: 请将上面的 wlan2 替换为你想使用的网络接口名称,假如你想通过扫描了解你的网络接口名称,可以在一个虚拟终端或 shell 中运行 ip link show 命令。

15) Vnstat

与大多数的其他工具相比,Vnstat 有一点不同。实际上它运行着一个后台服务或守护进程,并时刻记录着传输数据的大小。另外,它可以被用来生成一个网络使用历史记录的报告。

我们需要开启 EPEL 软件仓库,然后运行 yum 包管理器来安装 vnstat。

# yum install vnstat

Vnstat 在默认软件仓库中可以找到,所以我们可以使用下面的命令运行 apt 包管理器来安装它:

$ sudo apt-get install vnstat

不带有任何选项运行 vnstat 将简单地展示出从该守护进程运行后数据传输的总量。

$ vnstat

vnstat

为了实时地监控带宽使用情况,使用 ‘-l’ 选项(live 模式)。然后它将以一种非常精确的方式来展示上行和下行数据所使用的带宽总量,但不会显示任何有关主机连接或进程的内部细节。

$ vnstat -l

Vnstat 实时模式

完成了上面的步骤后,按 Ctrl-C 来停止,这将会得到如下类型的输出:

Vnstat 实时结果

16) tcptrack

tcptrack 可以展示 TCP 连接的状态,它在一个给定的网络端口上进行监听。tcptrack 监控它们的状态并展示出排序且不断更新的列表,包括来源/目标地址、带宽使用情况等信息,这与 top 命令的输出非常类似 。

鉴于 tcptrack 在软件仓库中,我们可以轻松地在 Debian、Ubuntu 系统中从软件仓库使用 apt 包管理器来安装 tcptrack。为此,我们需要在 shell 或虚拟终端中执行下面的命令:

$ sudo apt-get install tcptrack

我们可以通过 yum 在 fedora 中安装它,因为它在 fedora 的默认软件仓库中。但若你运行着 CentOS 或 RHEL 系统,我们需要安装 rpmforge 软件仓库。为此,我们需要运行下面的命令:

# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

# 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

假如你想监控特定的端口,则使用:

# tcptrack -i wlan2 port 80

tcptrack port 80

请替换上面的 80 为你想要监控的端口号。注意: 请将上面的 wlan2 替换为你想使用的网络接口名称,假如你想通过扫描了解你的网络接口名称,可以在一个虚拟终端或 shell 中运行 ip link show 命令。

17) CBM

CBM ( Color Bandwidth Meter) 可以展示出当前所有网络设备的流量使用情况。这个程序是如此的简单,以至于都可以从它的名称中看出其功能。CBM 的源代码和新版本可以在 http://www.isotton.com/utils/cbm/ 上找到。

鉴于 CBM 已经包含在软件仓库中,我们可以简单地使用 apt 包管理器从 Debian、Ubuntu 的软件仓库中安装 CBM。为此,我们需要在一个 shell 窗口或虚拟终端中运行下面的命令:

$ sudo apt-get install cbm

我们只需使用下面展示的命令来在 shell 窗口或虚拟终端中运行 cbm:

$ cbm

Color Bandwidth Meter

18) bmon

Bmon ( Bandwidth Monitoring) ,是一个用于调试和实时监控带宽的工具。这个工具能够检索各种输入模块的统计数据。它提供了多种输出方式,包括一个基于 curses 库的界面,轻量级的HTML输出,以及 ASCII 输出格式。

bmon 可以在软件仓库中找到,所以我们可以通过使用 apt 包管理器来在 Debian、Ubuntu 中安装它。为此,我们需要在一个 shell 窗口或虚拟终端中运行下面的命令:

$ sudo apt-get install bmon

我们可以使用下面的命令来运行 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

tcpdump

假如你只想监视一个特定的端口,则可以运行下面的命令。下面是一个针对 80 端口(网络服务器)的例子:

$ sudo tcpdump -i wlan2 'port 80'

tcpdump port

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 http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download
$ 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 下的网络负载监控工具,这对于系统管理员甚至是新手来说,都是很有帮助的。在这篇文章中介绍的每一个工具都具有其特点,不同的选项等,但最终它们都可以帮助你来监控你的网络流量。


via: http://linoxide.com/monitoring-2/network-monitoring-tools-linux/

作者:Bobbin Zachariah 译者:FSSlc 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

iptraf是一个基于ncurses的IP局域网监控器,用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据。

它基于ncurses的用户界面可以使用户免于记忆繁琐的命令行开关。

特征

  • IP流量监控器,用来显示你的网络中的IP流量变化信息。包括TCP标识信息、包以及字节计数,ICMP细节,OSPF包类型。
  • 简单的和详细的接口统计数据,包括IP、TCP、UDP、ICMP、非IP以及其他的IP包计数、IP校验和错误,接口活动、包大小计数。
  • TCP和UDP服务监控器,能够显示常见的TCP和UDP应用端口上发送的和接收的包的数量。
  • 局域网数据统计模块,能够发现在线的主机,并显示其上的数据活动统计信息。
  • TCP、UDP、及其他协议的显示过滤器,允许你只查看感兴趣的流量。
  • 日志功能。
  • 支持以太网、FDDI、ISDN、SLIP、PPP以及本地回环接口类型。
  • 利用Linux内核内置的原始套接字接口,允许它(指iptraf)能够用于各种支持的网卡上
  • 全屏,菜单式驱动的操作。

安装方法

Ubuntu以及其衍生版本

sudo apt-get install iptraf

Arch Linux以及其衍生版本

sudo pacman -S iptra

Fedora以及其衍生版本

sudo yum install iptraf

用法

如果不加任何命令行选项地运行iptraf命令,程序将进入一种交互模式,通过主菜单可以访问多种功能。

简易的上手导航菜单。

选择要监控的接口。

接口ppp0处的流量。

试试吧!


via: http://www.unixmen.com/iptraf-tcpudp-network-monitoring-utility/

作者:Enock Seth Nyamador 译者:DongShuaike 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

ctop是一个新的基于命令行的工具,它可用于在容器层级监控进程。容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境。该工具从cgroup收集与内存、CPU、块输入输出的相关数据,以及拥有者、开机时间等元数据,并以人性化的格式呈现给用户,这样就可以快速对系统健康状况进行评估。基于所获得的数据,它可以尝试推测下层的容器技术。ctop也有助于在低内存环境中检测出谁在消耗大量的内存。

功能

ctop的一些功能如下:

  • 收集CPU、内存和块输入输出的度量值
  • 收集与拥有者、容器技术和任务统计相关的信息
  • 通过任意栏对信息排序
  • 以树状视图显示信息
  • 折叠/展开cgroup树
  • 选择并跟踪cgroup/容器
  • 选择显示数据刷新的时间窗口
  • 暂停刷新数据
  • 检测基于systemd、Docker和LXC的容器
  • 基于Docker和LXC的容器的高级特性

    • 打开/连接shell以进行深度诊断
    • 停止/杀死容器类型

安装

ctop是由Python写成的,因此,除了需要Python 2.6或其更高版本外(带有内建的光标支持),别无其它外部依赖。推荐使用Python的pip进行安装,如果还没有安装pip,请先安装,然后使用pip安装ctop。

注意:本文样例来自Ubuntu(14.10)系统

$ sudo apt-get install python-pip

使用pip安装ctop:

poornima@poornima-Lenovo:~$ sudo pip install ctop

[sudo] password for poornima:

Downloading/unpacking ctop

Downloading ctop-0.4.0.tar.gz

Running setup.py (path:/tmp/pip_build_root/ctop/setup.py) egg_info for package ctop

Installing collected packages: ctop

Running setup.py install for ctop

changing mode of build/scripts-2.7/ctop from 644 to 755

changing mode of /usr/local/bin/ctop to 755

Successfully installed ctop

Cleaning up...

如果不选择使用pip安装,你也可以使用wget直接从github安装:

poornima@poornima-Lenovo:~$ wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop

--2015-04-29 19:32:53-- https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py

Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 199.27.78.133

Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|199.27.78.133|:443... connected.

HTTP request sent, awaiting response... 200 OK Length: 27314 (27K) [text/plain]

Saving to: ctop

100%[======================================>] 27,314 --.-K/s in 0s

2015-04-29 19:32:59 (61.0 MB/s) - ctop saved [27314/27314]

poornima@poornima-Lenovo:~$ chmod +x ctop

如果cgroup-bin包没有安装,你可能会碰到一个错误消息,你可以通过安装需要的包来解决。

poornima@poornima-Lenovo:~$ ./ctop

[ERROR] Failed to locate cgroup mountpoints.

poornima@poornima-Lenovo:~$ sudo apt-get install cgroup-bin

下面是ctop的输出样例:

ctop screen

ctop屏幕

用法选项

ctop [--tree] [--refresh=] [--columns=] [--sort-col=] [--follow=] [--fold=, ...] ctop (-h | --help)

当你进入ctop屏幕,可使用上(↑)和下(↓)箭头键在容器间导航。点击某个容器就选定了该容器,按q或Ctrl+C退出该容器。

现在,让我们来看看上面列出的那一堆选项究竟是怎么用的吧。

-h / --help - 显示帮助信息

poornima@poornima-Lenovo:~$ ctop -h
Usage: ctop [options]

Options:
-h, --help show this help message and exit
--tree show tree view by default
--refresh=REFRESH Refresh display every <seconds>
--follow=FOLLOW Follow cgroup path
--columns=COLUMNS List of optional columns to display. Always includes
'name'
--sort-col=SORT_COL Select column to sort by initially. Can be changed
dynamically.

--tree - 显示容器的树形视图

默认情况下,会显示列表视图

当你进入ctop窗口,你可以使用F5按钮在树状/列表视图间切换。

--fold= - 在树形视图中折叠名为 的 cgroup 路径

该选项需要与 --tree 选项组合使用。

例子: ctop --tree --fold=/user.slice

Output of 'ctop --fold'

'ctop --fold'的输出

在ctop窗口中,使用+/-键来展开或折叠子cgroup。

注意:在写本文时,pip仓库中还没有最新版的ctop,还不支持命令行的‘--fold’选项

--follow= - 跟踪/高亮 cgroup 路径

例子: ctop --follow=/user.slice/user-1000.slice

正如你在下面屏幕中所见到的那样,带有“/user.slice/user-1000.slice”路径的cgroup被高亮显示,这让用户易于跟踪,就算显示位置变了也一样。

Output of 'ctop --follow'

'ctop --follow'的输出

你也可以使用‘f’按钮来让高亮的行跟踪选定的容器。默认情况下,跟踪是关闭的。

--refresh= - 按指定频率刷新显示,默认1秒

这对于按每用户需求来显示改变刷新率时很有用。使用‘p’按钮可以暂停刷新并选择文本。

--columns= - 限定只显示选定的列。'name' 需要是第一个字段,其后跟着其它字段。默认情况下,字段包括:owner, processes,memory, cpu-sys, cpu-user, blkio, cpu-time

例子: ctop --columns=name,owner,type,memory

Output of 'ctop --column'

'ctop --column'的输出

-sort-col= - 按指定的列排序。默认使用 cpu-user 排序

例子: ctop --sort-col=blkio

如果有Docker和LXC支持的额外容器,跟踪选项也是可用的:

press 'a' - 接驳到终端输出

press 'e' - 打开容器中的一个 shell

press 's' - 停止容器 (SIGTERM)

press 'k' - 杀死容器 (SIGKILL)

目前 Jean-Tiare Le Bigot 还在积极开发 ctop 中,希望我们能在该工具中见到像本地 top 命令一样的特性 :-)


via: http://linoxide.com/how-tos/monitor-linux-containers-performance/

作者:B N Poornima 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出