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: Chronicle API のサービス アカウントを作成する(推奨)
- Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
- [IAM と管理]> [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: アカウントの名前を入力します(例:
bindplane-ingest)。 - サービス アカウントの説明: 説明を入力します(例:
Bindplane agent log ingestion)。
- サービス アカウント名: アカウントの名前を入力します(例:
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
- [**続行**] をクリックして [**完了**] をクリックします。
- 作成したサービス アカウントをクリックし、[キー] タブに移動します。
- 鍵を追加 > 新しい鍵を作成 の順にクリックします。
- [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
- キーファイルを 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を更新します。 - [IAM と管理][>][設定] に移動し、[プロジェクト番号] をコピーします。エクスポート構成に必要になります。
オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイル をダウンロードします。
- Bindplane エージェントをインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows へのインストール
- 管理者としてコマンド プロンプト または PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまでお待ちください。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collectorサービスは RUNNING と表示されます。
Linux へのインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまでお待ちください。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collectorサービスは active (running) と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
ログを取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを探す
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
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
- Linux:
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
- Linux:
<customer_id>: 前のステップのお客様 IDlocation:<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: [ファイル] > [保存] をクリックします。
- Linux:
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collectorサービス コンソール:
Win+Rを押して「services.msc」と入力し、Enter キーを押します。- [observIQ OpenTelemetry Collector] を探します。
- 右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
IBM WebSphere Application Server のロギングを構成する
- IBM WebSphere Application Server 管理コンソールにログインします。
- [トラブルシューティング] > [ログとトレース] に移動します。
- サーバーを選択します(例:
server1)。 - [診断トレース] をクリックしてトレース ロギング レベルを構成するか、[JVM ログ] をクリックして SystemOut ログと SystemErr ログの設定を構成します。
- [**JVM ログ**] で、次の設定を確認します:
- System.out ログファイル名:
${SERVER_LOG_ROOT}/SystemOut.log - System.err ログファイル名:
${SERVER_LOG_ROOT}/SystemErr.log - ログファイルのローテーション: ログファイルが際限なく増大しないように、ログ ローテーション(ファイルサイズや時間など)を構成します。
- System.out ログファイル名:
- [適用]、[保存] の順にクリックして、構成を保存します。
- WebSphere サーバーのログ ディレクトリを特定します。デフォルトの場所は次のとおりです。
<WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/SystemOut.log<WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/SystemErr.log<WAS_HOME>/profiles/<PROFILE>/logs/<SERVER>/BinaryAudit*(監査が有効になっている場合はセキュリティ監査ログ)
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 のプロフェッショナルから回答を得ることができます。