入門系列之使用Sysdig監視您的Ubuntu 16.04系統

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~linux

本文由烏鴉 發表於雲+社區專欄ios

介紹

Sysdig是一個全面的開源系統活動監控,捕獲和分析應用程序。它具備強大的過濾語言和可自定義的輸出,以及可使用稱爲chiselsLua腳本擴展的核心功能。shell

應用程序經過訪問內核來工做, 內核容許它查看每一個系統調用以及經過內核傳遞的全部信息。這也使其成爲監視和分析系統上運行的應用程序容器生成的系統活動和事件的出色工具。數據庫

核心Sysdig應用程序監視其安裝的服務器。可是,該項目背後的公司提供了一個名爲Sysdig Cloud的託管版本,能夠遠程監控任意數量的服務器。ubuntu

獨立應用程序可在大多數Linux發行版上使用,但在Windows和macOS上也可用,功能更爲有限。除了sysdig命令行工具,Sysdig還帶有一個csysdig帶有相似選項的交互式UI 。安全

在本教程中,您將安裝並使用Sysdig來監視Ubuntu 16.04服務器。您將流式傳輸實時事件,將事件保存到文件,過濾結果以及瀏覽csysdig交互式UI。bash

準備

要完成本教程,您須要:服務器

  • 一臺Ubuntu 16.04 的服務器,已經設置好一個可使用sudo命令的非root的帳戶。

第1步 - 使用官方腳本安裝Sysdig

在Ubuntu存儲庫中有一個Sysdig包,但它一般是當前版本的一兩個版本。例如,在發佈時,使用Ubuntu的軟件包管理器安裝Sysdig將爲您提供Sysdig 0.8.0。可是,您可使用項目開發頁面中的官方腳原本安裝它,這是推薦的安裝方法。這是咱們將使用的方法。微信

但首先,更新包數據庫以確保您擁有最新的可用包列表:網絡

$ sudo apt-get update

如今curl使用如下命令下載Sysdig的安裝腳本:

$ curl https://s3.amazonaws.com/download.draios.com/stable/install-sysdig -o install-sysdig

這會將安裝腳本下載install-sysdig到當前文件夾的文件中。您須要使用提高的權限執行此腳本,而且運行從Internet下載的腳本是危險的。在執行腳本以前,經過在文本編輯器中打開它或使用less命令在屏幕上顯示內容來審覈其內容:

$ less ./install-sysdig

一旦您熟悉腳本將運行的命令,請使用如下命令執行腳本:

$ cat ./install-sysdig | sudo bash

命令將安裝全部依賴項,包括內核頭文件和模塊。安裝的輸出相似於如下內容:

* Detecting operating system
* Installing Sysdig public key
OK
* Installing sysdig repository
* Installing kernel headers
* Installing sysdig

...

sysdig-probe:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-59-generic/updates/dkms/

depmod....

DKMS: install completed.
Processing triggers for libc-bin (2.23-0ubuntu5) ...

如今您已經安裝了Sysdig,讓咱們看一下使用它的一些方法。

第2步 - 實時監控您的系統

在本節中,您將使用 sysdig命令查看Ubuntu 16.04服務器上的某些事件。 sysdig命令須要root權限才能運行,而且它須要任意數量的選項和過濾器。運行 命令最簡單的方法是不帶任何參數。這將爲您提供每兩秒刷新一次的系統數據的實時視圖:

$ sudo sysdig

可是,正如您在運行命令時所看到的那樣,分析正在寫入屏幕的數據可能很困難,由於它會持續流動,而且您的服務器上發生了不少事件。按下CTRL+C中止sysdig

在咱們使用一些選項再次運行命令以前,讓咱們經過查看命令的示例輸出來熟悉輸出:

253566 11:16:42.808339958 0 sshd (12392) > rt_sigprocmask
253567 11:16:42.808340777 0 sshd (12392) < rt_sigprocmask
253568 11:16:42.808341072 0 sshd (12392) > rt_sigprocmask
253569 11:16:42.808341377 0 sshd (12392) < rt_sigprocmask
253570 11:16:42.808342432 0 sshd (12392) > clock_gettime
253571 11:16:42.808343127 0 sshd (12392) < clock_gettime
253572 11:16:42.808344269 0 sshd (12392) > read fd=10(<f>/dev/ptmx) size=16384
253573 11:16:42.808346955 0 sshd (12392) < read res=2 data=..

