開発者ドキュメント

SysdigでUbuntu16.04システムを監視する方法

序章

Sysdig は、包括的なオープンソースシステムのアクティビティ監視、キャプチャ、および分析アプリケーションです。 カスタマイズ可能な出力を備えた強力なフィルタリング言語と、chiselsと呼ばれるLuaスクリプトで拡張できるコア機能を備えています。

このアプリケーションは、カーネルを利用することで機能します。これにより、すべてのシステムコールと、カーネルを通過するすべての情報を確認できます。 これは、システム上で実行されているアプリケーションコンテナによって生成されたシステムアクティビティとイベントを監視および分析するための優れたツールにもなります。

コアSysdigアプリケーションは、インストールされているサーバーを監視します。 ただし、プロジェクトの背後にある会社は、任意の数のサーバーをリモートで監視できるSysdigCloudと呼ばれるホストバージョンを提供しています。

スタンドアロンアプリケーションは、ほとんどのLinuxディストリビューションで利用できますが、WindowsおよびmacOSでも、機能が制限された状態で利用できます。 sysdigコマンドラインツールの他に、Sysdigにはcsysdigと呼ばれる同様のオプションを備えたインタラクティブUIも付属しています。

このチュートリアルでは、Sysdigをインストールして使用し、Ubuntu16.04サーバーを監視します。 ライブイベントをストリーミングし、イベントをファイルに保存し、結果をフィルタリングし、csysdigインタラクティブUIを探索します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

ステップ1-公式スクリプトを使用したSysdigのインストール

UbuntuリポジトリにはSysdigパッケージがありますが、通常は現在のバージョンより1〜2リビジョン遅れています。 たとえば、公開時には、Ubuntuのパッケージマネージャーを使用してSysdigをインストールすると、Sysdig0.8.0が取得されます。 ただし、プロジェクトの開発ページから公式スクリプトを使用してインストールできます。これは、推奨されるインストール方法です。 これが私たちが使用する方法です。

ただし、最初に、パッケージデータベースを更新して、使用可能なパッケージの最新リストがあることを確認します。

  1. sudo apt-get update

次に、次のコマンドを使用して、curlでSysdigのインストールスクリプトをダウンロードします。

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

これにより、インストールスクリプトがファイルinstall-sysdigの現在のフォルダーにダウンロードされます。 このスクリプトは昇格された権限で実行する必要があり、インターネットからダウンロードしたスクリプトを実行するのは危険です。 スクリプトを実行する前に、テキストエディタでスクリプトを開くか、lessコマンドを使用してスクリプトの内容を監査し、画面に内容を表示します。

  1. less ./install-sysdig

スクリプトが実行するコマンドに慣れたら、次のコマンドを使用してスクリプトを実行します。

  1. cat ./install-sysdig | sudo bash

このコマンドは、カーネルヘッダーとモジュールを含むすべての依存関係をインストールします。 インストールの出力は次のようになります。

Output
* 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コマンドを使用して、Ubuntu16.04サーバー上のいくつかのイベントを確認します。 sysdigコマンドを実行するには、root権限が必要であり、任意の数のオプションとフィルターが必要です。 コマンドを実行する最も簡単な方法は、引数を使用しないことです。 これにより、2秒ごとに更新されるシステムデータのリアルタイムビューが提供されます。

  1. sudo sysdig

ただし、コマンドを実行するとすぐにわかるように、画面に書き込まれているデータは継続的にストリーミングされ、サーバーで多くのイベントが発生しているため、分析が難しい場合があります。 CTRL+Cを押して、sysdigを停止します。

いくつかのオプションを使用してコマンドを再度実行する前に、コマンドからの出力例を見て、出力に慣れましょう。

Output
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=..

出力の列は次のとおりです。

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

各列の意味は次のとおりです。

sysdigを実行することには、前のコマンドで行ったようにほとんど価値がありません。これは、大量の情報がストリーミングされるためです。 ただし、次の構文を使用して、コマンドにオプションとフィルターを適用できます。

  1. sudo sysdig [option] [filter]

