88個 Linux 系統管理員必備的監控工具
隨著互聯網行業的不斷發展,各種監控工具多得不可勝數。這裏列出網上最全的監控工具。讓你可以擁有超過80種方式來管理你的機器。在本文中,我們主要包括以下方面:
-
命令行工具
-
網絡相關內容
-
系統相關的監控工具
-
日誌監控工具
-
基礎設施監控工具
監控和調試性能問題是一個艱巨的任務,但用對了正確的工具有時也是很容易的。下面是一些你可能聽說過的工具,也有可能沒有聽說過——何不趕快開始試試?
八大系統監控工具
1. top
這是一個被預裝在許多 UNIX 系統中的小工具。當你想要查看在系統中運行的進程或線程時:top 是一個很好的工具。你可以對這些進程以不同的方式進行排序,默認是以 CPU 進行排序的。
2. htop
htop 實質上是 top 的一個增強版本。它更容易對進程排序。它看起來上更容易理解,並且已經內建了許多通用操作。它也是完全交互式的。
3. atop
atop 和 top,htop 非常相似,它也能監控所有進程,但不同於 top 和 htop 的是,它可以按日記錄進程的日誌供以後分析。它也能顯示所有進程的資源消耗。它還會高亮顯示已經達到臨界負載的資源。
4. apachetop
apachetop 會監控 apache 網絡服務器的整體性能。它主要是基於 mytop。它會顯示當前的讀取進程、寫入進程的數量以及請求進程的總數。
5. ftptop
ftptop 給你提供了當前所有連接到 ftp 服務器的基本信息,如會話總數,正在上傳和下載的客戶端數量以及客戶端是誰。
6. mytop
mytop 是一個很簡潔的工具,用於監控 mysql 的線程和性能。它能讓你實時查看數據庫以及正在處理哪些查詢。
7. powertop
powertop 可以幫助你診斷與電量消耗和電源管理相關的問題。它也可以幫你進行電源管理設置,以實現對你服務器最有效的配置。你可以使用 tab 鍵切換選項卡。
8. iotop
iotop 用於檢查 I/O 的使用情況,並為你提供了一個類似 top 的界面來顯示。它按列顯示讀和寫的速率,每行代表一個進程。當發生交換或 I/O 等待時,它會顯示進程消耗時間的百分比。
與網絡相關的監控
9. ntopng
ntopng 是 ntop 的升級版,它提供了一個能通過瀏覽器進行網絡監控的圖形用戶界面。它還有其他用途,如:地理定位主機,顯示網絡流量和 ip 流量分布並能進行分析。
10. iftop
iftop 類似於 top,但它主要不是檢查 cpu 的使用率而是監聽所選擇網絡接口的流量,並以表格的形式顯示當前的使用量。像“為什麽我的網速這麽慢呢?!”這樣的問題它可以直接回答。
11. jnettop
jnettop 以相同的方式來監測網絡流量但比 iftop 更形象。它還支持自定義的文本輸出,並能以友好的交互方式來深度分析日誌。
12. bandwidthd
BandwidthD 可以跟蹤 TCP/IP 網絡子網的使用情況,並能在瀏覽器中通過 png 圖片形象化地構建一個 HTML 頁面。它有一個數據庫系統,支持搜索、過濾,多傳感器和自定義報表。
13. EtherApe
EtherApe 以圖形化顯示網絡流量,可以支持更多的節點。它可以捕獲實時流量信息,也可以從 tcpdump 進行讀取。也可以使用 pcap 格式的網絡過濾器來顯示特定信息。
14. ethtool
ethtool 用於顯示和修改網絡接口控制器的一些參數。它也可以用來診斷以太網設備,並獲得更多的統計數據。
15. NetHogs
NetHogs 打破了網絡流量按協議或子網進行統計的慣例,它以進程來分組。所以,當網絡流量猛增時,你可以使用 NetHogs 查看是由哪個進程造成的。
16. iptraf
iptraf 收集的各種指標,如 TCP 連接數據包和字節數,端口統計和活動指標,TCP/UDP 通信故障,站內數據包和字節數。
17. ngrep
ngrep 就是網絡層的 grep。它使用 pcap ,允許通過指定擴展正則表達式或十六進制表達式來匹配數據包。
18. MRTG
MRTG 最初被開發來監控路由器的流量,但現在它也能夠監控網絡相關的東西。它每五分鐘收集一次,然後產生一個 HTML 頁面。它還具有發送郵件報警的能力。
19. bmon
bmon 能監控並幫助你調試網絡。它能捕獲網絡相關的統計數據,並以友好的方式進行展示。你還可以與 bmon 通過腳本進行交互。
20. traceroute
traceroute 是一個內置工具,能顯示路由和測量數據包在網絡中的延遲。
21. IPTState
IPTState 可以讓你觀察流量是如何通過 iptables,並通過你指定的條件來進行排序。該工具還允許你從 iptables 的表中刪除狀態信息。
22. darkstat
darkstat 能捕獲網絡流量並計算使用情況的統計數據。該報告保存在一個簡單的 HTTP 服務器中,它為你提供了一個非常棒的圖形用戶界面。
23. vnStat
vnStat 是一個網絡流量監控工具,它的數據統計是由內核進行提供的,其消耗的系統資源非常少。系統重新啟動後,它收集的數據仍然存在。有藝術感的系統管理員可以使用它的顏色選項。
24. netstat
netstat 是一個內置的工具,它能顯示 TCP 網絡連接,路由表和網絡接口數量,被用來在網絡中查找問題。
25. ss
比起 netstat,使用 ss 更好。ss
命令能夠顯示的信息比 netstat 更多,也更快。如果你想查看統計結果的總信息,你可以使用命令ss -s
。
26. nmap
Nmap 可以掃描你服務器開放的端口並且可以檢測正在使用哪個操作系統。但你也可以將其用於 SQL 註入漏洞、網絡發現和滲透測試相關的其他用途。
27. MTR
MTR 將 traceroute 和 ping 的功能結合到了一個網絡診斷工具上。當使用該工具時,它會限制單個數據包的跳數,然後監視它們的到期時到達的位置。然後每秒進行重復。
28. Tcpdump
Tcpdump 將按照你在命令行中指定的表達式輸出匹配捕獲到的數據包的信息。你還可以將此數據保存並進一步分析。
29. Justniffer
Justniffer 是 tcp 數據包嗅探器。使用此嗅探器你可以選擇收集低級別的數據還是高級別的數據。它也可以讓你以自定義方式生成日誌。比如模仿 Apache 的訪問日誌。
與系統有關的監控
30. nmon
nmon 將數據輸出到屏幕上的,或將其保存在一個以逗號分隔的文件中。你可以查看 CPU,內存,網絡,文件系統,前列 進程。數據也可以被添加到 RRD 數據庫中用於進一步分析。
31. conky
Conky 能監視很多的操作系統數據。它支持 IMAP 和 POP3, 甚至許多流行的音樂播放器!出於方便不同的人,你可以使用自己的 Lua 腳本或程序來進行擴展。
32. Glances
使用 Glances 監控你的系統,其旨在使用最小的空間為你呈現最多的信息。它可以在客戶端/服務器端模式下運行,也有遠程監控的能力。它也有一個 Web 界面。
33. saidar
Saidar 是一個非常小的工具,為你提供有關系統資源的基礎信息。它將系統資源在全屏進行顯示。重點是 saidar 會盡可能的簡化。
34. RRDtool
RRDtool 是用來處理 RRD 數據庫的工具。RRDtool 旨在處理時間序列數據,如 CPU 負載,溫度等。該工具提供了一種方法來提取 RRD 數據並以圖形界面顯示。
35. monit
如果出現故障時,monit 有發送警報以及重新啟動服務的功能。它可以對各種數據進行檢查,你可以為 monit 寫一個腳本,它有一個 Web 用戶界面來分擔你眼睛的壓力。
36. Linux process explorer
Linux process explorer 是類似 OSX 或 Windows 的活動監視器。它比 top 或 ps 的使用範圍更廣。你可以查看每個進程的內存消耗以及 CPU 的使用情況。
37. df
df 是 disk free 的縮寫,它是所有 UNIX 系統預裝的程序,用來顯示用戶有訪問權限的文件系統的可用磁盤空間。
38. discus
discus 類似於 df,它的目的是通過使用更吸引人的特性,如顏色,圖形和數字來對 df 進行改進。
39. xosview
xosview 是一款經典的系統監控工具,它給你提供包括 IRQ 在內的各個不同部分的簡單總覽。
40. Dstat
dstat 旨在替代 vmstat,iostat,netstat 和 ifstat。它可以讓你查實時查看所有的系統資源。這些數據可以導出為 CSV。最重要的是 dstat 允許使用插件,因此其可以擴展到更多領域。
41. Net-SNMP
SNMP 即“簡單網絡管理協議”,Net-SNMP 工具套件使用該協議可幫助你收集服務器的準確信息。
42. incron
incron 允許你監控一個目錄樹,然後對這些變化采取措施。如果你想在目錄‘a
’中出現新文件時,將其復制到目錄‘b
’,這正是 incron 能做的。
43. monitorix
Monitorix 是輕量級的系統監控工具。它可以幫助你監控單獨一臺機器,並為你提供豐富的指標。它也有一個內置的 HTTP 服務器,來查看圖表和所有指標的報告。
44. vmstat
vmstat(virtual memory statistics)是一個小型內置工具,能監控和顯示機器的內存。
45. uptime
這個小程序能快速顯示你機器運行了多久,目前有多少用戶登錄和系統過去1分鐘,5分鐘和15分鐘的平均負載。
46. mpstat
mpstat 是一個內置的工具,能監視 cpu 的使用情況。最常見的使用方法是mpstat -P ALL
,它給你提供 cpu 的使用情況。你也可以間歇性地更新 cpu 的使用情況。
47. pmap
pmap 是一個內置的工具,報告一個進程的內存映射。你可以使用這個命令來找出導致內存瓶頸的原因。
48. ps
該命令將給你當前所有進程的概述。你可以使用ps -A
命令查看所有進程。
49. sar
sar 是 sysstat 包的一部分,可以幫助你收集、報告和保存不同系統的指標。使用不同的參數,它會給你提供 CPU、 內存和 I/O 使用情況及其他東西。
50. collectl
類似於 sar,collectl 收集你機器的性能指標。默認情況下,顯示 cpu、網絡和磁盤統計數據,但它實際收集了很多信息。與 sar 不同的是,collectl 能夠處理比秒更小的單位,它可以被直接送入繪圖工具並且 collectl 的監控過程更廣泛。
51. iostat
iostat 也是 sysstat 包的一部分。此命令用於監控系統的輸入/輸出。其報告可以用來進行系統調優,以更好地調節你機器上硬盤的輸入/輸出負載。
52. free
這是一個內置的命令,用於顯示你機器上可用的內存大小以及已使用的內存大小。它還可以顯示某時刻內核所使用的緩沖區大小。
53. /proc 文件系統
proc 文件系統可以讓你查看內核的統計信息。從這些統計數據可以得到你機器上不同硬件設備的詳細信息。看看這個 proc 文件統計的完整列表。
54. GKrellM
GKrellm 是一個圖形應用程序,用來監控你硬件的狀態信息,像CPU,內存,硬盤,網絡接口以及其他的。它也可以監視並啟動你所選擇的郵件閱讀器。
55. Gnome 系統監控器
Gnome 系統監控器是一個基本的系統監控工具,其能通過一個樹狀結構來查看進程的依賴關系,能殺死進程及調整進程優先級,還能以圖表形式顯示所有服務器的指標。
日誌監控工具
56. GoAccess
GoAccess 是一個實時的網絡日誌分析器,它能分析 apache, nginx 和 amazon cloudfront 的訪問日誌。它也可以將數據輸出成 HTML,JSON 或 CSV 格式。它會給你一個基本的統計信息、訪問量、404 頁面,訪客位置和其他東西。
57. Logwatch
Logwatch 是一個日誌分析系統。它通過分析系統的日誌,並為你所指定的部分創建一個分析報告。它每天給你一個報告,以便讓你花費更少的時間來分析日誌。
58. Swatch
像 Logwatch 一樣,Swatch 也監控你的日誌,但不是給你一個報告,它會匹配你定義的正則表達式,當匹配到後會通過郵件或控制臺通知你。它可用於檢測入侵者。
59. MultiTail
MultiTail 可幫助你在多個窗口之下監控日誌文件。你可以將這些日誌文件合並到一個窗口。它可以通過正則表達式的幫助,使用不同的顏色來顯示日誌文件以方便你閱讀。
系統工具
60. acct or psacct
acct 也稱 psacct(取決於如果你使用 apt-get 還是 yum)可以監控所有用戶執行的命令,包括 CPU 時間和內存占用。一旦安裝完成後你可以使用命令sa
來查看統計。
61. whowatch
類似 acct,這個工具監控系統上所有的用戶,並允許你實時查看他們正在執行的命令及運行的進程。它將所有進程以樹狀結構輸出,這樣你就可以清楚地看到到底發生了什麽。
62. strace
strace 被用於診斷、調試和監控程序之間的相互調用過程。最常見的做法是用 strace 打印系統調用的程序列表,其可以看出程序是否像預期那樣被執行了。
63. DTrace
DTrace 可以說是 strace 的大哥。它動態地跟蹤與檢測代碼實時運行的指令。它允許你深入分析其性能和診斷故障。但是,它並不簡單,關於這個話題有1200本書之多。
64. webmin
Webmin 是一個基於 Web 的系統管理工具。它不需要手動編輯 UNIX 配置文件,可以讓你遠程管理系統。它有一對監控模塊用於連接它。
65. stat
Stat 是一個內置的工具,用於顯示文件和文件系統的狀態信息。它會顯示文件何時被修改、訪問或更改。
66. ifconfig
ifconfig 是一個內置的工具,用於配置網絡接口。大多數網絡監控工具背後都使用 ifconfig 將網卡設置成混亂模式來捕獲所有的數據包。你可以手動執行ifconfig eth0 promisc
進入混亂模式,使用ifconfig eth0 -promisc
返回正常模式。
67. ulimit
ulimit 是一個內置的工具,可監控系統資源,並可以限制任何監控資源不得超標。比如做一個 fork 炸彈,如果使用 ulimit 正確配置了將完全不受影響。
68. cpulimit
CPULimit 是一個小工具,用於監控並限制進程對 CPU 的使用率。其特別可以用於將批處理作業對 CPU 的使用率保持在一定範圍。
69. lshw
lshw 是一個小的內置工具,能提取關於本機硬件配置的詳細信息。它可以輸出 CPU 版本和主板配置。
70. w
w 是一個內置命令,用於顯示當前登錄用戶的信息及他們所運行的進程。
71. lsof
lsof 是一個內置的工具,可讓你列出所有打開的文件和網絡連接。從那裏你可以看到文件是由哪個進程打開的,基於進程名可找到其特定的用戶,或殺死屬於某個用戶的所有進程。
基礎架構監控工具
72. Server Density
我們的 服務器監控工具 它有一個 web 界面,使你可以進行報警設置並可以通過圖表來查看所有系統的網絡指標。你還可以設置監控的網站,無論是否在線。Server Density 允許你設置用戶的權限,你可以根據我們的插件或 api 來擴展你的監控。該服務已經支持 Nagios 的插件了。
73. OpenNMS
OpenNMS 主要有四個功能區:事件管理和通知;發現和配置;服務監控和數據收集。其設計為可被在多種網絡環境中定制。
74. SysUsage
SysUsage 通過 Sar 和其他系統命令持續監控你的系統。一旦達到閾值它也可以進行報警通知。SysUsage 本身也可以收集所有的統計信息並存儲在一個地方。它有一個 Web 界面可以讓你查看所有的統計數據。
75. brainypdm
brainypdm 是一個數據管理和監控工具,它能收集來自 nagios 或其它常規來源的數據並以圖表顯示。它是跨平臺的,其基於 Web 並可自定義圖形。
76. PCP
PCP 可以收集來自多個主機的指標,並且效率很高。它也有一個插件框架,所以你可以讓它收集對你很重要的指標。你可以通過任何一個 Web 界面或 GUI 訪問圖形數據。它比較適合大型監控系統。
77. KDE 系統守護
這個工具既是一個系統監控器也是一個任務管理器。你可以通過工作表來查看多臺機器的服務指標,如果需要殺死一個進程或者你需要啟動一個進程,它可以在 KDE 系統守護中來完成。
78. Munin
Munin 既是一個網絡也是系統監控工具,當一個指標超出給定的閾值時它會提供報警機制。它運用 RRDtool 創建圖表,並且它也有 Web 界面來顯示這些圖表。它更強調的是即插即用的功能並且有許多可用的插件。
79. Nagios
Nagios 是系統和網絡監控工具,可幫助你監控多臺服務器。當發生錯誤時它也有報警功能。它的平臺也有很多的插件。
80. Zenoss
Zenoss 提供了一個 Web 界面,使你可以監控所有的系統及網絡指標。此外,它能自動發現網絡資源和修改網絡配置。並且會提醒你采取行動,它也支持 Nagios 的插件。
81. Cacti
(和上一個一樣!) Cacti 是一個網絡圖形解決方案,其使用 RRDtool 進行數據存儲。它允許用戶在預定的時間間隔進行投票服務並將結果以圖形顯示。Cacti 可以通過 shell 腳本擴展來監控你所選擇的來源。
82. Zabbix
Zabbix 是一個開源的基礎設施監控解決方案。它使用了許多數據庫來存放監控統計信息。其核心是用 C 語言編寫,並在前端中使用 PHP。如果你不喜歡安裝代理端,Zabbix 可能是一個最好選擇。
附加部分
感謝您的建議。這是我們的一個附加部分,由於我們需要重新編排所有的標題,鑒於此,這是在最後的一個簡短部分,根據您的建議添加的一些 Linux 監控工具:
83. collectd
Collectd 是一個 Unix 守護進程,用來收集所有的監控數據。它采用了模塊化設計並使用插件來填補一些缺陷。這樣能使 collectd 保持輕量級並可進行定制。
84. Observium
Observium 是一個自動發現網絡的監控平臺,支持大量硬件平臺和操作系統。Observium 專註於提供一個優美、功能強大、簡單直觀的界面來顯示網絡的健康和狀態。
85. Nload
這是一個命令行工具來監控網絡的吞吐量。它很整潔,因為它使用兩個圖表和其他一些類似傳輸的數據總量這樣的有用數據來對進出站流量進行可視化。你可以使用如下方法安裝它:
yum install nload
或者
sudo apt-get install nload
86. SmokePing
SmokePing 可以跟蹤你網絡延遲,並對他們進行可視化。有各種為 SmokePing 開發的延遲測量插件。如果圖形用戶界面對你來說非常重要,現在有一個正在開發中的插件來實現此功能。
87. MobaXterm
如果你整天在 windows 環境下工作。你可能會覺得 Windows 下終端窗口的限制。MobaXterm 正是由此而來的,它允許你使用多個通常出現在 Linux 中的命令。這將會極大地幫助你在監控方面的需求!
88. Shinken monitoring
Shinken 是一個監控框架,其是采用 python 對 Nagios 進行了完全重寫。它的目的是增強靈活性和管理更大環境。但仍保持所有的 nagios 配置和插件。
閱讀原文
88個 Linux 系統管理員必備的監控工具