すべてのプロダクト
Search
ドキュメントセンター

CloudMonitor:オペレーティングシステムの監視

最終更新日:Aug 20, 2024

CloudMonitorエージェントをElastic Compute Service (ECS) インスタンスまたはサードパーティホストにインストールして、オペレーティングシステムのモニタリングデータを収集できます。 オペレーティングシステムメトリックのアラートルールを設定できます。 メトリックの値がアラート条件に達すると、アラート通知が送信され、メトリックをタイムリーに監視できます。

前提条件

監視するホストにCloudMonitorエージェントがインストールされています。 詳細については、「Cloud Monitorエージェントのインストールとアンインストール」をご参照ください。

メトリクス

オペレーティングシステムのメトリックの値は15秒ごとに収集されます。 次のメトリクスを使用できます。

  • CPU のメトリクス

    • Windows

      システムはntdll.dllのNtQuerySystemInformation関数を呼び出して、各プロセスまたはスレッドによって消費されるCPU時間を取得します。 システムは、この関数を2回呼び出して、2回の呼び出しの間に実行される各プロセスまたはスレッドのCPU使用率を取得します。

    • Linux

      topコマンドの出力を確認して、次の表に示すメトリックに関する情報を表示できます。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    Linuxの備考

    (エージェント) cpu.idle

    CPUアイドル時間 (パーセンテージ) 。

    %

    cpu_idle

    userIdとinstanceId

    最大、最小、および平均

    合計CPU時間に対するCPUアイドル時間の割合。

    (エージェント) cpu.system

    カーネルのCPU使用率。

    %

    cpu_system

    userIdとinstanceId

    最大、最小、および平均

    システムコンテキストスイッチのCPU使用率。 高い値は、過剰なプロセスまたはスレッドがホスト上で実行されることを示します。

    (アジャンt)cpu.us er

    ユーザープロセスのCPU使用率。

    %

    cpu_user

    userIdとinstanceId

    最大、最小、および平均

    ユーザープロセスのCPU使用率。

    (エージェント) cpu.wait

    I/O操作の完了を待つCPUの割合。

    %

    cpu_wait

    userIdとinstanceId

    最大、最小、および平均

    高い値は、頻繁なI/O動作を示す。

    (エージェント) cpu.other

    他の操作によって占有されるCPUの割合。

    %

    cpu_other

    userIdとinstanceId

    最大、最小、および平均

    計算方法: 低優先度プロセスのCPU使用率 + SoftIrqのCPU使用率 + IrqのCPU使用率 + 盗まれたCPU使用率。

    (エージェント) cpu.total

    占有されているCPUの割合。

    %

    cpu_total

    userIdとinstanceId

    最大、最小、および平均

    現在の消費量=1 - Host.cpu.idle

  • メモリメトリクス

    • Windows

      システムは、32ビットWindowsオペレーティングシステムで現在の物理メモリと仮想メモリの使用量を取得するためにkernel32.dllのGlobalMemoryStatusEx関数を呼び出します。

    • Linux

      freeコマンドの出力を確認して、次の表に示すメトリックに関する情報を表示できます。 freeコマンドは、/proc/meminfoファイルからメモリ情報を取得します。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    Linuxの備考

    (エージェント) memory.total.space

    メモリの合計サイズ。

    Byte

    memory_totalspace

    userIdとinstanceId

    最大、最小、および平均

    ホスト上のメモリの合計サイズ。

    データソース: /proc/meminfoファイルのMemTotalパラメーターの値。

    (エージェント) memory.free.space

    使用可能なメモリのサイズ。

    Byte

    memory_freespace

    userIdとinstanceId

    最大、最小、および平均

    システムで使用可能なメモリのサイズ。

    データソース: /proc/meminfoファイルのMemFreeパラメーターの値。

    (アジェンt)memory.us ed.space

    使用済みメモリのサイズ。

    Byte

    memory_usedspace

    userIdとinstanceId

    最大、最小、および平均

    システムで使用されるメモリのサイズ。

    計算方法: メモリの合計サイズ-使用可能なメモリのサイズ。

    (エージェント) memory.actualused.space

    ユーザーが消費するメモリのサイズ。

    Byte

    memory_actualusedspace

    userIdとinstanceId

    最大、最小、および平均

    計算方法:

    • MemAvailableパラメーターが /proc/meminfoファイルに存在する場合、次の式が計算に使用されます。メモリの合計サイズ-MemAvailableの値。

    • MemAvailableパラメーターが /proc/meminfoファイルに存在しない場合、計算には次の式が使用されます。

    説明

    CentOS 7.2、Ubuntu 16.04、または最新のLinuxカーネルを使用するそれ以降のバージョンでは、計算結果がより正確になります。 MemAvailableパラメーターの詳細については、「commit」をご参照ください。

    (エージェント) メモリ. free. の使用

    使用可能なメモリの割合。

    %

    memory_freeutilization

    userIdとinstanceId

    最大、最小、および平均

    計算方法:

    • /proc/meminfoファイルにMemAvailableパラメーターが存在する場合、次の計算式が使用されます。MemAvailableの値 /メモリの合計サイズ × 100% 。

    • /proc/meminfoファイルにMemAvailableパラメーターが存在しない場合は、(メモリの合計サイズ-実際に使用される値) /メモリの合計サイズ × 100% の計算式が使用されます。

    (アジェンt)memory.us ed.utilization

    メモリ使用量。

    %

    memory_usedutilization

    userIdとinstanceId

    最大、最小、および平均

    計算方法:

    • /proc/meminfoファイルにMemAvailableパラメーターが存在する場合、(メモリの合計サイズ-MemAvailableの値) /メモリの合計サイズ × 100% の計算式が使用されます。

    • /proc/meminfoファイルにMemAvailableパラメーターが存在しない場合、(メモリの合計サイズ-使用可能なメモリの合計サイズ-バッファで使用されるメモリのサイズ-キャッシュされたメモリのサイズ) /メモリの合計サイズ × 100% の計算式が使用されます。

  • 平均システム負荷のメトリック

    • Windows

      このメトリックは、Windowsホストでは使用できません。

    • Linux

      topコマンドの出力を確認して、次の表に示すメトリックに関する情報を表示できます。 メトリックの値が高いほど、実行中のプロセスが多いことを示します。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    (エージェント) load.1m

    前の1分以内の平均システム負荷。

    なし

    load_1m

    userIdとinstanceId

    最大、最小、および平均

    (エージェント) load.5m

    過去5分以内の平均システム負荷。

    なし

    load_5m

    userIdとinstanceId

    最大、最小、および平均

    (エージェント) load.15m

    過去15分以内の平均システム負荷。

    なし

    load_15m

    userIdとinstanceId

    最大、最小、および平均

    (エージェント) load.1m.percore

    前の1分以内のCPUコアあたりの平均システム負荷。

    なし

    load_per_core_1m

    userIdとinstanceId

    最大、最小、および平均

    (エージェント) load.5m.percore

    過去5分以内のCPUコアあたりの平均システム負荷。

    なし

    load_per_core_5m

    userIdとinstanceId

    最大、最小、および平均

    (エージェント) load.15m.percore

    過去15分以内のCPUコアあたりの平均システム負荷。

    なし

    load_per_core_15m

    userIdとinstanceId

    最大、最小、および平均

  • ディスクメトリクス

    • Windows

      システムはKernel32.dllでGetDiskFreeSpaceExA関数を呼び出して、使用済みディスク容量、ディスク使用量、空きディスク容量、および合計ディスク容量を取得します。 RegConnectRegistryA関数を呼び出して、レジストリのHKEY_PERFORMANCE_DATAエントリに接続します。 次に、RegQueryValueExA関数を呼び出して、読み取りカウント、書き込みカウント、読み取りバイト、書き込みバイト、読み取り時間、書き込み時間、およびディスクアクティブ時間を含む、HKEY_PERFORMANCE_DATA内のディスク情報を照会します。

    • Linux

      dfコマンドの出力を確認して、ディスクとinodeの使用状況に関するメトリックに関する情報を表示できます。 iostatコマンドの出力を確認して、ディスクの読み取りと書き込みのメトリックに関する情報を表示できます。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    Host.diskusage.used

    使用中のディスク容量。

    Byte

    diskusage_used

    userId、instanceId、およびデバイス

    最大、最小、および平均

    Host.diskusage.utilization

    ディスク使用率。

    %

    diskusage_utilization

    userId、instanceId、およびデバイス

    最大、最小、および平均

    Host.diskusage.free

    通常ユーザーとスーパーユーザーの使用可能なディスク領域のサイズ。

    Byte

    diskusage_free

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (Agen t)disk.us age.avail_device

    通常のユーザーの使用可能なディスク領域のサイズ。

    Byte

    diskusage_avail

    userId、instanceId、およびデバイス

    最大、最小、および平均

    Host.diskusage.total

    合計ディスク容量のサイズ。

    Byte

    diskusage_total

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) disk.read.bps_device

    1秒あたりにディスクから読み取られるバイト数。

    Byte/s

    disk_readbytes

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) disk.write.bps_device

    1秒あたりにディスクに書き込まれるバイト数。

    Byte/s

    disk_writebytes

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) disk.read.iops_device

    ディスクが1秒あたりに受信する読み取り要求の数。

    リクエスト /s

    disk_readiops

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) disk.write.iops_device

    ディスクが1秒あたりに受け取る書き込み要求の数。

    リクエスト /s

    disk_writeiops

    userId、instanceId、およびデバイス

    最大、最小、および平均

  • ファイルシステムのメトリック

    • Windows

      このメトリックは、Windowsホストでは使用できません。

    • Linux

      dfコマンドの出力を確認して、次の表に示すメトリックに関する情報を表示できます。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    Linuxの備考

    (エージェント) fs.inode.utilization_device

    inodeの使用法。

    %

    fs_inodeutilization

    userId、instanceId、およびデバイス

    最大、最小、および平均

    Linuxオペレーティングシステムは、ファイル名ではなくinode番号を使用してファイルを識別します。 inodeが使い果たされると、ディスク容量が十分であってもファイルを作成できません。 したがって、システムはinodeの使用を監視する必要があります。 inodeの数は、ファイルの数を示す。 多数の小さなファイルは、高いinode使用を引き起こす可能性があります。

  • ネットワークメトリック

    • Windows

      システムは、Iphlpapi.dllのGetAdaptersAddresses関数を呼び出して、ホスト上のNICのアドレスを取得します。 システムはGetIfTable関数を呼び出して、各インターフェイスのメトリックのデータを取得します。たとえば、インターフェイスが1秒あたりに送受信するビット数、インターフェイスが1秒あたりに送受信するパケット数、インターフェイスが1秒あたりに送受信するエラーパケット数などです。

    • Linux

      • ssコマンドの出力を確認して、TCP接続メトリックに関する情報を表示できます。

        説明

        TCP接続は、TCP経由でECSインスタンスとクライアント間に確立される接続を表します。

        デフォルトでは、CloudMonitorエージェントは、さまざまな状態のTCP接続に関する次のデータを収集します: TCP_TOTAL、ESTABLISHED、およびNON_ESTABLISHED。 TCP_TOTALは、接続の総数を示す。 ESTABLISHEDは、確立された接続の数を示す。 NON_ESTABLISHEDは、ESTABLISHED状態にない接続の数を示す。

      • iftopコマンドの出力を確認して、ネットワークメトリックに関する情報を表示できます。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    (エージェント) network.in.rate_device

    NICが1秒あたりに受け取るビット数。 これはNICのダウンストリーム帯域幅です。

    bit/s

    networkin_rate

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.out.rate_device

    NICが1秒あたりに送信するビット数。 これはNICのアップストリーム帯域幅です。

    bit/s

    networkout_rate

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.in.packages_device

    NICが1秒あたりに受信するパケット数。

    カウント /秒

    networkin_packages

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.out.packages_device

    NICが1秒あたりに送信するパケット数。

    カウント /秒

    networkout_packages

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.in.errorpackages_device

    ドライブが検出した受信エラーパケットの数。

    カウント /秒

    networkin_errorpackages

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.out.errorpackages_device

    ドライブが検出したアウトバウンドエラーパケットの数。

    カウント /秒

    networkout_errorpackages

    userId、instanceId、およびデバイス

    最大、最小、および平均

    (エージェント) network.tcp.connection_state

    各状態のTCP接続の数。 これらの接続状態は、LISTEN、SYN_SENT、ESTABLISHED、SYN_RECV、FIN_WAIT1、CLOSE_WAIT、FIN_WAIT2、LAST_ACK、TIME_WAIT、CLOSING、およびCLOSEDを含む。

    集計

    net_tcpconnection

    userId、instanceId、およびstate

    最大、最小、および平均

  • 上位5つのプロセスに関連するメトリック

    • Windows

      • クエリ

        システムは、プロセスのハンドルを取得するためにKernel32.dllのOpenProcess関数を呼び出します。 GetProcessTimes関数を2回呼び出して、プロセスによって消費されたCPU時間を取得し、コマンドの2回の実行の間のプロセスのCPU使用率を計算します。 RegConnectRegistryA関数を呼び出して、レジストリのHKEY_PERFORMANCE_DATAエントリに接続します。 次に、システムはRegQueryValueExA関数を呼び出して、プロセスID、親プロセスID、優先度、仮想メモリ、常駐メモリ、共有メモリ、プロセスが開くファイルの数、スレッドカウント、ページエラー、読み取りバイト、および書き込みバイトを含む、HKEY_PERFORMANCE_DATA内のプロセス情報を照会します。

      • 指定したキーワードに一致するプロセスの数を数える

        • システムは、OpenProcess関数を呼び出して、プロセスのハンドルを取得します。 システムはntdll.dllのNtQueryInformationProcess関数を呼び出して、プロセスのRTL_USER_PROCESS_PARAMETERSを取得します。 ReadProcessMemory関数を呼び出して、コマンドライン情報からプロセスの引数とルートパスを取得します。 このようにして、システムはプロセスのディレクトリを取得できます。

        • システムは、OpenProcessToken関数を呼び出して、トークンのハンドルを取得します。 システムはGetTokenInformation関数を呼び出してトークン情報を取得します。 LookupAccountSid関数を呼び出して、プロセスのユーザー名とユーザーグループを取得します。

        • システムは、プロセスのディレクトリ、ユーザー名、およびユーザーグループをキーワードと照合します。 プロセス情報がキーワードと一致する場合、システムはHost.process.numberの値を1だけ増加させます。

    • Linux

      • topコマンドの出力を確認して, プロセスのCPU使用率とメモリ使用率の情報を確認できます。 CPU使用率は、マルチコアCPUの消費量を示す。

      • lsofコマンドの出力を確認して、Host.process.openfileメトリックに関する情報を表示できます。

      • ps aux | grep '<Keyword>' コマンドの出力を確認して、Host.process.numberメトリックに関する情報を表示できます。

    メトリック

    説明

    単位

    MetricName

    寸法

    統計

    補足

    (エージェント) process.cpu_pid

    プロセスのCPU使用率。

    %

    process.cpu

    userId、instanceId、name、pid

    Average

    このメトリックにアラートルールを設定することはできません。

    (エージェント) process.memory_pid

    プロセスのメモリ使用率。

    %

    process.memory

    userId、instanceId、name、pid

    Average

    このメトリックにアラートルールを設定することはできません。

    (エージェント) process.openfile_pid

    プロセスによって開かれるファイルの数。

    集計

    process.openfile

    userId、instanceId、name、pid

    Average

    このメトリックにアラートルールを設定することはできません。

    (エージェント) process.count_processname

    指定されたキーワードに一致するプロセスの数。

    集計

    プロセス. 番号

    userId、instanceId、およびprocessName

    Average

    このメトリックにアラートルールを設定することはできません。

オペレーティングシステムのモニタリングデータの表示

  1. にログインします。CloudMonitorコンソール.

  2. 左側のナビゲーションウィンドウで、[クラウドサービスモニタリング] > [ホストモニタリング] をクリックします。

  3. [ホストモニタリング] ページで、ホスト名をクリックするか、ホストの [操作] 列で [モニタリングチャート] をクリックします。

    [OSモニタリング] タブでは、オペレーティングシステムのモニタリングデータを表示できます。 メトリックのアラートルールを設定し、アラートステータスを表示することもできます。 詳細については、「手順2: ホストのアラートルールの作成」および「手順3: ホストアラートの表示」をご参照ください。

関連ドキュメント