輸出的列是:

%evt.num %evt.outputtime %evt.cpu %proc.name (%thread.tid) %evt.dir %evt.type %evt.info

如下是每列的含義:

  • evt.num是增量事件編號。
  • evt.outputtime是事件時間戳,您能夠自定義。
  • evt.cpu是捕獲事件的CPU編號。在上面的輸出中,evt.cpu0,這是服務器的第一個CPU。
  • proc.name是生成事件的進程的名稱。
  • thread.tid是生成事件的TID,它對應於單線程進程的PID。
  • evt.dir是事件方向。您將看到>用於輸入事件和<用於退出事件。
  • evt.type是事件的名稱,例如'open','read','write'等。
  • evt.info是事件參數列表。在系統調用的狀況下,這些每每對應於系統調用參數,但狀況並不是老是如此:出於簡單性或性能緣由,排除了一些系統調用參數。

像上一個sysdig命令同樣,運行幾乎沒有任何價值,由於流入的信息太多了。可是您可使用如下語法對命令應用選項和過濾器:

$ sudo sysdig [option] [filter]

您可使用如下方法查看可用過濾器的完整列表:

$ sysdig -l

有一個普遍的過濾器列表,涵蓋了幾個類或類別。如下是一些課程:

  • fd:過濾文件描述符(FD)信息,如FD編號和FD名稱。
  • process:過濾進程信息,例如生成事件的進程的id和名稱。
  • evt:過濾事件信息,如事件編號和時間。
  • user:過濾用戶信息,如用戶ID,用戶名,用戶主目錄或登陸shell。
  • group:過濾組信息,例如組ID和名稱。
  • syslog:過濾syslog信息,如設施和嚴重性。
  • fdlist:過濾輪詢事件的文件描述符。

因爲本教程中的每一個過濾器都不實用,因此讓咱們嘗試一下,從syslog類中的syslog.severity.str過濾器開始,它容許您查看以特定嚴重性級別發送到syslog的消息。此命令顯示在「信息」級別發送到syslog的消息:

$ sudo sysdig syslog.severity.str=info

注意:根據服務器上的活動級別,在輸入此命令後可能看不到任何輸出,或者在看到任何輸出以前可能須要很長時間。要強制發出問題,請打開另外一個終端模擬器並執行將向syslog生成消息的操做。例如,執行包更新,升級系統或安裝任何包。

按下CTRL+C便可終止命令。

輸出應 很容易解釋,看起來應 是這樣的:

10716 03:15:37.111266382 0 sudo (26322) < sendto syslog sev=info msg=Jan 24 03:15:37 sudo: pam_unix(sudo:session): session opened for user root b
618099 03:15:57.643458223 0 sudo (26322) < sendto syslog sev=info msg=Jan 24 03:15:57 sudo: pam_unix(sudo:session): session closed for user root
627648 03:16:23.212054906 0 sudo (27039) < sendto syslog sev=info msg=Jan 24 03:16:23 sudo: pam_unix(sudo:session): session opened for user root b
629992 03:16:23.248012987 0 sudo (27039) < sendto syslog sev=info msg=Jan 24 03:16:23 sudo: pam_unix(sudo:session): session closed for user root
639224 03:17:01.614343568 0 cron (27042) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27042]: pam_unix(cron:session): session opened for user
639530 03:17:01.615731821 0 cron (27043) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27043]: (root) CMD (   cd / && run-parts --report /etc/
640031 03:17:01.619412864 0 cron (27042) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27042]: pam_unix(cron:session):

您還能夠過濾單個流程。例如,從nano上查看事件,請執行如下命令:

$ sudo sysdig proc.name=nano

因爲此命令文件管理器已啓用nano,您必須使用nano文本編輯器打開文件以查看任何輸出。打開另外一個終端編輯器,鏈接到您的服務器,而後使用nano打開文本文件。寫幾個字符並保存文件。而後返回原始終端。

而後,您將看到相似於此的一些輸出:

