Python linux命令 php Ubuntu linux apache 微软 nginx 开源 程序员 wordpress mysql Windows google centos java Firefox HTML5 shell Android

针对Linux集群的高级监控工具sinfo概述

你是不是面临这种情况:想搭建某种网络集群,但又要处理许多不同的计算机,想密切跟踪这所有计算机几乎是不可能的事?如果你负责满满一屋子的计算机,还要负责使用这些机器的那些用户,又该如何是好?sinfo也许正是你苦苦寻觅的那款工具。Freshmeat网站上的介绍如下:

Sinfo是一款监视工具,使用广播方案来发布关于你本地网络上每一台计算机的运行状况的信息。它支持显示多方面的内容,比如处理器、内存使用情况、网络负载以及关于每一台计算机上五个主要进程的信息。Sinfo使用ncurses,以一目了然的方式来显示信息。

Sinfo可以显示关于多台计算机的系统信息,以便管理。使用的时候可以通过-s选项查看更多信息。

安装过程

如果你使用基于Debian的系统,比如Debian和Ubuntu等系统,可以使用二进制包,可以在你的repo中找一下。考虑到该软件包括了一个启动守护程序sinfod,我强烈建议使用这个可选的二进制文件,因为这个过程的许多方面实现了自动化(它也是我在这里探讨的版本)。不过,为了确保发行版中立,与往常一样,我还在安装过程中介绍了源版本。

说明文档对代码库的要求如下:

  • ncurses:用于终端处理的代码库(5.7版本)。
  • boost:可移植的C++源代码库,使用Boost.bind和Boost.Signals(1.42版本)。
  • asio (>=1.1.0):asio是一个跨平台的C++代码库,用于网络编程(1.4.1版本)。

如果你通过源代码编译,还需要上面这些代码库的开发包(-dev)。libboost-下的开发包的数量相当多,所以要是你在编译过程中遇到了任何问题,请先检查libboost是不是安装全了。

对于使用源代码来运行的那些人来说,一旦你搞定了代码库要求,就可以获取最新的tarball文件(下载地址)。解压缩,在新的文件夹中打开终端,输入以下命令:

$ ./configure
$ make

如果你的发行版使用sudo

$ sudo make install

如果你的发行版使用root:

$ su
# make install

在我继续下文之前,应该解释一下:sinfo分平常的应用软件部分和后台守护程序这两个部分。守护程序的安装每个发行版都不同,这部分我就不具体说了,细节可以查看源代码tarball文件的使用说明文件和官方网站。

使用

Sinfo是一款“半图形用户界面(GUI)”的命令行程序,使用起来实际上很容易,不过高级用户会通过命令行的参数选项符让它处理一些相当出色的任务。想让该程序在基本模式下运行,只要输入:

$ sinfo

如果你只是在自己的机器上安装了sinfo,显示的信息将仅是你这台机器的信息。你可以从这个屏幕上看到可用内存、处理器占用率和主机名称等信息。文末的附录列出了适用的快捷键命令,只要按一个键,就可以切换该程序的不同部分。

不过在这种情况下,sinfo其实只是更漂亮的top而已。使用sinfo的目的是,你可以一下子显示来自好几台机器的信息,以便密切监视局域网的运行情况。

要做到这一点也很容易:只要在网络上的其他计算机上也安装并运行sinfo,运行之后你就会发现两台计算机的信息分别在两个计算机上都有显示。继续把它安装到其他联网计算机上,显示列表就会越来越长。

这些只是基本功能,更丰富的功能方面又如何呢?很显然,因篇幅所限,我没法在这里一一介绍(你其实应该查阅参考手册页,了解更多详细内容),不妨看一下我偏爱使用的一些功能。

在命令行,如果你添加了-w参数选项符(或者--wwwmode),就像这样:

$ sinfo -W

输出就会从平常的类似top的屏幕变出HTML输出——对于喜欢借助自动化网页等方面进行远程管理的那些人来说,这非常方便。

在编写某种命令行脚本时,你可以添加参数选项符-s(或者--ysteminfo)输出一大段重要的系统信息。举例来说,我的两台机器显示了以下的额外信息:

192.168.1.2   knightro-bigdesktop i686
 ↪Linux 2.6.32-27-generic #49-Ubuntu SMP Wed De
cpus: 4  MHz:  800.0
RAM: 3276.5 MByte   swap: 7629.4 Mbyte
load 1min:  0.0   load 5min:  0.1   load 15min:  0.1

192.168.1.1   nhoj-desktop x86_64
 ↪Linux 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 0
cpus: 2  MHz: 1000.0
RAM: 2007.6 MByte   swap: 2047.3 Mbyte
load 1min:  0.1   load 5min:  0.2   load 15min:  0.1
uptime    0 days, 19:13:03

这样一种信息表明sinfo有许多潜在用途,我立即想到了可以在局域网派对(LAN party)上用于监视和故障排除。要是任何一个节点有问题,主机在试图隔离这个问题时很可能就能够立即着手处理。

结语

sinfo设计精巧,安装方便,我认为这款程序会很快闯出自己的一片天地。但愿它会像其他标准应用软件那样变得司空见惯,成为一款常用工具。也许对它进行移植就能实现这个目标。

附录:sinfo键盘命令

  • q键—退出sinfo。
  • Page up键, Page down键 — 滚动屏幕,每次滚动一页。
  • Up arrow/u键, down arrow/d键 —滚动屏幕,每次滚动一行。
  • Home键—跳到最上面一行。
  • s键 — 切换显示系统信息。
  • o键 — 切换显示你自己机器的进程。
  • n键 — 切换显示网络信息。
  • D键 — 切换显示磁盘负载。
  • t键 — 切换显示主要的X个进程。
  • c键 — 将处理器负载条形图的标度从log(对数模式)、lin(线性模式)切换至full(全模式)。

延伸阅读

  • 抱歉,暂无相关内容!

评论