System Observer Monitoring (SysOM) は、OSカーネルレベルのコンテナ監視方法です。 Container Service for Kubernetes (ACK) では、SysOMに基づいてOSカーネルレベルでコンテナーを監視できます。この機能は、コンテナー化されたアプリケーションとモニターコンテナーのデプロイと移行に役立ちます。 このトピックでは、ack-sysom-monitorを有効にして使用する方法について説明します。 このトピックでは、コンテナモニタリングのSysOMメトリクスについても説明します。
前提条件
10月2021日以降にACKマネージドクラスターが作成されるか、ACKサーバーレスクラスターが作成され、クラスターのKubernetesバージョンは1.18.8以降です。 クラスターの作成方法の詳細については、「ACK管理クラスターの作成」および「ACKサーバーレスクラスターの作成」をご参照ください。 クラスターを更新する方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。
Prometheusのマネージドサービスが有効になっています。 詳細については、「Prometheusのマネージドサービスの有効化」をご参照ください。
ack-sysom-monitorの概要
ack-sysom-monitorは、拡張されたBerkeley Packet Filter (eBPF) テクノロジを使用して、ノードとコンテナのメトリックを収集し、カーネルレベルでメトリックを強化するSysOMコンポーネントです。 ack-sysom-monitorは、システムメトリックに加えて、強化されたメトリックも提供し、ポッドカーネルレベルのモニタリングとノードカーネルレベルのモニタリングをサポートし、システムジッタ、遅延、リソースリーク、ポッドメモリ例外などの一般的な問題を特定するのに役立ちます。
ack-sysom-monitorの請求
ack-sysom-monitorコンポーネントを有効にすると、関連コンポーネントは自動的にManaged Service for Prometheusにモニタリングメトリックを送信します。 これらのメトリックはカスタムメトリックと見なされます。 カスタム指標には料金がかかります。
この機能を有効にする前に、課金の概要を読んで、カスタムメトリクスの課金ルールを理解することをお勧めします。 料金は、クラスターサイズとアプリケーション数によって異なります。 リソース使用量の表示の手順に従って、リソース使用量を監視および管理できます。
ack-sysom-monitorを有効にする
最初に
ARMSコンソールを使用します。左側のナビゲーションウィンドウで、[統合センター] をクリックします。
[統合センター] ページの [インフラストラクチャ] セクションで、[SysOMシステム観察] を見つけてクリックします。
SysOMシステム観察パネルの [統合の開始] ステップで、統合するACKクラスターを選択し、[OK] をクリックします。
ack-sysom-monitorの使用
手順
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[Prometheus Monitoring] ページで、[SysOM] タブをクリックして、ack-sysom-monitorによって提供されるメトリクスを表示します。
ack-sysom-monitorは、ノードカーネルレベルのモニタリングとポッドカーネルレベルのモニタリングをサポートしています。
ノードカーネルレベルのモニタリング
[SysOM-ノード] タブでは、ノードのCPU、メモリ、スケジューリング、ストレージ、およびネットワークメトリックを表示できます。
ポッドカーネルレベルのモニタリング
[SysOM - Pods] タブでは、ポッドのメモリ、CPU、ネットワーク、およびI/Oメトリックをリアルタイムで表示できます。
次に何をすべきか
SysOMに基づいてカーネルレベルのコンテナーモニタリングを無効にする場合は、ack-sysom-monitorコンポーネントをアンインストールします。 これにより、追加料金の発生が回避される。 詳細については、「コンポーネントの管理」をご参照ください。
メトリクス
ack-sysom-monitorによって提供されるメトリックは、Prometheusで使用されるデータモデルに基づいて定義されます。
ノードメトリクス
ノードメトリックには、CPU、メモリ、ストレージ、ネットワーク、およびその他のメトリックが含まれます。
CPUとスケジューリングに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_proc_cpu_total | gauge | % | ノードのCPU稼働時間に関する情報を表示します。 このメトリックは、CPU稼働時間の合計に対する状態のCPU稼働時間の比率を示します。 次の状態がサポートされています: ユーザーモード、カーネルモード、softirq、hardirq、idle、およびiowait。 |
sysom_proc_cpus | gauge | % | ノード上のCPUの稼働時間に関する情報を表示します。 このメトリックは、CPUの全稼働時間に対する状態のCPUの稼働時間の比率を示します。 次の状態がサポートされています: ユーザーモード、カーネルモード、softirq、hardirq、idle、およびiowait。 |
sysom_proc_sirq | gauge | % | ノードのsoftirqに関する情報を表示します。 このメトリックは、各タイプのsoftirqが発生する回数を示します。 サポートされるsoftirqタイプには、HI、TIMER、NET_TX、NET_RX、BLOCK、IRQ_POLL、TASKLET、SCHED、HRTIMER、およびRCU softirqが含まれます。 |
sysom_proc_stat_counters | gauge | - | ノードがDステートで過剰な数のプロセスを実行しているかどうかと、システムの負荷に関する情報を表示します。 このメトリックは、実行中またはD状態のプロセス数を示します。 また、システムの起動時刻やコンテキストの切り替え回数も示します。 |
sysom_proc_loadavg | gauge | - | ノードの負荷平均を表示します。 このメトリックは、実行長、前の1分以内の負荷平均、前の5分以内の負荷平均、前の15分以内の負荷平均、およびシステムプロセスの総数を含む負荷平均を示します。 |
sysom_proc_schedstat | gauge | ns (ナノ秒) | ノードのスケジューリング待ち時間に関する情報を表示します。 このメトリックには、現在のCPUのキュー内のプロセスの待機時間や、現在のCPUで実行されるタイムスライスの長さなど、CPUスケジューリングに関連する統計が表示されます。 |
sysom_cpu_dist | gauge | - | ノードの全体的なスケジューリング情報を表示します。 このメトリックは、プロセスがCPUを解放する時間から、プロセスがCPUにスケジュールされる次の時間までの間隔を示します。 メトリックはまた、プロセスが次の間隔のそれぞれに入る回数をカウントします: 1us、10us、100us、1ms、10ms、100ms、および1s。 |
メモリに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_proc_meminfo | gauge | KiB | ノード上のさまざまな種類のメモリリソースの使用率を表示します。 このメトリックは、総メモリ (total) 、空きメモリ (free) 、使用可能メモリ (available) 、キャッシュ (Cache) 、バッファ (buffers) 、再生可能メモリ (SReclaimable) 、および再生不可能メモリ (SUnreclaim) を含むメモリ使用量を示します。 |
sysom_proc_vmstat | gauge | - | ノードのメモリ使用量とメモリイベントを詳細に表示します。 このメトリックは、さまざまなページとメモリイベントのメモリ統計を示します。 メモリ情報およびメモリイベントは、フリーページ (free pages) 、ダーティページ (dirty Pages) 、ページ読み取りおよび書き込み (pages Read/Write) 、非アクティブリストから回収されたページの数 (非アクティブリストから回収されたページ) 、およびメモリアウト (OOM) キラーがアプリケーションを殺す回数を含む。 |
sysom_proc_buddyinfo | gauge | - | バディシステムがカーネルメモリを割り当て、解放する方法に関する情報を表示します。 このメトリックは、すべてのメモリノードとゾーン、およびリンクリスト内のさまざまなサイズのブロック数など、カーネルバディシステムに関する詳細情報を示します。 |
ストレージに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_proc_disks | gauge | - | ノード上の各ディスクの入力、出力、IOPS、およびレイテンシに関する情報を表示します。 このメトリックは、パーティションによって完了された読み取りおよび書き込み要求の数、読み取りおよび書き込み要求の完了に使用された合計時間、読み取りおよび書き込み要求がマージされた回数、および実行中の読み取りおよび書き込み要求の数を含む、ディスクおよびパーティションの統計を示します。 |
sysom_fs_stat | gauge | - | ノードにマウントされたファイルシステムの使用状況を表示します。 このメトリックは、ファイルシステムのマウントターゲット、ブロックサイズ、使用済みブロックの数と使用可能なブロックの数、使用済みiノードの数と使用可能なiノードの数など、ファイルシステムの使用状況を示します。 |
Metrics related to networks
メトリック | タイプ | 単位 | 説明 |
sysom_proc_networks | gauge | - | ノード上のネットワークインターフェイスカード (NIC) のデータ転送に関する情報を表示します。 このメトリックは、NICによって受信または送信されたデータパケットの総数、バイトの総数、デバイスドライバによって破棄されたデータパケットの総数、および送信または受信に失敗したデータパケットの総数を含む、NICのデータ転送情報を示します。 |
sysom_proc_pkt_status | gauge | - | ノードのネットワークプロトコルスタックによって処理されたデータパケットに関する情報を表示します。 このメトリックは、データパケットがネットワークプロトコルスタックを通過するときに発生するイベントの数を示します。これには、パケット損失の回数、オーバーフローの回数、無効なアサーションの回数などが含まれます。 |
sysom_sock_stat | gauge | - | このメトリックは、アプリケーションロジックまたはシステムパラメーターによって引き起こされるソケット不足またはバッファの問題を特定するのに役立ちます。 メトリックには、ソケットとバッファの使用状況に関する統計が表示されます。これには、合計ソケット、生ソケット、TCPソケット、UDPソケットの使用状況、TCPタイムウェイトまたはオーファン状態のソケット数、TCPソケットとUDPソケットのメモリ使用状況が含まれます。 |
sysom_softnets | gauge | - | ノード上の各CPUのNICソフトウェアが受信したデータパケットに関する情報を表示します。 このメトリックは、softirqによって受信または送信されたパケットの数、およびパケット受信softirqを処理するためにnet_rx_action関数が呼び出された回数など、CPUのNIC softirqに関する統計を示します。 |
sysom_net_health_hist | gauge | - | ノード上のすべてのTCP接続の往復時間 (RTT) の傾向を表示します。 このメトリックは、ノード上のすべてのTCP接続のRTTの傾向を示します。 10ミリ秒、100ミリ秒、1秒など、各平均RTT値に対応する接続数をカウントします。 |
sysom_net_health_count | gauge | - | このメトリックは、 |
sysom_net_retrans_count | gauge | - | ノード上のすべてのTCP接続に関する再送信情報を表示します。 このメトリックは、TCP接続を介して再送信されるデータパケットのタイプと、各タイプの再送信データパケット (SYN、SYN-ACK、RESETパケットなど) の数を示します。 |
sysom_net_tcp_count | gauge | - | ノード上のTCP接続に関する基本情報を表示します。 このメトリックは、アクティブなTCP接続の数、受信または送信されたTCPセグメントの数、再送信されたTCPセグメントの数、受信に失敗したパケットの数など、TCP接続に関する統計を示します。 |
sysom_net_udp_count | gauge | - | ノード上のUDP接続に関する基本情報を表示します。 このメトリックは、受信または送信されたUDPパケットの数、UDP送信または受信バッファでエラーが発生した回数、使用可能なポートがないためにエラーが発生したデータパケットの数など、UDP接続に関する統計を示します。 |
sysom_net_ip_count | gauge | - | ノードのIPレイヤに関する基本情報を表示します。 このメトリックは、転送、受信、または送信されたデータパケットの数など、IP層に関する統計を示します。 |
sysom_net_icmp_count | gauge | - | ノードのICMPプロトコルに関する基本情報を表示します。 このメトリックは、ICMPによって受信または送信されるデータパケットの数、および受信または送信に失敗したデータパケットの数など、ICMPプロトコルに関する統計を示します。 |
その他のシステム指標
メトリック | タイプ | 単位 | 説明 |
sysom_cgroups | gauge | - | 異なるcgroupサブシステムで使用されるcgroupの数を表示して、cgroupリークの識別に役立ちます。 このメトリックは、CPU、Cpuacct、Memory、Pids、Blkio、およびDevicesサブシステムを含む、異なるcgroupサブシステム内のcgroupの数を示します。 |
sysom_uptime | gauge | s (秒) | システム負荷を表示します。 このメトリックは、システムが起動してから現在までのシステムの稼働時間を示します。 このメトリックは、システムのアイドル時間も示します。 |
コンテナーに関連するメトリック
コンテナメトリックには、CPU、メモリ、IO、ネットワーク、およびその他のメトリックが含まれます。
CPUとスケジューリングに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_container_cpu_stat | gauge | - | リソースクォータを調整する必要があるか、その他の最適化が必要かを監視および評価するのに役立ちます。 このメトリックは、各cgroupでCPU制限が適用される回数、CPU制限が適用される合計回数、CPU制限の適用期間など、コンテナーのCPU制限に関する統計を示します。 |
sysom_container_cpu_acctstat | gauge | % | コンテナーのCPU使用率情報を表示します。 このメトリックは、ユーザーモードでのCPU使用率、カーネルモードでのCPU使用率、および合計CPU使用率を含む、各モードで実行されるコンテナー内のタスクのCPU使用率を示します。 |
sysom_container_cpu_cfsquota | gauge | - | コンテナが完全公平スケジューラ (CFS) によって制限される期間を表示します。 このメトリックは、cfs_period_usおよびcfs_quota_usパラメーターを含む、各CFS時間ウィンドウ内でコンテナが実行できる時間を示します。
|
メモリに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_container_memory_stat | gauge | KiB | コンテナー内のさまざまな種類のメモリリソースの使用率を表示します。 このメトリックは、合計メモリ (total) 、空きメモリ (free) 、使用可能メモリ (available) 、キャッシュ (Cache) 、バッファ (buffers) 、再生可能メモリ (SReclaimable) 、および再生不可能メモリ (SUnreclaimable) を含む、コンテナのメモリ使用量に関する統計を示します。 |
sysom_container_memory_filecache | gauge | KiB | このメトリックは、コンテナ内のページキャッシュの使用状況をすばやく把握し、メモリ不足、メモリ遅延、ページキャッシュの過剰使用によるメモリのジッターなどの問題を特定するのに役立ちます。 メトリックは、各コンテナ内で最も多くのページキャッシュを占有する上位10個のファイル、各ファイルのサイズ、および占有されるページキャッシュの合計サイズを含む、コンテナ内のページキャッシュの使用量を示します。 |
sysom_container_memory_gdrcm_latency | gauge | 回 | メモリリソース不足によるメモリ再利用による遅延の数と遅延時間が表示されます。 このメトリックは、1ミリ秒から5ミリ秒までの遅延数、5ミリ秒から10ミリ秒までの遅延数、10ミリ秒から100ミリ秒までの遅延数、100ミリ秒から500ミリ秒までの遅延数、遅延の数は500ミリ秒から1,000ミリ秒の範囲で、遅延の数は1,000ミリ秒を超えます。 |
sysom_container_memory_cdrcm_latency | gauge | 回 | 不十分なメモリcgroupによるメモリ再利用によって引き起こされた遅延の数と遅延の持続時間を表示します。 説明 このメトリックは、現在のメモリcgroupが非ルートcgroupである場合、またはメモリ制限が現在のメモリcgroupに設定されている場合にのみ有効です。 このメトリックは、1ミリ秒から5ミリ秒の範囲の遅延数、5ミリ秒から10ミリ秒の範囲の遅延数、10ミリ秒から100ミリ秒の範囲の遅延数、100ミリ秒から500ミリ秒の範囲の遅延数、遅延の数は500ミリ秒から1,000ミリ秒の範囲で、遅延の数は1,000ミリ秒を超えます。 |
sysom_container_memory_cpt_latency | gauge | 回 | カーネルメモリの調整による遅延の数を表示します。 コンテナ内のプロセスがメモリリソースに適用されると、ノードのメモリが不足しているか、メモリフラグメントの数が多すぎると、メモリ調整がトリガーされます。 このメトリックは、1ミリ秒から5ミリ秒の範囲の遅延数、5ミリ秒から10ミリ秒の範囲の遅延数、10ミリ秒から100ミリ秒の範囲の遅延数、100ミリ秒から500ミリ秒の範囲の遅延数、遅延の数は500ミリ秒から1,000ミリ秒の範囲で、遅延の数は1,000ミリ秒を超えます。 |
IOに関連するメトリック
メトリック | タイプ | 単位 | 説明 |
sysom_container_blkio_stat | gauge | - | コンテナーに関する基本的なIO情報を表示します。 このメトリックは、コンテナが使用するディスクのIO統計を示します。これには、ディスクへの読み取りまたは書き込み要求の数とバイト、キューに送信された読み取りまたは書き込み要求の数とバイト、読み取りまたは書き込み要求の待機時間が含まれます。 |
Metrics related to networks
メトリック | タイプ | 単位 | 説明 |
sysom_container_network_stat | gauge | - | コンテナに関する基本的なデータ転送情報を表示します。 このメトリックは、仮想NICによって受信または送信されたデータパケットまたはバイトの数、および仮想NICデバイスによって破棄されたデータパケットの数を含む、仮想NICのデータ転送統計を示します。 ネットワークプロトコルスタックによって破棄されるデータパケットは考慮されない。 |