以下を使用して、使用可能なフィルターの完全なリストを表示できます。

  1. sysdig -l

いくつかのクラスまたはカテゴリにまたがるフィルタの広範なリストがあります。 クラスの一部を次に示します。

このチュートリアルですべてのフィルターをカバーすることは実用的ではないため、syslogクラスのsyslog.severity.strフィルターから始めて、いくつか試してみましょう。これにより、送信されたメッセージを表示できます。特定の重大度レベルでsyslogに送信します。 このコマンドは、syslogに送信されたメッセージを「情報」レベルで表示します。

  1. sudo sysdig syslog.severity.str=info

注:サーバーのアクティビティのレベルによっては、このコマンドを入力した後に出力が表示されない場合や、出力が表示されるまでに長い時間がかかる場合があります。 問題を強制するには、別のターミナルエミュレータを開き、syslogへのメッセージを生成するアクションを実行します。 たとえば、パッケージの更新を実行したり、システムをアップグレードしたり、任意のパッケージをインストールしたりします。

CTRL+Cを押してコマンドを強制終了します。

かなり簡単に解釈できる出力は、次のようになります。

Output
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): session closed for user

単一のプロセスでフィルタリングすることもできます。 たとえば、nanoからイベントを探すには、次のコマンドを実行します。

  1. sudo sysdig proc.name=nano

このコマンドファイラーはnanoにあるため、nanoテキストエディターを使用してファイルを開き、出力を表示する必要があります。 別のターミナルエディタを開き、サーバーに接続し、nanoを使用してテキストファイルを開きます。 数文字を書いてファイルを保存します。 その後、元の端末に戻ります。

次に、次のような出力が表示されます。

Output
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 オプションを渡し、次のようにターゲットファイル名を指定します。

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

Sysdigは、CTRL+Cを押すまで、生成されたイベントをターゲットファイルに保存し続けます。 時間の経過とともに、そのファイルは非常に大きくなる可能性があります。 ただし、 -n オプションを使用すると、Sysdigでキャプチャするイベントの数を指定できます。 目標数のイベントがキャプチャされると、イベントは終了します。 たとえば、300のイベントをファイルに保存するには、次のように入力します。

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

Sysdigを使用して指定した数のイベントをファイルにキャプチャすることもできますが、 -C オプションを使用して、キャプチャを特定のサイズの小さなファイルに分割することをお勧めします。 また、ローカルストレージを圧倒しないように、保存されたファイルの一部のみを保持するようにSysdigに指示できます。 つまり、Sysdigは、1つのコマンドで、ファイルローテーションを使用したログへのイベントのキャプチャをサポートしています。

たとえば、サイズが1 MB以下のファイルにイベントを継続的に保存し、最後の5つのファイルのみを保持するには( -W オプションが行うことです)、次のコマンドを実行します。

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

ls -l sysdig-trace*を使用してファイルを一覧表示すると、次のような出力が5つのログファイルとともに表示されます。

Output
-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

リアルタイムキャプチャと同様に、保存されたイベントにフィルタを適用できます。 たとえば、プロセスnanoによって生成された200のイベントを保存するには、次のコマンドを入力します。

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

次に、サーバーに接続されている別の端末で、nanoを使用してファイルを開き、テキストを入力するかファイルを保存して、いくつかのイベントを生成します。 sysdigが200のイベントを記録するまで、イベントはsysdig-trace-nano.scapにキャプチャされます。

サーバーで生成されたすべての書き込みイベントをキャプチャするにはどうすればよいですか? 次のようにフィルターを適用します。

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

しばらくしてからCTRL+Cを押して終了します。

sysdigを使用してシステムアクティビティをファイルに保存すると、さらに多くのことができますが、これらの例から、その方法についてかなり良いアイデアが得られたはずです。 これらのファイルを分析する方法を見てみましょう。

ステップ4–Sysdigを使用したイベントデータの読み取りと分析

Sysdigを使用してファイルからキャプチャしたデータを読み取るのは、次のように-rスイッチをsysdigコマンドに渡すだけです。

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

