Collector のトラブルシューティング


Red Hat Advanced Cluster Security for Kubernetes 3.74

Collector のトラブルシューティング

Red Hat OpenShift Documentation Team

概要

このガイドを使用して、ログを取得し、失敗した Collector の問題をデバッグする方法を学習してください。

第1章 Collector ログと Pod ステータスの取得と分析

トラブルシューティングの最初のステップは、ログと Pod のステータスを取得することです。ログにより、エラーの根本原因を特定できます。さらに、Pod の最新のステータスを調べると、失敗メッセージに関する情報が得られます。

1.1. Collector ログの取得

まず、失敗した Collector からのログを調べる必要があります。環境とアクセス権限に応じて、次の 2 つの方法でログを取得できます。

1.1.1. oc または kubectl コマンドによるログの取得

oc または kubectl コマンドを使用して、実行中の Collector Pod からログを取得できます。必要に応じて、現在の Collector Pod が再起動している場合は、以前の Collector Pod のログを確認することもできます。

前提条件

  • Pod とログを一覧表示する権限がある。

    $ oc auth can-i get pods && oc auth can-i get pods --subresource=logs 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。

手順

  1. ラベル app=collector が付いたすべての Pod を一覧表示します。

    $ oc get pods -n stackrox -l app=collector 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。

    出力例

    collector-vclg5    1/2     CrashLoopBackOff   2 (25s ago)   2m41s+

  2. Collector Pod のログを取得します。

    $ oc logs -n stackrox <collector_pod_name> collector 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。<collector_pod_name> には、Collector Pod の名前 (collector-vclg5 など) を指定します。
  3. (オプション) 現在の Collector Pod が再起動している場合は、以前の Collector Pod のログを確認できます。

    $ oc logs -n stackrox <collector_pod_name> collector --previous 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。<collector_pod_name> には、Collector Pod の名前 (collector-vclg5 など) を指定します。

1.1.2. RHACS 診断バンドルからのログの取得

Red Hat Advanced Cluster Security for Kubernetes (RHACS) ユーザーインターフェイスから診断バンドルをダウンロードして、Collector ログにアクセスすることもできます。診断バンドルをダウンロードしたら、すべての Collector Pod のログを調べることができます。詳しくは、診断バンドルの生成 を参照してください。

1.2. Collector Pod のステータスの分析

Pod の最新のステータスを調べることは、Collector のクラッシュの原因を特定するもう 1 つの簡単な方法です。失敗メッセージは最新の状態に記録され、kubectl describe pod または oc describe pod コマンドを使用してアクセスできます。

手順

  • Collector Pod に関する情報を表示できます。

    $ oc describe pod -n stackrox <collector_pod_name> 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。<collector_pod_name> には、Collector Pod の名前 (collector-vclg5 など) を指定します。

    出力例

    [...]
        Last State:     Terminated
          Reason:       Error
          Message:      No suitable kernel object downloaded 1
          Exit Code:    1
          Started:      Fri, 21 Oct 2022 11:50:56 +0100
          Finished:     Fri, 21 Oct 2022 11:51:25 +0100
    [...]

    1
    この例では、Collector がカーネルドライバーのダウンロードに失敗したことがわかります。

第2章 よくあるエラー状態

Collector が、自身を設定し、システムのカーネルドライバーを検索またはダウンロードする場合、エラーの大部分は Collector の起動時に発生します。

次の図は、Collector の起動プロセスの主要部分を示しています。

図2.1 Collector Pod の起動プロセス

Collector Pod の起動プロセス

起動手順の一部が失敗した場合、ログには、成功または失敗した手順の詳細を示す診断概要が表示されます。

次のログファイルの例は、正常な起動を示しています。

[INFO    2022/11/28 13:21:55] == Collector Startup Diagnostics: ==
[INFO    2022/11/28 13:21:55]  Connected to Sensor?       true
[INFO    2022/11/28 13:21:55]  Kernel driver available?   true
[INFO    2022/11/28 13:21:55]  Driver loaded into kernel? true
[INFO    2022/11/28 13:21:55] ====================================

