Linux システムは、サーバーとデスクトップの優れたプラットフォームです。しかし、他の複雑なシステムと同様に、適切な監視を行うことは、システムを最高の状態に保つために不可欠です。幸いなことに、Sysdig はすぐそこにあります!
Sysdig は、システムの脅威、エラー、使用パターンなどを監視できる包括的な Linux 監視ツールです。また、このチュートリアルでは、Linux システムをより適切に監視する方法について、途中で特定の構成オプションを強調しながら、Sysdig をインストールする方法を学習します。
読み進めて、もう「アラート」を見逃すことはありません!
前提条件
このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものがあることを確認してください。
- Linux マシン – このチュートリアルでは Ubuntu 20.04 LTS を使用しますが、どの Linux ディストリビューションでも機能します。
- sudo 権限を持つ root 以外のユーザー
Linux への Sysdig のインストール
Sysdig コマンドライン ツールは、通常、ほとんどの最新の Linux ディストリビューションで利用できます。Sysdig は、これまでマシンにインストールした他のパッケージと同じようにインストールできます。
1. ターミナルを開き、apt update
を実行します 以下のコマンドを実行して、ディストリビューションのリポジトリから最新の更新があることを確認します。このコマンドは、システムのパッケージ リストを更新します。完了するまでに数分かかる場合があります。
sudo apt update -y

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

3. curl
を実行します 以下のコマンドを実行して、Sysdig の GPG 公開鍵 (GPG
) を追加します。 ) を APT のキーリングに追加します。このコマンドを使用すると、sysdig.com からダウンロードしたパッケージが有効で変更されていないことを確認できます。
curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -
以下に示すように、キーが正常に追加されると、OK メッセージが表示されます。

4. curl
を実行します。 以下のコマンドをサイレントに (-s
) Sysdig リポジトリを draios.list
としてダウンロードします システムに追加します。 .list
拡張子は、ファイルが 1 つの URL ではなく、リポジトリの URL のリストであることを APT に伝えます。
curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
5. apt update
を再実行します 以下のコマンドを実行して、新しい Sysdig リポジトリをダウンロードし、APT のパッケージ リストを新しいリポジトリの情報で更新します。
sudo apt update -y
APT が正しく構成されている場合、次の出力が表示されます。

6. Sysdig リポジトリをダウンロードしたら、apt install
を実行します。 以下のコマンドを install sysdig
に あなたのマシンで。このコマンドは sysdig
をダウンロードしてインストールします パッケージとそのサポート パッケージ。
sudo apt install sysdig -y

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

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

csysdig
の場合 コマンドが成功すると、タブに整理された次の出力が得られます。
説明 | |
PID | Linux カーネルによって割り当てられたプロセス ID。 PID を使用して、プロセスを識別および管理します。 |
PPID | プロセスの親プロセス ID。 PPID を使用して、プロセスをその親プロセスまでさかのぼって追跡します。 PID と PPID を組み合わせて、システム上のプロセスを一意に識別します。 |
CPU | アプリケーションが開始されてから使用された CPU の割合は、0 から 100% のスケールで表示されます。100% は合計 CPU 使用率に相当します。 CPU 使用率を使用して、システム リソースを占有しているアプリケーションを見つけます。 |
ユーザー | プロセスを開始したユーザーの名前。 USER を使用して、関心のあるプロセスを誰が実行しているかを調べます。 |
TH | プロセスを開始したユーザーの名前。 USER を使用して、関心のあるプロセスを誰が実行しているかを調べます。 |
VIRT | アプリケーションが使用する仮想メモリの総量。 VIRT を使用して、システムのメモリを占有しているアプリケーションを見つけます。 |
解像度 | 物理メモリにマップされた、プロセスが持つ常駐メモリ ページの数。 RES を使用して、システムのメモリを占有しているアプリケーションを見つけます。 |
ファイル | アプリケーションが使用するディスクのファイル記述子。 FILE を使用して、どのファイルが頻繁に読み書きされているかを確認します。これは通常、I/O アクティビティの指標です。 |
NET | アプリケーションが使用するネットワーク ソケット記述子。 NET を使用して、プロセスによって使用されているネットワーク接続と、1 秒あたりのバイト数で転送されているデータの量を確認します。 |
コマンド | アプリケーションが使用するネットワーク ソケット記述子。 NET を使用して、プロセスによって使用されているネットワーク接続と、1 秒あたりのバイト数で転送されているデータの量を確認します。 |
一見すると、csysdig インターフェイスは htop などの監視ツールに似ています。

