あなたのLinuxシステムは、サーバーやデスクトップにとって優れたプラットフォームです。ただし、他の複雑なシステムと同様に、適切な監視を行うことはシステムを最適な状態に保つために重要です。幸いにも、Sysdigがすぐそこにあります!
Sysdigは包括的なLinux監視ツールであり、システムの脅威、エラー、使用パターンなどを監視することができます。そして、このチュートリアルでは、Linuxシステムをより良く監視するための特定の設定オプションに焦点を当てながら、Sysdigのインストール方法を学びます。
さらに読み進めて、決して「アラート」を見逃さないようにしましょう!
前提条件
このチュートリアルは実践的なデモンストレーションとなります。一緒に進める場合は、以下の項目を準備してください。
- A Linux machine – This tutorial uses Ubuntu 20.04 LTS, but any Linux distributions will work.
- A non-root user with sudo privileges.
LinuxにSysdigをインストールする
Sysdigのコマンドラインツールは、ほとんどの最新のLinuxディストリビューションで利用可能であり、これまでマシンにインストールした他のパッケージと同様にSysdigをインストールすることができます。
1. ターミナルを開き、以下のapt update
コマンドを実行して、ディストリビューションのリポジトリから最新の更新を取得してください。このコマンドはシステムのパッケージリストを更新し、完了するまで数分かかる場合があります。

2. 次に、以下のapt install
コマンドを実行して、Sysdigに必要なパッケージ(curl
)をダウンロードしてinstall
してください。このコマンドは、このチュートリアルの後半で使用するいくつかの追加モジュールもインストールします。以下に示します:
gnupg
– GNU Privacy Guardは、安全な通信とデータストレージのためのツールです。このパッケージは、Sysdigパッケージの正当性を確認するためにSysdigの公開GPGキーをダウンロードすることを可能にします。
software-properties-common
は、コマンドライン環境またはGUIを介してソフトウェアソースを管理するための迅速な方法を提供します。このパッケージを使用すると、add-apt-repository
コマンドを使用してSysdigのパッケージリポジトリを追加することができます。
linux-headers-$(uname -r)
は、実行中のカーネル用のカーネルモジュールをビルドするために必要なファイルを提供します。このパッケージは、古い標準カーネルを実行しているマシンにSysdigをインストールする場合に必要です。

3.以下のcurl
コマンドを実行して、SysdigのGPG公開鍵(GPG
)をAPTのキーリングに追加します。このコマンドにより、sysdig.comからダウンロードされたパッケージが有効かつ変更されていないことが確認できます。
キーが正常に追加されると、以下のようにOKメッセージが表示されます。

4.次に、以下のcurl
コマンドを実行して、Sysdigリポジトリをdraios.list
としてシステムにダウンロードします(-s
オプションを使用してサイレントに実行します)。.list
拡張子は、ファイルが単一のURLではなくリポジトリのURLのリストであることをAPTに伝えます。
5. 新しいSysdigリポジトリをダウンロードし、APTパッケージリストを更新するために、以下のapt update
コマンドを再実行してください。
もしAPTが正しく設定されている場合、以下のような出力が表示されます。

6. Sysdigリポジトリをダウンロードした後、以下のapt install
コマンドを実行して、マシンにsysdig
をインストールしてください。このコマンドは、sysdig
パッケージとそのサポートパッケージをダウンロードしてインストールします。

7. 最後に、以下のsysdig
コマンドを実行して、マシンにインストールされているSysdigのバージョンを確認してください。
バージョン番号は、Sysdigパッケージが最新かどうかを判断するのに役立ちます。また、バージョンはSysdigのリリースがシステムのパフォーマンスに影響を与えるかどうかを示す情報も提供します。
以下の例では、この作成時点での最新バージョンは0.28.0です。お使いのバージョン番号は異なる場合があります。

csysdig
を使用したLinuxシステムのモニタリング
Sysdigをインストールしたので、Sysdigを使用してシステムの状況を確認することができます。Sysdigコマンドラインツールには、システムとそのアクティビティのさまざまなビューを提供する多くのフラグがあります。最も基本的な例は、csysdig
コマンドです。
フラグなしでコマンドcsysdig
を実行すると、現在のシステムで何が起こっているかが表示されます。このコマンドは、現在実行中のすべてのプロセスのアクティビティを表示します。
なお、システムのすべての活動を表示するには、Sysdigコマンドを
sudo
権限で実行する必要があります。非ルートユーザーにはデフォルトでいくつかのシステム活動が非表示になっている場合があります。たとえば、/procファイルシステムの出力などです。Sysdigはまた、sysdig-probeカーネルモジュールなどの多くのトリックを行うために必要なカーネルシンボルを自動的に読み込むためにsudo
権限が必要です。
次のエラーが表示された場合、ncurses-term
パッケージを再インストールする必要があります。Sysdigの新規インストール後には、ncurses-term
パッケージが破損することがよくあります。Sysdigは、ncurses UIをサポートするためにncurses-term
パッケージに依存しています。

