每個系統管理員都要知道的 30 個 Linux 系統監控工具
11. netstat - Linux 網路統計監控工具
netstat
命令顯示網路連線、路由表、介面統計、偽裝連線和多播連線等資訊。
# netstat -tulpn
# netstat -nat
12. ss - 網路統計
ss
命令用於獲取套接字統計資訊。它可以顯示類似於 netstat
的資訊。不過 netstat
幾乎要過時了, ss
命令更具優勢。要顯示所有 TCP 或 UDP 套接字:
# ss -t -a
或
# ss -u -a
顯示所有帶有 SELinux 安全上下文Security Context 的 TCP 套接字:
# ss -t -a -Z
請參閱以下關於 ss
和 netstat
命令的資料:
13. iptraf - 獲取實時網路統計資訊
iptraf
命令是一個基於 ncurses 的互動式 IP 網路監控工具。它可以生成多種網路統計資訊,包括 TCP 資訊、UDP 計數、ICMP 和 OSPF 資訊、乙太網負載資訊、節點統計資訊、IP 校驗錯誤等。它以簡單的格式提供了以下資訊:
- 基於 TCP 連線的網路流量統計
- 基於網路介面的 IP 流量統計
- 基於協議的網路流量統計
- 基於 TCP/UDP 埠和資料包大小的網路流量統計
- 基於二層地址的網路流量統計
圖 02:常規介面統計:基於網路介面的 IP 流量統計
圖 03:基於 TCP 連線的網路流量統計
14. tcpdump - 詳細的網路流量分析
tcpdump
# tcpdump -i eth1 'udp port 53'
檢視所有去往和來自埠 80 的 IPv4 HTTP 資料包,僅列印真正包含資料的包,而不是像 SYN、FIN 和僅含 ACK 這類的資料包,請輸入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
顯示所有目標地址為 202.54.1.5 的 FTP 會話,請輸入:
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
列印所有目標地址為 192.168.1.5 的 HTTP 會話:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用 wireshark 檢視檔案的詳細內容,請輸入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
15. iotop - I/O 監控
iotop
命令利用 Linux 核心監控 I/O 使用情況,它按程序或執行緒的順序顯示 I/O 使用情況。
$ sudo iotop
輸出示例:
16. htop - 互動式的程序檢視器
htop
是一款免費並開源的基於 ncurses 的 Linux 程序檢視器。它比 top
命令更簡單易用。您無需使用 PID、無需離開 htop
介面,便可以殺掉程序或調整其排程優先順序。
$ htop
輸出示例:
17. atop - 高階版系統與程序監控工具
atop
是一個非常強大的互動式 Linux 系統負載監控器,它從效能的角度顯示最關鍵的硬體資源資訊。您可以快速檢視 CPU、記憶體、磁碟和網路效能。它還可以從程序的級別顯示哪些程序造成了相關 CPU 和記憶體的負載。
$ atop
18. ac 和 lastcomm
您一定需要監控 Linux 伺服器上的程序和登入活動吧。 psacct
或 acct
軟體包中包含了多個用於監控程序活動的工具,包括:
ac
命令:顯示有關使用者連線時間的統計資訊accton
命令:開啟或關閉程序賬號記錄功能sa
命令:程序賬號記錄資訊的摘要
19. monit - 程序監控器
monit
是一個免費且開源的程序監控軟體,它可以自動重啟停掉的服務。您也可以使用 Systemd、daemontools 或其他類似工具來達到同樣的目的。 本教程演示如何在 Debian 或 Ubuntu Linux 上安裝和配置 monit 作為程序監控器 。
20. NetHogs - 找出佔用頻寬的程序
NetHogs 是一個輕便的網路監控工具,它按照程序名稱(如 Firefox、wget 等)對頻寬進行分組。如果網路流量突然爆發,啟動 NetHogs,您將看到哪個程序(PID)導致了頻寬激增。
$ sudo nethogs
21. iftop - 顯示主機上網路介面的頻寬使用情況
iftop
命令監聽指定介面(如 eth0)上的網路通訊情況。 它顯示了一對主機的頻寬使用情況。
$ sudo iftop
22. vnstat - 基於控制檯的網路流量監控工具
vnstat
是一個簡單易用的基於控制檯的網路流量監視器,它為指定網路介面保留每小時、每天和每月網路流量日誌。
$ vnstat
相關連結:
23. nmon - Linux 系統管理員的調優和基準測量工具
nmon
是 Linux 系統管理員用於效能調優的利器,它在命令列顯示 CPU、記憶體、網路、磁碟、檔案系統、NFS、消耗資源最多的程序和分割槽資訊。
$ nmon
24. glances - 密切關注 Linux 系統
glances
是一款開源的跨平臺監控工具。它在小小的螢幕上提供了大量的資訊,還可以工作於客戶端-伺服器模式下。
$ glances
25. strace - 檢視系統呼叫
想要跟蹤 Linux 系統的呼叫和訊號嗎?試試 strace
命令吧。它對於除錯網頁伺服器和其他伺服器問題很有用。瞭解如何利用其 追蹤程序 並檢視它在做什麼。
26. /proc 檔案系統 - 各種核心資訊
/proc
檔案系統提供了不同硬體裝置和 Linux 核心的詳細資訊。更多詳細資訊,請參閱 Linux 核心 /proc 文件。常見的 /proc
例子:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
27. Nagios - Linux 伺服器和網路監控
Nagios 是一款普遍使用的開源系統和網路監控軟體。您可以輕鬆地監控所有主機、網路裝置和服務,當狀態異常和恢復正常時它都會發出警報通知。 FAN 是“全自動 Nagios”的縮寫。FAN 的目標是提供包含由 Nagios 社群提供的大多數工具包的 Nagios 安裝。FAN 提供了標準 ISO 格式的 CD-Rom 映象,使安裝變得更加容易。除此之外,為了改善 Nagios 的使用者體驗,發行版還包含了大量的工具。
28. Cacti - 基於 Web 的 Linux 監控工具
Cacti 是一個完整的網路圖形化解決方案,旨在充分利用 RRDTool 的資料儲存和圖形功能。Cacti 提供了快速輪詢器、高階圖形模板、多種資料採集方法和使用者管理功能。這些功能被包裝在一個直觀易用的介面中,確保可以實現從區域網到擁有數百臺裝置的複雜網路上的安裝。它可以提供有關網路、CPU、記憶體、登入使用者、Apache、DNS 伺服器等的資料。瞭解如何在 CentOS / RHEL 下 安裝和配置 Cacti 網路圖形化工具 。
29. KDE 系統監控器 - 實時系統報告和圖形化顯示
KSysguard 是 KDE 桌面的網路化系統監控程式。這個工具可以通過 ssh 會話執行。它提供了許多功能,比如可以監控本地和遠端主機的客戶端-伺服器模式。前端圖形介面使用感測器來檢索資訊。感測器可以返回簡單的值或更復雜的資訊,如表格。每種型別的資訊都有一個或多個顯示介面,並被組織成工作表的形式,這些工作表可以分別儲存和載入。所以,KSysguard 不僅是一個簡單的工作管理員,還是一個控制大型伺服器平臺的強大工具。
圖 05:KDE System Guard {圖片來源:維基百科}
30. GNOME 系統監控器
系統監控程式能夠顯示系統基本資訊,並監控系統程序、系統資源使用情況和檔案系統。您還可以用其修改系統行為。雖然不如 KDE System Guard 強大,但它提供的基本資訊對新使用者還是有用的:
- 顯示關於計算機硬體和軟體的各種基本資訊
- Linux 核心版本
- GNOME 版本
- 硬體
- 安裝的記憶體
- 處理器和速度
- 系統狀況
- 可用磁碟空間
- 程序
- 記憶體和交換空間
- 網路使用情況
- 檔案系統
- 列出所有掛載的檔案系統及其基本資訊
圖 06:Gnome 系統監控程式
福利:其他工具
更多工具:
- nmap - 掃描伺服器的開放埠
- lsof - 列出開啟的檔案和網路連線等
- ntop 基於網頁的工具 -
ntop
是檢視網路使用情況的最佳工具,與top
命令之於程序的方式類似,即網路流量監控工具。您可以檢視網路狀態和 UDP、TCP、DNS、HTTP 等協議的流量分發。 - Conky - X Window 系統下的另一個很好的監控工具。它具有很高的可配置性,能夠監視許多系統變數,包括 CPU 狀態、記憶體、交換空間、磁碟儲存、溫度、程序、網路介面、電池、系統訊息和電子郵件等。
- GKrellM - 它可以用來監控 CPU 狀態、主記憶體、硬碟、網路介面、本地和遠端郵箱及其他資訊。
- mtr -
mtr
將traceroute
和ping
程式的功能結合在一個網路診斷工具中。 - vtop - 圖形化活動監控終端