これにより、ファイルのコンテンツ全体が画面にダンプされます。これは、特にファイルが大きい場合は、実際には最善の方法ではありません。 幸いなことに、書き込み中に適用したファイルを読み取るときに、同じフィルターを適用できます。

たとえば、作成したsysdig-trace-nano.scapトレースファイルを読み取るが、書き込みイベントなどの特定のタイプのイベントのみを確認するには、次のコマンドを入力します。

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

出力は次のようになります。

Output
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ファイルの内容を見てみましょう。 ファイルに保存されるすべてのイベントが書き込みイベントであることがわかっているので、内容を見てみましょう。

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

これは部分的な出力です。 イベントをキャプチャしたときにサーバーでSSHアクティビティがあった場合は、次のように表示されます。

Output
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からサーバーのIPアドレス22.22.22.22に送信されるイベントです。 これらのイベントはサーバーへのSSH接続を介して発生したため、これらのイベントは予期されたものです。 しかし、この既知のクライアントIPアドレスからのものではない他のSSH書き込みイベントはありますか? 見つけるのは簡単です。

Sysdigで使用できる多くの比較演算子があります。 最初に見たのは=です。 その他は != >> > = < 、 と <= 。 次のコマンドで、fd.ripはリモートIPアドレスをフィルタリングします。 != 比較演算子を使用して、11.11.11.11以外のIPアドレスからのイベントを検索します。

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

クライアントIPアドレス以外のIPアドレスからの書き込みイベントがあったことを示す部分的な出力は、次の出力に示されています。

Output
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–システムの監視と分析にSysdigチゼルを使用する

Sysdigの用語では、 chisels は、Sysdigイベントストリームを分析して有用なアクションを実行するために使用できるLuaスクリプトです。 すべてのSysdigインストールに付属する50近くのスクリプトがあり、次のコマンドを使用して、システムで使用可能なノミのリストを表示できます。

  1. sysdig -cl

より興味深いノミのいくつかは次のとおりです。

関連する引数を含む、ノミの詳細な説明については、-iフラグを使用し、その後にノミの名前を続けてください。 したがって、たとえば、netstatノミの詳細を表示するには、次のように入力します。

  1. sysdig -i netstat

netstatチゼルの使用について知っておく必要があることをすべて理解したので、その能力を利用して、次のコマンドを実行してシステムを監視します。

  1. sudo sysdig -c netstat

出力は次のようになります。

Output
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接続が表示されている場合、それは危険信号であるはずであり、より深く調査する必要があります。

はるかに興味深いノミはspy_usersで、システム上のインタラクティブなユーザーアクティビティを表示できます。

このコマンドを終了します。

  1. sudo sysdig -c spy_users

次に、2番目の端末を開き、サーバーに接続します。 その2番目のターミナルでいくつかのコマンドを実行してから、sysdigを実行しているターミナルに戻ります。 最初の端末で入力したコマンドは、sysdig -c spy_usersコマンドを実行した端末にエコーされます。

次に、グラフィカルツールであるCsysdigについて見ていきましょう。

ステップ6–システムの監視と分析にCsysdigを使用する

Csysdigは、Sysdigに付属しているもう1つのユーティリティです。 sysdigのコマンドラインで利用できるのと同じ機能を提供するインタラクティブなユーザーインターフェイスを備えています。 tophtopstraceに似ていますが、より機能が豊富です。

sysdigコマンドと同様に、csysdigコマンドはライブ監視を実行し、後で分析するためにイベントをファイルにキャプチャできます。 ただし、csysdigを使用すると、2秒ごとに更新されるシステムデータのより便利なリアルタイムビューが提供されます。 その例を表示するには、次のコマンドを入力します。

  1. sudo csysdig

これにより、次の図のようなインターフェイスが開きます。このインターフェイスには、監視対象のホスト上のすべてのユーザーとアプリケーションによって生成されたイベントデータが表示されます。