csysdig
コマンドが成功した場合、以下の出力がタブで整理されます。
Description | |
PID | The Process ID that assigned by the Linux kernel. You use PIDs to identify and manage processes. |
PPID | The parent process ID of the process. You use PPID to trace the process back through its parent processes. Together, PID and PPID uniquely identify a process on your system. |
CPU | The percentage of CPU used by the application since it started can be seen on a scale from 0 to 100%, where 100% equals total CPU usage. You use CPU usage to find applications that are hogging system resources. |
USER | The name of the user that started the process. You use USER to find out who is executing a process you are interested in. |
TH | The name of the user that started the process. You use USER to find out who is executing a process you are interested in. |
VIRT | The total amount of virtual memory used by the application. You use VIRT to find applications that are hogging your system’s memory. |
RES | The number of resident memory pages a process has, as mapped to physical memory. You use RES to find applications that are hogging your system’s memory. |
FILE | The disk’s file descriptor used by the application. You use FILE to see which files are being read or written frequently, usually an indication of I/O activity. |
NET | The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second. |
Command | The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second. |
一見すると、csysdigのインターフェースはhtopなどの監視ツールに似ています。

F2キーを押すと、上部のタブが切り替わり、左側のタブに整理された新しい情報が表示されます。
これらはシステムの異なるビューであり、表示する情報の種類によって整理されたもので、コンテキストを提供します。また、これらのビューはLUAスクリプトベースであるため、システムから異なるデータを抽出したり、ビューを自分好みに変更したりすることができます。

デフォルトでは、LUAスクリプトは/usr/share/sysdig/chiselsディレクトリにあります。

Sysdig Chiselsを使用してCPUを消費するプロセスを監視する
Sysdigには、特定のシステム情報を自動的に収集するいくつかの準備ができた「chisels」があります。もしCPUのパフォーマンスが遅い場合は、指定したchiselを使用してsysdig
コマンドを実行することで、CPU使用率の高いアプリケーション/プロセスを表示することができます。
以下のsysdig
コマンドを実行して、利用可能なchiselをリストします。
以下のスクリーンショットでは、わずかな彫刻刀しか表示されていません。しかし、公式のドキュメントでは、利用可能な全ての彫刻刀の完全なリストを見つけて学ぶことができます。
Sysdigの彫刻刀もLUAスクリプトです。自分自身の彫刻刀を作成して特定のシステム情報を監視したり、独自のビューを実装することもできますが、このトピックはこのチュートリアルの範囲外です。次に、以下のコマンドを実行して、このデモでの
topprocs_cpu
などの特定の彫刻刀についての詳細情報(-i
)を表示します。

以下に、topprocs_cpu彫刻刀に関するすべての情報が表示されます。彫刻刀の名前、カテゴリ、および彫刻刀の機能の簡単な説明が含まれています。
この例では、topprocs_cpu彫刻刀はCPU使用率として分類され、最も高いCPU使用率で定義されたトッププロセスを表示します。
彫刻刀の機能を理解したら、その彫刻刀を使用し始めることができます。

3. 次のsysdig
コマンドを実行し、システムで最もCPUを使用しているアプリケーションを見つけるために正しい彫刻刀(-c topprocs_cpu
)を指定します。
Sysdigはこのデモで上位10個のCPU消費プロセスをキャプチャし、ターミナルに表示します。最もCPU負荷の高いプロセスが上に表示され、より簡単に見つけることができます。

フィルタリングされたシステム情報の監視
場合によっては、出力が非常に多くなり、特定の彫刻刀に基づいてシステム情報をフィルタリングするのが難しいことがあります。幸いなことに、SysdigはLua構文を使用して効果的なフィルタリングを実行できる強力なフィルタリングオプションを提供しています。
たとえば、高いCPU使用率に寄与するsshdプロセスのみを検索したい場合、特定のPIDまたはプロセス名によるフィルタ式を定義できます。
以下のsysdig
コマンドを実行して、CPUを多く使用するsshd
プロセスのみを表示します。
以下のように、他のプロセス情報を取得せずにフィルタリングされた出力を取得できます。
出力から、sshdプロセスのCPUやメモリの使用状況など、sshdプロセスに関する詳細情報を取得できます。

システムを監視するためのイベントログファイルの作成
Sysdigが提供する素晴らしい機能の1つは、イベントログファイルです。イベントログファイルを使用すると、アプリケーションやシステムの動作に関する情報をすべて収集して後で分析することができます。イベントログファイルは、前の例のコマンドライン出力と同じ情報を提供しますが、ディスク上のファイルに保存されます。
1. 以下のコマンドを実行して、sysdig
の出力を保存するためのファイル(-w
)をホームディレクトリに作成します。ファイル名はata.scap
です。
拡張子.scapは、データストリームを人間が読めるテキスト形式で保存するためのものです。
2. 次に、以下のls -la
コマンドを実行して、作業ディレクトリ内のすべてのファイルをリストアップします。
以下に示すように、ホームディレクトリにata.scapという新しいファイルが表示されます。

3. 最後に、以下のコマンドを実行して、SysdigがSSHでサーバーに接続したときのシステムの動作を読み取り(-r
)、表示します。ata.scap
はSysdigイベントログファイルです。

結論
この記事では、Ubuntu 20.04にSysdigをインストールし、csysdigを使用してシステム、アプリケーション、セキュリティ情報を収集する方法について学びました。また、システムの動作を記録するイベントログファイルの作成にも触れました。
この時点で、Sysdigがシステムにインストールされていることで、強力なツールが提供されることに気付いたでしょう。これらのツールは、システム、アプリケーション、インフラストラクチャの動作についてより深い洞察を得るのに役立ちます。
では、この新たな知識を活かして、なぜSysdigを使用してHTTPトラフィックを解析する方法を学ばないのでしょうか?または、Sysdigトレーサを使用してアプリケーションのボトルネックを特定する方法を学びませんか?