Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Sysdig 系統故障排查實戰指南:安裝、捕獲、過濾、Chisels 進階分析

編輯:關於 Linux

Sysdig 是 Linux 系統可視化的「核磁共振」,能捕獲系統呼叫、進程活動、網路 I/O、檔案存取等完整事件流,支援即時分析、離線重播、Lua 腳本擴展。本文涵蓋安裝、事件捕獲與儲存、輸出欄位解讀、過濾語法、Chisels 進階分析腳本實戰。

安裝 Sysdig

# 官方一鍵安裝腳本(支援 rpm/deb 系統)
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

事件捕獲與儲存

指令用途
sysdig即時輸出到標準輸出
sysdig -w system.scap儲存到檔案供離線分析
sysdig -n 200 -w system.scap捕獲 200 事件後自動停止
sysdig -r system.scap讀取並分析儲存的捕獲檔

輸出欄位詳細解讀

每行事件包含 8 欄核心資訊:

欄位說明範例
1. 事件編號遞增序號5
2. 時間戳納秒精度10:54:50.463206317
3. CPU 編號處理該事件的 CPU 核心0
4. 進程名進程命令名稱sysdig
5. 執行緒 ID (TID)Linux 執行緒識別碼29043
6. 事件方向> 進入系統呼叫,< 返回>
7. 事件類型系統呼叫名稱switch, open, read
8. 事件參數呼叫參數與回傳值next=0 pgft_maj=0...

強大的過濾系統

語法:sysdig -r file.scap "過濾表達式"

欄位類別(sysdig -l 查看完整清單)

  • proc.name, proc.pid, proc.exe, proc.args
  • fd.num, fd.name, fd.type, fd.directory
  • evt.type, evt.dir, evt.args, evt.latency
  • user.uid, user.name, group.gid, group.name
  • syslog.facility, syslog.severity, syslog.message

比較運算子

= != < <= > >= contains bcontains glob

布林運算子

and or not

實戰過濾範例

# 僅顯示 sysdig 進程的事件
sysdig -r system.scap proc.name=sysdig

# sysdig 進程的 context switch 事件
sysdig -r system.scap proc.name=sysdig and evt.type=switch

# 特定 PID 開啟的檔案
sysdig -r system.scap proc.pid=1234 and evt.type=open

# 網路連接埠 80 的傳輸
sysdig -r system.scap fd.port=80

# 包含 "error" 字串的系統日誌
sysdig -r system.scap syslog.message contains error

Chisels:Lua 腳本擴展分析

Chisels 為預寫好的分析腳本,類似「分析插件」。

常用 Chisels

Chisel功能
topprocs_file讀寫檔案最頻繁的進程排行
topprocs_net網路流量最大的進程排行
topprocs_cpuCPU 佔用最高的進程排行
fdcount_by依進程統計開啟檔案描述符數量
spy_users監控使用者互動指令
httplog解析 HTTP 請求/回應
shellshock_detect檢測 Shellshock 攻擊嘗試

使用方式

# 列出所有可用 Chisels
sysdig -cl

# 執行特定 Chisel
sysdig -c topprocs_file

# 針對捕獲檔執行
sysdig -r system.scap -c topprocs_net

輸出範例

Bytes Process
------------------------------
448.36KB mozStorage
220.38KB perl
1.69KB tmux
1.62KB sh
1.59KB Xorg

自訂 Chisel 開發

熟悉 Lua 者可編寫專屬分析腳本,放置於 /usr/share/sysdig/chisels/ 或 ~/.sysdig/chisels/,即可透過 sysdig -c my_chisel 呼叫。

效能與最佳實踐

  • 生產環境建議使用 -n 限制事件數或 -w 寫入檔案,避免即時輸出影響效能
  • 捕獲檔 (.scap) 可壓縮存檔,sysdig -r file.scap.gz 直接讀取
  • 結合 csysdig (TUI 介面) 進行互動式探索
  • 容器環境支援:sysdig -k https://k8s-api ... 直接採集 Kubernetes 叢集事件

總結

Sysdig 以「系統呼叫級別可視化」解決傳統 top/strace/tcpdump 割裂視野的痛點。掌握「捕獲 → 過濾 → Chisels 分析」三步驟,即可快速定位效能瓶頸、安全異常、應用故障根因。

Copyright © Windows教程網 All Rights Reserved