Linuxシステムを監視するためにSysdigをインストールする方法

あなたの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コマンドを実行して、ディストリビューションのリポジトリから最新の更新を取得してください。このコマンドはシステムのパッケージリストを更新し、完了するまで数分かかる場合があります。

sudo apt update -y
Updating your System’s Package Lists

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をインストールする場合に必要です。
sudo apt install gnupg software-properties-common curl -y && sudo apt install linux-headers-$(uname -r) -y
Installing the Necessary Packages for Sysdig

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メッセージが表示されます。

Adding the GPG key to APT”s Keyring

4.次に、以下のcurlコマンドを実行して、Sysdigリポジトリをdraios.listとしてシステムにダウンロードします(-sオプションを使用してサイレントに実行します)。.list拡張子は、ファイルが単一のURLではなくリポジトリのURLのリストであることをAPTに伝えます。

curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list

5. 新しいSysdigリポジトリをダウンロードし、APTパッケージリストを更新するために、以下のapt updateコマンドを再実行してください。

sudo apt update -y

もしAPTが正しく設定されている場合、以下のような出力が表示されます。

Updating your APT’s Package Lists

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

sudo apt install sysdig -y
Installing Sysdig

7. 最後に、以下のsysdigコマンドを実行して、マシンにインストールされているSysdigのバージョンを確認してください。

sudo sysdig --version

バージョン番号は、Sysdigパッケージが最新かどうかを判断するのに役立ちます。また、バージョンはSysdigのリリースがシステムのパフォーマンスに影響を与えるかどうかを示す情報も提供します。

以下の例では、この作成時点での最新バージョンは0.28.0です。お使いのバージョン番号は異なる場合があります。

Verifying Sysdig Version Installed

csysdigを使用したLinuxシステムのモニタリング

Sysdigをインストールしたので、Sysdigを使用してシステムの状況を確認することができます。Sysdigコマンドラインツールには、システムとそのアクティビティのさまざまなビューを提供する多くのフラグがあります。最も基本的な例は、csysdigコマンドです。

フラグなしでコマンドcsysdigを実行すると、現在のシステムで何が起こっているかが表示されます。このコマンドは、現在実行中のすべてのプロセスのアクティビティを表示します。

なお、システムのすべての活動を表示するには、Sysdigコマンドをsudo権限で実行する必要があります。非ルートユーザーにはデフォルトでいくつかのシステム活動が非表示になっている場合があります。たとえば、/procファイルシステムの出力などです。Sysdigはまた、sysdig-probeカーネルモジュールなどの多くのトリックを行うために必要なカーネルシンボルを自動的に読み込むためにsudo権限が必要です。

sudo csysdig

次のエラーが表示された場合、ncurses-termパッケージを再インストールする必要があります。Sysdigの新規インストール後には、ncurses-termパッケージが破損することがよくあります。Sysdigは、ncurses UIをサポートするためにncurses-termパッケージに依存しています。

Getting an Error while Running csysdig

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などの監視ツールに似ています。

Monitoring System Processes using Csysdig

F2キーを押すと、上部のタブが切り替わり、左側のタブに整理された新しい情報が表示されます。

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

Viewing System Information via the Csysdig Views

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

ls /usr/share/sysdig/chisels
Listing files (scripts) in the /usr/share/sysdig/chisels directory

Sysdig Chiselsを使用してCPUを消費するプロセスを監視する

Sysdigには、特定のシステム情報を自動的に収集するいくつかの準備ができた「chisels」があります。もしCPUのパフォーマンスが遅い場合は、指定したchiselを使用してsysdigコマンドを実行することで、CPU使用率の高いアプリケーション/プロセスを表示することができます。

以下のsysdigコマンドを実行して、利用可能なchiselをリストします。

sudo sysdig -cl

以下のスクリーンショットでは、わずかな彫刻刀しか表示されていません。しかし、公式のドキュメントでは、利用可能な全ての彫刻刀の完全なリストを見つけて学ぶことができます。