ログ出力は、Collector が Sensor に接続し、カーネルドライバーを見つけてロードしたことを確認します。このログを使用して、Collector が正常に起動したかどうかを確認できます。

2.1. Sensor に接続できない

起動したら、まず Sensor に接続できるかを確認します。Sensor は、ネットワークイベントを処理するためのカーネルドライバーと CIDR ブロックのダウンロードを実行し、起動プロセスの重要な部分となっています。次のログは、Sensor に接続できないことを示しています。

Collector Version: 3.12.0
OS: Ubuntu 20.04.4 LTS
Kernel Version: 5.4.0-126-generic
Starting StackRox Collector...
[INFO    2022/10/13 12:20:43] Hostname: 'hostname'
[...]
[INFO    2022/10/13 12:20:43] Sensor configured at address: sensor.stackrox.svc:9998
[INFO    2022/10/13 12:20:43] Attempting to connect to Sensor
[INFO    2022/10/13 12:21:13]
[INFO    2022/10/13 12:21:13] == Collector Startup Diagnostics: ==
[INFO    2022/10/13 12:21:13]  Connected to Sensor?       false
[INFO    2022/10/13 12:21:13]  Kernel driver available?   false
[INFO    2022/10/13 12:21:13]  Driver loaded into kernel? false
[INFO    2022/10/13 12:21:13] ====================================
[INFO    2022/10/13 12:21:13]
[FATAL   2022/10/13 12:21:13] Unable to connect to Sensor.

このエラーは、Sensor が正しく起動していないか、Collector の設定が正しくないことを意味している可能性があります。この問題を解決するには、Collector の設定を確認して、Sensor アドレスが正しく、Sensor Pod が正しく実行されていることを確認する必要があります。

Collector ログを表示して、設定された Sensor アドレスを具体的に確認します。または、次のコマンドを実行できます。

$ kubectl -n stackrox get pod <collector_pod_name> -o jsonpath='{.spec.containers[0].env[?(@.name=="GRPC_SERVER")].value}' 1
1
<collector_pod_name> には、Collector Pod の名前 (collector-vclg5 など) を指定します。

2.2. カーネルドライバーが利用できない

Collector は、ノードのカーネルバージョン用のカーネルドライバーがあるかどうかを判断します。Collector は、まずローカルストレージで正しいバージョンとタイプのドライバーを検索し、次に Sensor からドライバーをダウンロードしようとします。次のログは、ローカルカーネルドライバーも Sensor のドライバーも存在しないことを示しています。