インターフェイスの下部には、プログラムのさまざまな側面にアクセスするために使用できるいくつかのボタンがあります。 最も注目すべきは、ビューボタンです。これは、csysdigによって収集されたメトリックのカテゴリに似ています。 プロセスシステムコールスレッドコンテナ、プロセスCPU [など、すぐに使用できる29のビューがあります。 X154X]、ページフォールトファイル、およびディレクトリ

引数なしでcsysdigを起動すると、プロセスビューからライブイベントが表示されます。 ビューボタンをクリックするか、F2キーを押すと、列の説明を含む、使用可能なビューのリストが表示されます。 F7キーを押すか、凡例ボタンをクリックして、列の説明を表示することもできます。 また、F1キーを押すか、ヘルプボタンをクリックすると、アプリケーション自体の概要マニュアルページ(csysdig)にアクセスできます。

次の画像は、アプリケーションのViewsインターフェイスのリストを示しています。

注:すべてのボタンについて、ボタンの左側に対応するキーボードショートカットまたはホットキーがあります。 ショートカットキーを2回押すと、前のウィンドウに戻ります。 ESCキーを押しても同じ結果になります。

オプションや引数なしでcsysdigを実行できますが、コマンドの構文は、sysdigと同様に、通常、次の形式になります。

  1. sudo csysdig [option]... [filter]

最も一般的なオプションは-dで、これは更新間の遅延をミリ秒単位で変更するために使用されます。 たとえば、デフォルトの2秒ではなく、10秒ごとに更新されるcsysdig出力を表示するには、次のように入力します。

  1. sudo csysdig -d 10000

-E オプションを使用すると、ユーザーとグループの情報をビューから除外できます。

  1. sudo csysdig -E

これにより、csysdigの起動が速くなりますが、ほとんどの場合、速度の向上はごくわずかです。

csysdigに特定のイベント数の後にキャプチャを停止するように指示するには、-nオプションを使用します。 その数に達すると、アプリケーションは終了します。 キャプチャされたイベントの数は、5つの数字である必要があります。 そうしないと、csysdigUIも表示されません。

  1. sudo csysdig -n 100000

トレースファイルを分析するには、次のようにcsysdig -rオプションを渡します。

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

sysdigで使用したものと同じフィルターを使用して、csysdigの出力を制限できます。 したがって、たとえば、システム上のすべてのユーザーによって生成されたイベントデータを表示するのではなく、次のコマンドでcsysdigを起動することにより、ユーザーによる出力をフィルタリングできます。これにより、rootユーザーによってのみ生成されたイベントデータが表示されます。

  1. sudo csysdig user.name=root

出力はサーバーで実行されているものを反映しますが、出力は次の画像に示されているものと同様である必要があります。

イベントを生成する実行可能ファイルの出力を表示するには、パスを含まないバイナリの名前をフィルターに渡します。 次の例は、nanoコマンドによって生成されたすべてのイベントを示しています。 つまり、テキストエディタがnanoであるすべての開いているファイルが表示されます。

  1. sudo csysdig proc.name=nano

使用可能なフィルターは数十あり、次のコマンドで表示できます。

  1. sudo csysdig -l

これは、sysdigコマンドで使用可能なフィルターを表示するために使用したのと同じオプションであることがわかります。 したがって、sysdigcsysdigはほぼ同じです。 主な違いは、csysdigにはマウスに優しいインタラクティブUIが付属していることです。 csysdigをいつでも終了するには、キーボードのQキーを押します。

結論

Sysdigは、サーバーの監視とトラブルシューティングに役立ちます。 これにより、アプリケーションコンテナーによって生成されたものを含め、監視対象ホスト上のすべてのシステムアクティビティに関する深い洞察が得られます。 このチュートリアルではコンテナについて具体的に説明していませんが、コンテナによって生成されたシステムアクティビティを監視する機能が、Sysdigを同様のアプリケーションとは一線を画しています。 詳細については、プロジェクトのホームページを参照してください。

Sysdigのノミは、Sysdigのコア機能の強力な拡張機能です。 それらはLuaで書かれているので、いつでもカスタマイズしたり、最初から書いたりすることができます。 ノミの製作の詳細については、プロジェクトの公式チゼルページにアクセスしてください。

モバイルバージョンを終了