21840 11:26:33.390634648 0 nano (27291) < mmap res=7F517150A000 vm_size=8884 vm_rss=436 vm_swap=0
21841 11:26:33.390654669 0 nano (27291) > close fd=3(<f>/lib/x86_64-linux-gnu/libc.so.6)
21842 11:26:33.390657136 0 nano (27291) < close res=0
21843 11:26:33.390682336 0 nano (27291) > access mode=0(F_OK)
21844 11:26:33.390690897 0 nano (27291) < access res=-2(ENOENT) name=/etc/ld.so.nohwcap
21845 11:26:33.390695494 0 nano (27291) > open
21846 11:26:33.390708360 0 nano (27291) < open fd=3(<f>/lib/x86_64-linux-gnu/libdl.so.2) name=/lib/x86_64-linux-gnu/libdl.so.2 flags=4097(O_RDONLY|O_CLOEXEC) mode=0
21847 11:26:33.390710510 0 nano (27291) > read fd=3(<f>/lib/x86_64-linux-gnu/libdl.so.2) size=832

再次,經過按下CTRL+C來終止命令。

獲取系統事件的實時視圖sysdig並不老是使用它的最佳方法。幸運的是,還有另外一種方法 - 將事件捕獲到文件中以便稍後進行分析。咱們來看看如何。

第3步 - 使用Sysdig捕獲系統活動到文件

使用系統事件捕獲文件能夠sysdig讓您在之後分析這些事件。爲了節省系統事件記錄到文件中,傳遞sysdig-w選項,並指定目標文件名,以下所示:

$ sudo sysdig -w sysdig-trace-file.scap

Sysdig將繼續將生成的事件保存到目標文件,直到您按下爲止CTRL+C。隨着時間的推移, 文件可能會變得很是大。可是,使用-n選項,您能夠指定但願Sysdig捕獲的事件數。捕獲目標事件數後,它將退出。例如,要將300個事件保存到文件,請輸入:

$ sudo sysdig -n 300 -w sysdig-file.scap

雖然您可使用Sysdig將指定數量的事件捕獲到文件中,但更好的方法是使用-C選項將捕獲分解爲特定大小的較小文件。爲了避免淹沒本地存儲,您能夠指示Sysdig只保留一些保存的文件。換句話說,Sysdig支持在一個命令中將事件捕獲到具備文件輪換的日誌。

例如,要將事件連續保存到大小不超過1 MB的文件中,而且只保留最後五個文件(這是-W選項的做用),請執行如下命令:

$ sudo sysdig -C 1 -W 5 -w sysdig-trace.scap

列出使用的文件ls -l sysdig-trace*,你會看到與此相似的輸出,有五個日誌文件:

-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap0
-rw-r--r-- 1 root root 952K Nov 23 04:14 sysdig-trace.scap1
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap2
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap3
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap4

與實時捕獲同樣,您能夠對已保存的事件應用過濾器。例如,要保存進程生成的200個事件nano,請輸入如下命令:

$ sudo sysdig -n 200 -w sysdig-trace-nano.scap proc.name=nano

而後,在鏈接到服務器的另外一個終端中,打開文件nano並經過輸入文本或保存文件生成一些事件。將捕獲事件sysdig-trace-nano.scap直到sysdig記錄200個事件。

您將如何捕獲服務器上生成的全部寫入事件?你會像這樣應用過濾器:

$ sudo sysdig -w sysdig-write-events.scap evt.type=write

片刻以後按下CTRL+C退出。在將系統活動保存到文件時,您能夠作更多的事情sysdig,可是這些示例應 讓您很是清楚如何去作。咱們來看看如何分析這些文件。

第4步 - 使用Sysdig讀取和分析事件數據

使用Sysdig從文件中讀取捕獲的數據就像將-r開關傳遞給sysdig命令同樣簡單,以下所示:

$ sudo sysdig -r sysdig-trace-file.scap

這會將文件的整個內容轉儲到屏幕上,這不是最好的方法,特別是若是文件很大的話。幸運的是,您能夠在讀取寫入時應用的文件時應用相同的過濾器。

例如,要讀取sysdig-trace-nano.scap您建立的跟蹤文件,但只查看特定類型的事件(如寫入事件),請輸入如下命令:

