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服務器的網絡流量狀態,並視流量來加以限制或者是加大帶寬。