Sysdigの彫刻刀もLUAスクリプトです。自分自身の彫刻刀を作成して特定のシステム情報を監視したり、独自のビューを実装することもできますが、このトピックはこのチュートリアルの範囲外です。次に、以下のコマンドを実行して、このデモでのtopprocs_cpuなどの特定の彫刻刀についての詳細情報(-i)を表示します。

Showing Sysdig Chisels

sudo sysdig -i topprocs_cpu

以下に、topprocs_cpu彫刻刀に関するすべての情報が表示されます。彫刻刀の名前、カテゴリ、および彫刻刀の機能の簡単な説明が含まれています。

この例では、topprocs_cpu彫刻刀はCPU使用率として分類され、最も高いCPU使用率で定義されたトッププロセスを表示します。

彫刻刀の機能を理解したら、その彫刻刀を使用し始めることができます。

Showing All Information About the topprocs_cpu Chisel

3. 次のsysdigコマンドを実行し、システムで最もCPUを使用しているアプリケーションを見つけるために正しい彫刻刀(-c topprocs_cpu)を指定します。

sudo sysdig -c topprocs_cpu

Sysdigはこのデモで上位10個のCPU消費プロセスをキャプチャし、ターミナルに表示します。最もCPU負荷の高いプロセスが上に表示され、より簡単に見つけることができます。

Listing the process defined by the highest CPU utilization.

フィルタリングされたシステム情報の監視

場合によっては、出力が非常に多くなり、特定の彫刻刀に基づいてシステム情報をフィルタリングするのが難しいことがあります。幸いなことに、SysdigはLua構文を使用して効果的なフィルタリングを実行できる強力なフィルタリングオプションを提供しています。

たとえば、高いCPU使用率に寄与するsshdプロセスのみを検索したい場合、特定のPIDまたはプロセス名によるフィルタ式を定義できます。

以下のsysdigコマンドを実行して、CPUを多く使用するsshdプロセスのみを表示します。

sudo sysdig proc.name=sshd

以下のように、他のプロセス情報を取得せずにフィルタリングされた出力を取得できます。

出力から、sshdプロセスのCPUやメモリの使用状況など、sshdプロセスに関する詳細情報を取得できます。

Listing the SSHD process

システムを監視するためのイベントログファイルの作成

Sysdigが提供する素晴らしい機能の1つは、イベントログファイルです。イベントログファイルを使用すると、アプリケーションやシステムの動作に関する情報をすべて収集して後で分析することができます。イベントログファイルは、前の例のコマンドライン出力と同じ情報を提供しますが、ディスク上のファイルに保存されます。

1. 以下のコマンドを実行して、sysdigの出力を保存するためのファイル(-w)をホームディレクトリに作成します。ファイル名はata.scapです。

拡張子.scapは、データストリームを人間が読めるテキスト形式で保存するためのものです。

sudo sysdig -w ata.scap

2. 次に、以下のls -laコマンドを実行して、作業ディレクトリ内のすべてのファイルをリストアップします。

ls -la

以下に示すように、ホームディレクトリにata.scapという新しいファイルが表示されます。

Listing All Files in Home Directory

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

sudo sysdig -r ata.scap
Viewing the ata.scap File

結論

この記事では、Ubuntu 20.04にSysdigをインストールし、csysdigを使用してシステム、アプリケーション、セキュリティ情報を収集する方法について学びました。また、システムの動作を記録するイベントログファイルの作成にも触れました。

この時点で、Sysdigがシステムにインストールされていることで、強力なツールが提供されることに気付いたでしょう。これらのツールは、システム、アプリケーション、インフラストラクチャの動作についてより深い洞察を得るのに役立ちます。

では、この新たな知識を活かして、なぜSysdigを使用してHTTPトラフィックを解析する方法を学ばないのでしょうか?または、Sysdigトレーサを使用してアプリケーションのボトルネックを特定する方法を学びませんか?

Source:
https://adamtheautomator.com/sysdig/