$ sysdig -r sysdig-trace-nano.scap evt.type=write

輸出應相似於:

21340 13:32:14.577121096 0 nano (27590) < write res=1 data=.
21736 13:32:17.378737309 0 nano (27590) > write fd=1 size=23
21737 13:32:17.378748803 0 nano (27590) < write res=23 data=#This is a test file..#
21752 13:32:17.611797048 0 nano (27590) > write fd=1 size=24
21753 13:32:17.611808865 0 nano (27590) < write res=24 data= This is a test file..#  
21768 13:32:17.992495582 0 nano (27590) > write fd=1 size=25
21769 13:32:17.992504622 0 nano (27590) < write res=25 data=TThis is a test file..# T
21848 13:32:18.338497906 0 nano (27590) > write fd=1 size=25
21849 13:32:18.338506469 0 nano (27590) < write res=25 data=hThis is a test file..[5G
21864 13:32:18.500692107 0 nano (27590) > write fd=1 size=25
21865 13:32:18.500714395 0 nano (27590) < write res=25 data=iThis is a test file..[6G
21880 13:32:18.529249448 0 nano (27590) > write fd=1 size=25
21881 13:32:18.529258664 0 nano (27590) < write res=25 data=sThis is a test file..[7G
21896 13:32:18.620305802 0 nano (27590) > write fd=1 size=25

讓咱們看一下您在上一節中保存的文件的內容:sysdig-write-events.scap文件。咱們知道保存到文件中的全部事件都是寫事件,因此讓咱們查看內容:

$ sudo sysdig -r sysdig-write-events.scap evt.type=write

這是部分輸出。若是捕獲事件時服務器上有任何SSH活動,您將看到相似的內容:

42585 19:58:03.040970004 0 gmain (14818) < write res=8 data=........
42650 19:58:04.279052747 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
42651 19:58:04.279128102 0 sshd (22863) < write res=28 data=.8c..jp...P........s.E<...s.
42780 19:58:06.046898181 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
42781 19:58:06.046969936 0 sshd (12392) < write res=28 data=M~......V.....Z...\..o...N..
42974 19:58:09.338168745 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
42975 19:58:09.338221272 0 sshd (22863) < write res=28 data=66..J.._s&U.UL8..A....U.qV.*
43104 19:58:11.101315981 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
43105 19:58:11.101366417 0 sshd (12392) < write res=28 data=d).(...e....l..D.*_e...}..!e
43298 19:58:14.395655322 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
43299 19:58:14.395701578 0 sshd (22863) < write res=28 data=.|.o....\...V...2.$_...{3.3|
43428 19:58:16.160703443 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
43429 19:58:16.160788675 0 sshd (12392) < write res=28 data=..Hf.%.Y.,.s...q...=..(.1De.
43622 19:58:19.451623249 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
43623 19:58:19.451689929 0 sshd (22863) < write res=28 data=.ZT^U.pN....Q.z.!.i-Kp.o.y..
43752 19:58:21.216882561 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28

請注意,前面輸出中的全部行都包含11.11.11.11:51282->22.22.22.22:ssh。這些是從客戶端的外部IP地址11.11.11.11到服務器22.22.22.22的IP地址的事件。這些事件發生在與服務器的SSH鏈接上,所以須要這些事件。可是有沒有其餘SSH寫事件不是來自這個已知的客戶端IP地址?這很容易找到。

您可使用Sysdig的許多比較運算符。你看到的第一個是=。其餘的是!=>> =<<=。在如下命令中,fd.rip過濾遠程IP地址。咱們將使用!=比較運算符來查找來自如下IP地址的事件:

$ sysdig -r sysdig-write-events.scap fd.rip!=11.11.11.11

如下輸出中顯示了部分輸出, 輸出顯示存在來自客戶端IP地址之外的IP地址的寫入事件:

294479 21:47:47.812314954 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294480 21:47:47.812315804 0 sshd (28766) < read res=1 data=T
294481 21:47:47.812316247 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294482 21:47:47.812317094 0 sshd (28766) < read res=1 data=Y
294483 21:47:47.812317547 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294484 21:47:47.812318401 0 sshd (28766) < read res=1 data=.
294485 21:47:47.812318901 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294486 21:47:47.812320884 0 sshd (28766) < read res=1 data=.
294487 21:47:47.812349108 0 sshd (28766) > fcntl fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) cmd=4(F_GETFL)
294488 21:47:47.812350355 0 sshd (28766) < fcntl res=2(<f>/dev/null)
294489 21:47:47.812351048 0 sshd (28766) > fcntl fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) cmd=5(F_SETFL)
294490 21:47:47.812351918 0 sshd (28766) < fcntl res=0(<f>/dev/null)
294554 21:47:47.813383844 0 sshd (28767) > write fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=976
294555 21:47:47.813395154 0 sshd (28767) < write res=976 data=........zt.....L.....}....curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-s
294691 21:47:48.039025654 0 sshd (28767) > read fd=3(<4t>221.229.172.117:49802->45.55.71.190:ssh) size=8192

進一步調查還顯示,流氓IP地址33.33.33.33屬於中國的一臺機器。這是值得擔憂的事情!這只是一個例子,說明如何使用Sysdig密切注意服務器上的流量。

讓咱們看一下使用一些額外的腳原本分析事件流。

第5步 - 使用Sysdigchisels進行系統監控和分析

在Sysdig的說法中,chisels是可使用的Lua腳本,用於分析Sysdig事件流以執行有用的操做。每一個Sysdig安裝都附帶有近50個腳本,您可使用如下命令查看系統上可用的chisels列表:

$ sysdig -cl

一些更有趣的chisels包括:

  • netstat:列出(並可選擇過濾)網絡鏈接。
  • shellshock_detect:打印shellshock攻擊
  • spy_users:顯示交互式用戶活動。
  • list login shells:列出登陸shell ID。
  • spy_ip:顯示使用給定IP地址交換的數據。
  • spy_port:顯示使用給定IP端口號交換的數據。
  • spy_file:回顯任何進程對全部文件的讀取或寫入。(可選)您能夠提供文件名,以僅攔截對文件的讀取或寫入。
  • httptop:顯示最熱門的HTTP請求

有關chisels的更詳細描述(包括任何相關參數),請使用-i標誌,而後使用chisels的名稱。所以,例如,要查看有關netstatchisels的更多信息,請輸入:

$ sysdig -i netstat

既然您已經瞭解了使用 netstatchisels所須要知道的一切,請經過運行如下方式來監控系統:

$ sudo sysdig -c netstat

輸出應相似於如下內容:

Proto Server Address           Client Address           State          TID/PID/Program Name
tcp   22.22.22.22:22           11.11.11.11:60422        ESTABLISHED    15567/15567/sshd
tcp   0.0.0.0:22               0.0.0.0:*                LISTEN         1613/1613/sshd

若是您在「 客戶端地址」列中看到來自您的IP地址之外的ESTABLISHED SSH鏈接,那麼這應 是一個紅色標記,您應 進行更深刻的探測。

一個更有趣的chiselsspy_users,它容許您查看系統上的交互式用戶活動。

退出此命令:

$ sudo sysdig -c spy_users

而後,打開第二個終端並鏈接到您的服務器。在第二個終端中執行一些命令,而後返回到終端運行sysdig。您在第一個終端中輸入的命令將在您執行sysdig -c spy_users命令的終端上回顯。

接下來,讓咱們探索一個圖形工具Csysdig。

第6步 - 使用Csysdig進行系統監控和分析

Csysdig是Sysdig附帶的另外一個實用程序。它具備交互式用戶界面,提供與命令行相同的功能sysdig。這就像tophtopstrace,但功能豐富的多。

sysdig命令同樣, csysdig命令能夠執行實時監視,並能夠將事件捕獲到文件中以供之後分析。可是csysdig,您能夠每兩秒刷新一次更實用的系統數據實時視圖。要查看示例,請輸入如下命令:

$ sudo csysdig

這將打開以下圖所示的界面, 界面顯示受監控主機上的全部用戶和應用程序生成的事件數據。

imgCsysdig的主界面

在界面的底部有幾個按鈕,您可使用它們來訪問程序的不一樣方面。最值得注意的是「 視圖」按鈕,它相似於收集的指標類別csysdig。開箱即用的視圖有29個,包括進程系統調用線程容器進程CPU頁面錯誤文件目錄

當您在csysdig沒有參數的狀況下啓動時 ,您將從「 進程」視圖中看到實時事件。經過單擊「 視圖」按鈕或F2按鍵,您將看到可用視圖列表,包括列的說明。您還能夠經過F7按鍵或單擊「 圖例」按鈕來查看列的說明。csysdig經過F1按鍵或單擊「 幫助」按鈕,能夠訪問應用程序自己()的摘要手冊頁。

下圖顯示了應用程序的Views界面的列表。

imgCsysdig視圖窗口

注意:對於每一個按鈕,按鈕的左側都有相應的鍵盤快捷鍵或熱鍵。按兩次快捷鍵將返回上一個窗口。按下ESC鍵將得到相同的結果。

雖然你能夠在csysdig沒有任何選項和參數的狀況下運行,但命令的語法與sysdigs同樣,一般採用如下形式:

$ sudo csysdig [option]...  [filter]

最多見的選項是-d,用於修改更新之間的延遲(以毫秒爲單位)。例如,要查看csysdig每10秒更新一次的輸出,而不是默認值2秒,請輸入:

$ sudo csysdig -d 10000

您可使用-E選項從視圖中排除用戶和組信息:

$ sudo csysdig -E

這可使csysdig啓動更快,但在大多數狀況下速度增益能夠忽略不計。

要指示csysdig在必定數量的事件後中止捕獲,請使用-n選項。應用程序將在達到 數字後退出。被捕獲事件的數量必須在五個數字中; 不然你甚至不會看到csysdigUI:

$ sudo csysdig -n 100000

分析跟蹤文件,經過csysdig-r選項,以下所示:

$ sudo csysdig -r sysdig-trace-file.scap

您可使用與之相同的過濾器sysdig來限制csysdig輸出。所以,例如,您能夠經過csysdig使用如下命令啓動用戶來過濾用戶輸出,而不是查看系統上全部用戶生成的事件數據, 命令將顯示僅由root用戶生成的事件數據:

$ sudo csysdig user.name=root

輸出應相似於下圖中顯示的輸出,但輸出將反映服務器上正在運行的內容:

imgroot生成的Csysdig數據

要查看生成事件的可執行文件的輸出,請將過濾器的名稱傳遞給不帶路徑的二進制文件。如下示例將顯示 nano命令生成的全部事件。換句話說,它將顯示文本編輯器所在的全部打開文件nano

$ sudo csysdig proc.name=nano

有幾十個可用的過濾器,您可使用如下命令查看:

$ sudo csysdig -l

您會注意到,這與您用於查看sysdig命令可用的過濾器的選項相同。因此sysdigcsysdig幾乎是同樣的。主要區別在於csysdig鼠標友好的交互式UI。要csysdig隨時退出,請按Q鍵盤上的鍵。

結論

Sysdig可幫助您監控服務器並對其進行故障排除。它將使您深刻了解受監視主機上的全部系統活動,包括應用程序容器生成的活動。雖然本教程未特別涵蓋容器,但監視容器生成的系統活動的能力使Sysdig與相似的應用程序區別開來。項目主頁上提供了更多信息。

Sysdig的chisels是核心Sysdig功能的強大擴展。它們是用Lua編寫的,因此你老是能夠自定義它們或者從頭開始編寫它們。要了解有關製做chisels的更多信息,請訪問 項目的官方chisels 頁面

若是您對其餘監視系統的工具,例如:使用Ubuntu 16.04上的osquery監視系統安全性,能夠訪問騰訊雲訪問更多的教程。


參考文獻:《How To Monitor Your Ubuntu 16.04 System with Sysdig》

問答

在Ubuntu上安裝cassandra?

相關閱讀

如何保護PostgreSQL免受攻擊

Ubuntu 16.04上如何使用Alertmanager和Blackbox導出程序監視Web服務器

MariaDB Galera集羣入門教程

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1172074?fromSource=waitui

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

海量技術實踐經驗,盡在雲加社區

相關文章
相關標籤/搜索