轉自:http://www.kuqin.com/shuoit/20140219/338066.html
對於系統和網路管理員來說每天監控和除錯Linux系統的效能問題是一項繁重的工作。在IT領域作為一名Linux系統的管理員工作5年後,我逐漸 認識到監控和保持系統啟動並執行是多麼的不容易。基於此原因,我們已編寫了最常使用的18個命令列工具列表,這些工具將有助於每個Linux/Unix 系統管理員的工作。這些命令列工具可以在各種Linux系統下使用,可以用於監控和查詢產生效能問題的原因。這個命令列工具列表提供了足夠的工具,您可以 挑選適用於您的監控場景的工具。
1.Top-Linux程式監控
Linux下的Top命令是一個效能監控程式,許多系統管理員常常用它來監控Linux效能,在許多Linux或者類Unix作業系統裡都有這個命令。Top命令用於按一定的順序顯示所有正在執行而且處於活動狀態的實時程式,而且會定期更新顯示結果。這條命令顯示了CPU的使用率、記憶體使用率、交換記憶體使用大小、快取記憶體使用大小、緩衝區使用大小,程式PID、所使用命令以及其他。它還可以顯示正在執行程式的記憶體和CPU佔用多的情況。對系統管理員來說,top命令式是一個非常有用的,它可用於監控系統並在需要的時候採取正確的處理動作。讓我們看看實際中的top命令。
#top
2. VmStat – 虛擬記憶體統計
Linux 的VmStat命令用於顯示虛擬記憶體、核心執行緒、磁碟、系統程式、I/O 塊、中斷、CPU 活動等的統計資訊。預設情況下, vmstat 命令在 Linux 系統下不可用,你需要安裝一個包含了 vmstat 程式的sysstat軟體包。命令格式的常見用法是:
#vmstat procs-----------memory-------------swap-------io------system-------cpu----- rbswpdfreeinactactivesisobiboincsussyidwast 10081042097380706280011548979169030
3.Lsof-列出開啟的檔案
在許多Linux或者類Unix系統裡都有lsof命令,它常用於以列表的形式顯示所有開啟的檔案和程式。開啟的檔案包括磁碟檔案、網路套接字、管道、裝置和程式。使用這條命令的主要情形之一就是在無法掛載磁碟和顯示正在使用或者開啟某個檔案的錯誤資訊的時候。使用這條命令,你可以很容易地看到正在使用哪個檔案。這條命令最常用的格式如下:
#lsof COMMANDPIDUSERFDTYPEDEVICESIZENODENAME init1rootcwdDIR104,240962/ init1rootrtdDIR104,240962/ init1roottxtREG104,23865217710339/sbin/init init1rootmemREG104,2129900196453/lib/ld-2.5.so init1rootmemREG104,21693812196454/lib/libc-2.5.so init1rootmemREG104,220668196479/lib/libdl-2.5.so init1rootmemREG104,2245376196419/lib/libsepol.so.1 init1rootmemREG104,293508196431/lib/libselinux.so.1 init1root10uFIFO0,17953/dev/initctl
4.Tcpdump-網路包分析器
Tcpdump是最廣泛使用的網路包分析器或者包監控程式之一,它用於捕捉或者過濾網路上指定介面上接收或者傳輸的TCP/IP包。它還有一個選項用於把捕捉到的包儲存到檔案裡,以便以後進行分析。在幾乎所有主要的Linux釋出裡,tcpdump都可以使用。
#tcpdump-ieth0tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecode listeningoneth0,link-typeEN10MB(Ethernet),capturesize96bytes 22:08:59.617628IPtecmint.com.ssh>115.113.134.3.static-mumbai.vsnl.net.in.28472:P2532133365:2532133481(116)ack3561562349win9648 22:09:07.653466IPtecmint.com.ssh>115.113.134.3.static-mumbai.vsnl.net.in.28472:P116:232(116)ack1win9648 22:08:59.617916IP115.113.134.3.static-mumbai.vsnl.net.in.28472>tecmint.com.ssh:.ack116win64347
5.Netstat-網路狀態統計
Netstat是一個用於監控進出網路的包和網路介面統計的命令列工具。它是一個非常有用的工具,系統管理員可以用來監控網路效能,定位並解決網路相關問題。
#netstat-a|moreActiveInternetconnections(serversandestablished) ProtoRecv-QSend-QLocalAddressForeignAddressState tcp00*:mysql*:*LISTEN tcp00*:sunrpc*:*LISTEN tcp00*:realm-rusd*:*LISTEN tcp00*:ftp*:*LISTEN tcp00localhost.localdomain:ipp*:*LISTEN tcp00localhost.localdomain:smtp*:*LISTEN tcp00localhost.localdomain:smtplocalhost.localdomain:42709TIME_WAIT tcp00localhost.localdomain:smtplocalhost.localdomain:42710TIME_WAIT tcp00*:http*:*LISTEN tcp00*:ssh*:*LISTEN tcp00*:https*:*LISTEN
6. Htop – Linux程式監控
Htop是一個非常高階的互動式的實時linux程式監控工具。 它和top命令十分相似,但是它具有更豐富的特性,例如使用者可以友好地管理程式,快捷鍵,垂直和水平方式顯示程式等等。 Htop是一個第三方工具,它不包含在linux系統中,你需要使用YUM包管理工具去安裝它。 關於安裝的更多資訊,請閱讀下文.
#htop
7.Iotop-監控Linux磁碟I/O
Iotop命令同樣也非常類似於top命令和Htop程式,不過它具有監控並顯示實時磁碟I/O和程式的統計功能。在查詢具體程式和大量使用磁碟讀寫程式的時候,這個工具就非常有用。
#iotop
8.Iostat-輸入/輸出統計
Iostat是一個用於收集顯示系統儲存裝置輸入和輸出狀態統計的簡單工具。這個工具常常用來追蹤儲存裝置的效能問題,其中儲存裝置包括裝置、本地磁碟,以及諸如使用NFS等的遠端磁碟。
#iostat Linux2.6.18-238.9.1.el5(tecmint.com)09/13/2012 avg-cpu:%user%nice%system%iowait%steal%idle 2.603.651.044.290.0088.42 Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtn cciss/c0d017.79545.80256.52855159769401914750 cciss/c0d0p10.000.000.0054593518 cciss/c0d0p216.45533.97245.18836631746384153384 cciss/c0d0p30.635.583.9787376506215544 cciss/c0d0p40.000.000.0080 cciss/c0d0p50.633.795.0359367787882528 cciss/c0d0p60.082.462.3438477713659776
9.IPTraf-實時區域網IP監控
IPTraf是一個在Linux控制檯執行的、開放原始碼的實時網路(區域網)監控應用。它採集了大量資訊,比如通過網路的IP流量監控,包括TCP標記、ICMP詳細資訊、TCP/UDP流量分離、TCP連線包和位元組數。同時還採集有關介面狀態的常見資訊和詳細資訊:TCP、UDP、IP、ICMP、非IP,IP校驗和錯誤,介面活動等。
10. psacct 或者 acct – 監視使用者活動
psacct或者acct工具用於監視系統裡每個使用者的活動狀況。這兩個服務程式執行在後臺,它們對系統上執行的每個使用者的所有活動進行近距離監視,同時還監視這些活動所使用的資源情況。
系統管理員可以使用這兩個工具跟蹤每個使用者的活動,比如使用者正在做什麼,他們提交了那些命令,他們使用了多少資源,他們在系統上持續了多長時間等等。
11.Monit – Linux程式和服務監控工具
Monit是一個免費的開源軟體,也是一個基於網路的程式監控工具。它能自動監控和管理系統程式,程式,檔案,資料夾,許可權,總和驗證碼和檔案系統。
這個軟體能監控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH這樣的服務。你可以通過命令列或者這個軟體提供的網路藉口來檢視系統狀態。
12.NetHogs-監視每個程式使用的網路頻寬
NetHogs是一個開放源原始碼的很小程式(與Linux下的top命令很相似),它密切監視著系統上每個程式的網路活動。同時還追蹤著每個程式或者應用所使用的實時網路頻寬。
13.iftop-監視網路頻寬
iftop是另一個在控制檯執行的開放原始碼系統監控應用,它顯示了系統上通過網路介面的應用網路頻寬使用(源主機或者目的主機)的列表,這個列表定期更新。iftop用於監視網路的使用情況,而‘top’用於監視CPU的使用情況。iftop是‘top’工具系列中的一員,它用於監視所選介面,並顯示兩個主機間當前網路頻寬的使用情況。
14 Monitorix-系統和網路監控
Monitorix 是一個免費的輕量級應用工具,它的設計初衷是執行和監控Linux/Unix伺服器系統和資源等。它有一個HTTP 網路伺服器,這個伺服器有規律的收集系統和網路的資訊並以圖形化的形式展示出來。它監控系統的平均負載和使用,記憶體分配、磁碟健康狀況、系統服務、網路端 口、郵件統計(Sendmail,Postfix,Dovecot等),MySQL統計,等等。它就是用來監控系統的總體效能,幫助發現失誤、瓶頸和異常 活動的。
15. Arpwatch – 乙太網活動監視器
Arpwatch被設計用來監控Linux上的乙太網地址解析 (MAC和IP地址的變化)。他在一段時間內持續監控乙太網活動並輸出IP和MAC地址配對變動的日誌。它還可以向管理員傳送郵件通知,對地址配對的增改發出警告。這對於檢測網路上的ARP攻擊很有用。
16. Suricata – 網路安全監控
Suricata是一個開源的高效能網路安全、入侵檢測和反監測工具,可以執行Linux、FreeBSD和Windows上。非營利組織OISF(Open Information Security Foundation)開發並擁有其版權。
17. VnStat PHP – 網路流量監控
VnStat PHP是流行網路工具”vnstat”的基於web的前端呈現。VnStat PHP將網路使用情況呈現在漂亮的圖形介面中。他可以顯示以小時、日、月計的上傳和下載流量並輸出總結報告。
18. Nagios – 網路/伺服器監控
Nagios是領先而強大的開源監控系統,他可以讓網路/系統管理員在問題影響到正常的業務之前發現並解決它們。有了Nagios系統,管理員可以 在單個視窗內遠端檢測Linux、Windows、開關、路由器和印表機。它可以危險警告並指出系統/伺服器是否有異常,這可以間接幫助你在問題發生之前 採取搶救措施。