Linux是一种开放源代码和自由传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。作为Internet技术和异种机连接重要手段的TCP/IP协议是在Unix上开发和发展起来的,并在Linux系统中得到了很好的继承。这使TCP/IP成为Linux系统不可分割的组成部分。此外,Linux还支持所有常用的网络通信协议,包括NFS、DCE、IPX/SPX、SLIP、PPP等,使得Linux系统能方便地与已有的主机系统,以及各种广域网和局域网相连接。Linux是依靠互联网才迅速发展起来的,所以Linux具有强大的网络功能也是自然而然的事情。它可以轻松地与TCP/IP、LAN Manager、Windows for Workgroups、Novell Netware或Windows NT/2000/2003网络集成在一起,还可以通过以太网或调制解调器连接到Internet上。Linux的应用日益广泛,特别是在网络应用方面。
有大量的网络服务器使用Linux操作系统。为了全面衡量网络运行状况,需要能够对网络状态做更细致、更精确的测量,SNMP协议的制订为互联网测量提供了有力的支持,简单网络管理协议(SNMP)事实上已经成为了核心标准。 由于SNMP最初是为了解决在Internet上路由器的管理问题而被提出的,因此许多人认为SNMP之所以运行在IP协议上,原因是Internet运行的是TCP/IP协议。但事实上,SNMP的设计是与协议无关的,所以它可以在IP、IPX、AppleTalk、OSI以及其它多种传输协议上使用。GKrellM就是基于SNMP的典型网络流量统计分析工具. GKrellM耗用的系统资源很小,因此有很多外挂的程序也依附之下。
GKrellM工作原理
Linux 系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核/系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。这就是 /proc 的妙处之一。首先看看笔者的/proc目录快照(Redhat Linux 8.0)见图-1:
图-1 /proc目录快照
下面我们介绍一下/proc 目录里主要文件内容,见表-1:
表-1 /proc目录的主要内容
每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。net目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况,可以用arp 、netstat、route等命令来查询这些文件。
一般来说/proc文件系统主要实现的五个主要功能:
1. 进程信息:对于系统中的任何一个进程来说,在proc的子目录里都有一个同名的进程ID。你将可以找到以下的信息:cmdline, mem, root, stat, statm, 以及status。某些信息只有超级用户可见,例如进程根目录。到每一个单独的含有现有进程信息的进程有一些可用的专门链接。对于系统里的任何一个进程来说,都有一个单独的自链接指向进程信息。它的用处就是从进程中获取命令行信息。
2. 系统信息:如果你需要了解整个系统信息,你也可以从/proc/stat中获得。它包括:包括CPU占用、磁盘空间、内存页、内存对换、全部中断、接触开关以及上次系统自举时间。
3. CPU信息:利用/proc/cpuinfo文件,你可以获得中央处理器当前的准确信息。
4. 负载信息: /proc/loadavg文件包含了系统负载信息。
5. 系统内存信息:meminfo文件包含了系统内存的详细信息。它显示了物理内存的数量,可用交换空间的数量,空闲内存的数量等等。
举例来说,要获得系统的负载信息,你只需要这样做:
cat /proc/loadavg2.28 1.17 0.46 3/85 2677
负载表示系统被使用的程度。第一个是最高利用率,接着一个是平均利用率,最后是最低利用率。平均值是最有用的。接着显示的是正在运行的任务数和总任务数,最后是上次使用的进程号。cat命令显示的空格分割符都是nul分隔符。
以上介绍是命令行下的监测方法,GKrellM是一个支持/proc 文件系统的系统监视器。工作在KDE桌面环境。它可以显示主机名,时间/日期,cpu占用率(支持多处理器和主板温度探测),磁盘使用状况;互联网使用监测,可以监视ftp,http..连接状态,使用不同颜色来区分系统的输入/输出数据,还有电子邮件检测等。GkrellM除了支持Linux系统外还包括:FreeBSD、Mac OS X、NetBSD / OpenBSD、Solaris。
1、 系统要求:
硬件: 中央处理器:兼容 Intel X86处理器PentiumII 400 以上 ,64 兆(推荐128兆)内存,350兆以上硬盘空间 ,显示内存4兆。
软件: 内核版本 基于2.4或以上 ,KDE3.0以上,X Window System XFree86 3.6.x 以上,桌面分辨率 至少为640×480 ,桌面颜色至少6万5千色(16位元)。
下载:根据你的Linux发行版本下载相关软件,笔者使用的是:gkrellm-0.10.5-1.i386.rpm (Redhat Lnux 8.0) 软件主页:http://web.wt.net/~billw/gkrellm/gkrellm.html
2、 安装前的准备工作:
GKrellM是用Perl语言写成的,并且使用到gdk、gtk及glib,服务器中已经含有下列的软件:perl(perl-5.0xx以上) gdk(1.1.3-xx以上) glib 2.0、snmp。
确定的方法就以RPM来确认吧:
rpm -qa | grep perl
rpm -qa | grep glib
rpm -qa | grep gdk
rpm -qa | grep gtk
rpm -qa | grep snmp
3 、 安装:
rpm -ivh gkrellm-0.10.5-1.i386.rpm
4、建立快捷方式
为了使用方便在桌面建立一个快捷方式,在桌面单击鼠标右键选择新建"应用程序链接"在执行菜单内加入/usr/bin/ gkrellm 。
5、运行软件:
./usr/bin/gkrellm
运行GkrellM软件进行实时监测前按"F 1"键根据你的Linux服务器硬件、网络情况进行配置以显示你关心的数据,见图-2 :
图-2 软件运行前的配置
从图-1也可以看到GkrellM软件能够监测几乎所有的Linux系统的关键部件,配置结束后用鼠标点击"Apply"按钮,GkrellM马上开始运行,运行结果见图-2。
图-3 GkrellM监测的Linux服务器情况
从图-3中我们可以清楚的实时监测Linux服务器的运行时间、每个CPU的负载、温度、Proc文件系统使用情况、系统温度、CPU风扇转速、CPU核心电压,输入电压、硬盘使用情况、网络接口(网卡和Modem)状况、内存(包括虚拟内存)、/usr目录、是否有新邮件等使用情况。GkrellM的确是网管人员的好帮手╋通过它基本上所有进出流量、主机信息网络、网络接口状态都无所遁形,而且它的系统资源占用比较低。另外GkrellM还支持插件和更换显示颜色的功能。不过笔者不推荐你使用这些功能,GkrellM的某项插件存在安全漏洞、更换显示颜色也会占用系统资源。
总结
网络服务器的资料总流量(网卡的资料传送总数),以及CPU使用率和特殊服务等的封包传送率(或者说是流量),都是网络管理人员所必须要注意的事项,因为当主机的CPU使用率过高的时候,系统可能呈现不稳定的状态,而当流量发生异常变化的时候,就需要注意可能有黑客在尝试窃取我们的信息。另外在网络管理方面,有必要了解我们Linux服务器的网络流量状态,并视流量来加以限制或者是加大带宽。