IBM WebSphere Application Server のサーバーログを収集する

以下でサポートされています。

このドキュメントでは、Bindplane エージェントを使用して IBM WebSphere Application Server のサーバーログを Google Security Operations に取り込む方法について説明します。

IBM WebSphere Application Server は、システムログ、セキュリティ監査ログ、アクセスログを生成する Java EE アプリケーション サーバーです。パーサーはこれらのログを Unified Data Model(UDM)にマッピングし、プロセスの詳細、ユーザー情報、イベント タイムスタンプ、ファイル メタデータを抽出します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと IBM WebSphere Application Server 間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認する
  • IBM WebSphere Application Server への管理者権限

Bindplane エージェントの Google SecOps 認証情報を取得する

Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。

  • 新しいデプロイ: Chronicle API を使用します(オプション 1)。
  • 従来のデプロイ: Ingestion API が 2027 年 7 月 20 日に廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
  1. Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  2. [IAM と管理]> [サービス アカウント] に移動します。
  3. [サービス アカウントを作成] をクリックします。
  4. 次の構成情報を指定します。
    • サービス アカウント名: アカウントの名前を入力します(例: bindplane-ingest)。
    • サービス アカウントの説明: 説明を入力します(例: Bindplane agent log ingestion)。
  5. [作成して続行] をクリックします。
  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
  7. [**続行**] をクリックして [**完了**] をクリックします。
  8. 作成したサービス アカウントをクリックし、[キー] タブに移動します。
  9. 鍵を追加 > 新しい鍵を作成 の順にクリックします。
  10. [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
  11. キーファイルを Bindplane コレクタ ディレクトリ(Linux の場合は /opt/observiq-otel-collector/ingestion-auth.json、Windows の場合は C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に ingestion-auth.json として保存するか、保存先のパスに合わせて config.yaml の creds_file_path を更新します。
  12. [IAM と管理][>][設定] に移動し、[プロジェクト番号] をコピーします。エクスポート構成に必要になります。

オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイル をダウンロードします。
  4. Bindplane エージェントをインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows へのインストール

  1. 管理者としてコマンド プロンプト または PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. インストールが完了するまでお待ちください。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスは RUNNING と表示されます。

Linux へのインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. インストールが完了するまでお待ちください。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

    サービスは active (running) と表示されます。

その他のインストール リソース

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

ログを取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

構成ファイルを探す

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集する

  • config.yaml の内容全体を次の構成に置き換えます。

    receivers:
      filelog:
        include:
          - /opt/IBM/WebSphere/AppServer/profiles/*/logs/*/SystemOut.log
          - /opt/IBM/WebSphere/AppServer/profiles/*/logs/*/SystemErr.log
        start_at: beginning
    
    exporters:
      chronicle/websphere:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: IBM_WEBSPHERE_APP_SERVER
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/websphere_to_chronicle:
          receivers:
            - filelog
          exporters:
            - chronicle/websphere
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • filelog: ディスクからログファイルを収集するためのレシーバー タイプ
    • include: モニタリングするファイルパスのリスト。デフォルトの WebSphere ログの場所:
      • Linux: /opt/IBM/WebSphere/AppServer/profiles/<PROFILE>/logs/<SERVER>/SystemOut.log
      • Windows: C:\IBM\WebSphere\AppServer\profiles\<PROFILE>\logs\<SERVER>\SystemOut.log
    • start_at: 既存のログを読み取る場合は beginning、新しいエントリのみを読み取る場合は end に設定します。
  • エクスポーターの構成:

    • websphere: エクスポーターの説明名
    • creds_file_path: サービス アカウント JSON キーファイルへのフルパス(オプション 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: 前のステップのお客様 ID
    • location: <LOCATION> を Google SecOps インスタンスのリージョン(us、europe、asia-southeast1 など)に置き換えます。エクスポーターは、この値で chronicle.googleapis.com に接頭辞を付けます。完全なリストについては、リージョン エンドポイントをご覧ください。
    • project: <PROJECT_NUMBER> を [IAM と管理] > [設定] のプロジェクト番号に置き換えます。
    • endpoint: chronicle.googleapis.com に設定したままにします。
    • IBM_WEBSPHERE_APP_SERVER: Chronicle に表示されるログタイプ
    • ingestion_labels: YAML 形式のオプションのラベル(例: env: production)
  • パイプラインの構成:

    • websphere_to_chronicle: パイプラインの説明名

レガシー Ingestion API エクスポーター

  • オプション 2 の取り込み認証ファイルを使用する場合は、exporters ブロックを次のように置き換えます。creds_file_path を取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.com を リージョン エンドポイント(europe-malachiteingestion-pa.googleapis.com など)に置き換えます。

    exporters:
      chronicle/websphere:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: IBM_WEBSPHERE_APP_SERVER
        raw_log_field: body
        ingestion_labels:
          env: production
    

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Linux: Ctrl+O、Enter、Ctrl+X を押します。
    • Windows: [ファイル] > [保存] をクリックします。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R を押して「services.msc」と入力し、Enter キーを押します。
      2. [observIQ OpenTelemetry Collector] を探します。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

IBM WebSphere Application Server のロギングを構成する

  1. IBM WebSphere Application Server 管理コンソールにログインします。
  2. [トラブルシューティング] > [ログとトレース] に移動します。
  3. サーバーを選択します(例: server1)。
  4. [診断トレース] をクリックしてトレース ロギング レベルを構成するか、[JVM ログ] をクリックして SystemOut ログと SystemErr ログの設定を構成します。
  5. [**JVM ログ**] で、次の設定を確認します:
    • System.out ログファイル名: ${SERVER_LOG_ROOT}/SystemOut.log
    • System.err ログファイル名: ${SERVER_LOG_ROOT}/SystemErr.log
    • ログファイルのローテーション: ログファイルが際限なく増大しないように、ログ ローテーション(ファイルサイズや時間など)を構成します。
  6. [適用]、[保存] の順にクリックして、構成を保存します。
  7. WebSphere サーバーのログ ディレクトリを特定します。デフォルトの場所は次のとおりです。
    • <WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/SystemOut.log
    • <WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/SystemErr.log
    • <WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/BinaryAudit*(監査が有効になっている場合はセキュリティ監査ログ)
  8. config.yaml の Bindplane エージェントの include パスが、WebSphere サーバー上の実際のログファイルの場所と一致していることを確認します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
number, MemCount, JMSMessageID 追加の 各フィールドの Key-Value ペアとしてマージ
TrgAction, description metadata.description 空でない場合は TrgAction の値、それ以外の場合は説明
時間 metadata.event_timestamp MM/dd/yy HH:mm:ss.SSS Z、M/dd/yy H:mm:ss.SSS Z、UNIX_MS 形式の日付フィルタを使用して解析
metadata.event_type 「GENERIC_EVENT」に設定
アクション metadata.product_event_type 値を直接コピー
product_log_id metadata.product_log_id 値を直接コピー
version metadata.product_version 値を直接コピー
product metadata.product_name 値を直接コピー
vendor metadata.vendor_name 値を直接コピー
file_name target.file.full_path 値を直接コピー
コマンド target.process.command_line 値を直接コピー
filename target.process.file.full_path 値を直接コピー
メンバー target.user.group_identifiers 処理済みの Members 配列からマージ
Eid target.user.product_object_id 値を直接コピー
プロフィール target.user.user_display_name 値を直接コピー
principal_user event.idm.read_only_udm.principal.user.userid 変更履歴からマッピング
exception_code event.idm.read_only_udm.security_result.detection_fields 変更履歴からマッピング
exception_class event.idm.read_only_udm.security_result.detection_fields 変更履歴からマッピング
source_line event.idm.read_only_udm.additional.fields 変更履歴からマッピング
length event.idm.read_only_udm.additional.fields 変更履歴からマッピング
websphere_java_version event.idm.read_only_udm.additional.fields 変更履歴からマッピング
websphere_platform_details event.idm.read_only_udm.additional.fields 変更履歴からマッピング
java_compiler event.idm.read_only_udm.additional.fields 変更履歴からマッピング
java_vm_name event.idm.read_only_udm.additional.fields 変更履歴からマッピング
parent_context event.idm.read_only_udm.additional.fields 変更履歴からマッピング
event_context event.idm.read_only_udm.additional.fields 変更履歴からマッピング
method_name event.idm.read_only_udm.additional.fields 変更履歴からマッピング
principal_application event.idm.read_only_udm.principal.application 変更履歴からマッピング
os_version event.idm.read_only_udm.principal.asset.platform_software.platform_version 変更履歴からマッピング
os_name event.idm.read_only_udm.principal.asset.platform_software.platform_patch_level 変更履歴からマッピング
process_name event.idm.read_only_udm.principal.resource.name 変更履歴からマッピング
full_orb_version event.idm.read_only_udm.security_result.detection_fields 変更履歴からマッピング
target_application event.idm.read_only_udm.target.application 変更履歴からマッピング

変更ログ

このパーサーの変更ログを表示する

さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。