F2 を押すと、上部のタブが変わり、以下に示すように左側のタブに編成された新しい情報セットが表示されます。
Sysdig がこれらを「ビュー」と呼ぶのは、これらが異なるシステム ビューであり、表示される情報の種類によって編成され、より多くのコンテキストを提供するためです。また、これらのビューは LUA スクリプトベースであるため、スクリプトをカスタマイズしてシステムからさまざまなデータを抽出し、必要に応じてビューを変更できます。

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

Sysdig Chisels を使用した CPU 消費プロセスの監視
Sysdig は、「チゼル」と呼ばれる特定のシステム情報を自動的に収集する、すぐに使用できるいくつかのチゼルを提供します。おそらく、CPU のパフォーマンスが低下している可能性があります。その場合、sysdig
を実行します チゼルを指定してコマンドを実行すると、CPU 使用率のほとんどを占めているアプリケーション/プロセスを表示できます。
1. sysdig
を実行します 以下のコマンドを実行して、利用可能なノミを一覧表示します。
sudo sysdig -cl
以下のスクリーンショットは、いくつかのチゼルのみを示しています。ただし、公式ドキュメントで利用可能なすべてののみの完全なリストを見つけて学ぶことができます。
Sysdig チゼルも LUA スクリプトです。 独自のチゼルを作成して特定のシステム情報を監視したり、独自のビューを実装したりできますが、このトピックはこのチュートリアルの範囲を超えています。

2. 次に、以下のコマンドを実行して詳細情報を表示します (-i
) topprocs_cpu
のような特定のノミについて このデモで。
sudo sysdig -i topprocs_cpu
チゼルの名前、カテゴリ、チゼルの機能の簡単な説明など、topprocs_cpu チゼルに関するすべての情報を以下で確認できます。
この例では、topprocs_cpu チゼルは CPU 使用率として分類され、最高の CPU 使用率によって定義されたトップ プロセスを示しています。
ノミの機能を理解したら、そのノミを使い始めることができます。

3. sysdig
を実行します 以下のコマンドで、右のみを指定します (-c topprocs_cpu
) を使用して、システムで CPU を最も多く使用しているアプリケーションを見つけます。
sudo sysdig -c topprocs_cpu
Sysdig は、このデモで CPU を消費する上位 10 のプロセスをキャプチャし、ターミナルに出力します。最も CPU を集中的に使用するプロセスが一番上 (sshd) に表示されるため、見つけやすくなります。

フィルタリングされたシステム情報の監視
場合によっては、出力が膨大になり、特定のチゼルに基づいてシステム情報をフィルタリングすることが難しくなります。幸いなことに、Sysdig は、効果的なフィルタリングを実行できるように、Lua 構文を使用する強力なフィルタリング オプションを提供します。
CPU 使用率が高い sshd プロセスのみを探しているとします。特定の PID またはプロセス名でフィルター式を定義できます。
以下の sysdig
を実行します sshd
のみを表示するコマンド 多くの CPU を使用するプロセス。
sudo sysdig proc.name=sshd
以下に示すように、他のプロセス情報を取得せずにフィルター処理された出力を取得します。
出力から、sshd プロセスがより多くの CPU やメモリを使用する理由など、sshd プロセスに関する詳細情報を取得できます。

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

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

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