Collector Version: 3.12.0
OS: Alpine Linux v3.14
Kernel Version: 5.10.109-0-virt
Starting StackRox Collector...
[INFO    2022/10/13 13:32:57] Hostname: 'alpine'
[...]
[INFO    2022/10/13 13:32:57] Sensor configured at address: sensor.stackrox.svc:9999
[INFO    2022/10/13 13:32:57] Attempting to connect to Sensor
[INFO    2022/10/13 13:32:57] Successfully connected to Sensor.
[INFO    2022/10/13 13:32:57] Module version: 2.2.0
[INFO    2022/10/13 13:32:57] Attempting to find kernel module - Candidate kernel versions:
[INFO    2022/10/13 13:32:57] 5.10.109-0-virt
[INFO    2022/10/13 13:32:57] Local storage does not contain collector-5.10.109-0-virt.ko
[...]
[INFO    2022/10/13 13:32:57] Attempting to download kernel object from https://sensor.stackrox.svc/kernel-objects/2.2.0/collector-5.10.109-0-virt.ko.gz 1
[WARNING 2022/10/13 13:32:58] [Throttled] Unexpected HTTP request failure (HTTP 404) 2
[WARNING 2022/10/13 13:33:08] [Throttled] Unexpected HTTP request failure (HTTP 404)
[WARNING 2022/10/13 13:33:18] [Throttled] Unexpected HTTP request failure (HTTP 404)
[WARNING 2022/10/13 13:33:29] [Throttled] Unexpected HTTP request failure (HTTP 404)
[WARNING 2022/10/13 13:33:35] Attempted to download collector-5.10.109-0-virt.ko.gz 30 time(s)
[WARNING 2022/10/13 13:33:35] Failed to download from collector-5.10.109-0-virt.ko.gz
[WARNING 2022/10/13 13:33:35] Unable to download kernel object collector-5.10.109-0-virt.ko to /module/collector.ko.gz
[ERROR   2022/10/13 13:33:35] Error getting kernel object: collector-5.10.109-0-virt.ko
[INFO    2022/10/13 13:33:35]
[INFO    2022/10/13 13:33:35] == Collector Startup Diagnostics: ==
[INFO    2022/10/13 13:33:35]  Connected to Sensor?       true
[INFO    2022/10/13 13:33:35]  Kernel driver available?   false
[INFO    2022/10/13 13:33:35]  Driver loaded into kernel? false
[INFO    2022/10/13 13:33:35] ====================================
[INFO    2022/10/13 13:33:35]
[FATAL   2022/10/13 13:33:35]  No suitable kernel object downloaded for kernel 5.10.109-0-virt 3
1
ログ表示では、まずモジュールの検索が試行され、次に Sensor からドライバーをダウンロードしようとします。
2
404 エラーは、ノードのカーネルにカーネルドライバーがないことを示します。
3
ドライバーがないため、Collector は CrashLoopBackOff 状態になります。

カーネルバージョン ファイルには、サポートされているすべてのカーネルバージョンのリストが含まれています。

2.3. カーネルドライバーのロードに失敗する

Collector が起動する前に、カーネルドライバーがロードされます。ただし、まれに、Collector がカーネルドライバーをロードできず、さまざまなエラーメッセージや例外が出力されるという問題が発生する場合があります。このような場合は、ログを確認して、カーネルドライバーのロードに失敗した問題を特定する必要があります。

次の Collector ログを検討してください。

[INFO    2022/10/13 14:25:13] Hostname: 'hostname'
[...]
[INFO    2022/10/13 14:25:13] Successfully downloaded and decompressed /module/collector.ko
[INFO    2022/10/13 14:25:13]
[INFO    2022/10/13 14:25:13] This product uses kernel module and ebpf subcomponents licensed under the GNU
[INFO    2022/10/13 14:25:13] GENERAL PURPOSE LICENSE Version 2 outlined in the /kernel-modules/LICENSE file.
[INFO    2022/10/13 14:25:13] Source code for the kernel module and ebpf subcomponents is available upon
[INFO    2022/10/13 14:25:13] request by contacting support@stackrox.com.
[INFO    2022/10/13 14:25:13]
[...]
[INFO    2022/10/13 14:25:13] Inserting kernel module /module/collector.ko with indefinite removal and retry if required.
[ERROR   2022/10/13 14:25:13] Error inserting kernel module: /module/collector.ko: Operation not permitted. Aborting...
[ERROR   2022/10/13 14:25:13] Failed to insert kernel module
[ERROR   2022/10/13 14:25:13] Failed to setup Kernel module
[INFO    2022/10/13 14:25:13]
[INFO    2022/10/13 14:25:13] == Collector Startup Diagnostics: ==
[INFO    2022/10/13 14:25:13]  Connected to Sensor?       true
[INFO    2022/10/13 14:25:13]  Kernel driver available?   true
[INFO    2022/10/13 14:25:13]  Driver loaded into kernel? false
[INFO    2022/10/13 14:25:13] ====================================
[INFO    2022/10/13 14:25:13]
[FATAL   2022/10/13 14:25:13] Failed to initialize collector kernel components.

このようなエラーが発生した場合、自分で修正できる可能性はほとんどありません。このような場合は、Red Hat Advanced Cluster Security for Kubernetes (RHACS) サポートチームに報告するか、GitHub の問題 を作成してください。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.