第8章 セキュリティーグループアクションのロギング
Red Hat OpenStack Services on OpenShift (RHOSO) 環境では、仮想マシン (VM) インスタンスに出入りするトラフィックフローを監視するために、セキュリティーグループのパケットログを作成できます。各ログは、パケットフローイベントに関するデータストリームを生成し、それを仮想マシンインスタンスが起動された Compute ホスト上の共通ログファイルに追加します。
インスタンスポートを 1 つ以上のセキュリティーグループに関連付け、各セキュリティーグループに 1 つ以上のルールを定義できます。たとえば、セキュリティーグループ内の仮想マシンへの受信 SSH トラフィックを許可するルールを作成できます。同じセキュリティーグループ内に別のルールを作成し、そのグループ内の仮想マシンが ICMP (ping) メッセージを開始および応答できるようにすることができます。
その後、パケットフローイベントの組み合わせを記録するログを作成できます。たとえば、次のコマンドは、セキュリティーグループ security-group1 の ACCEPT イベントをすべてキャプチャーするログを作成します。
$ openstack network log create my-log1 \
--resource-type security_group \
--resource security-group1 \
--event ACCEPT
複数のログを作成して、セキュリティーグループとパケットフローイベントの特定の組み合わせに関するデータをキャプチャーできます。
次のパラメーターを設定できます。
--resource-type-
この必須パラメーターを
security_groupに設定する必要があります。 --resource <security_group_name|security_group_ID>- オプション: ログを特定のセキュリティーグループに制限します。リソースを指定しない場合、ログはプロジェクト内の指定されたポート上のすべてのセキュリティーグループからイベントをキャプチャーします。
--target <port_ID|port_name>- オプション: セキュリティーグループ内の特定のポートへのログを制限します。ターゲットを指定しない場合、ログはプロジェクト内のセキュリティーグループ内のすべてのポートからのイベントをキャプチャーします。
--event(ログに記録するイベントのタイプ)次のパケットフローイベントをログに記録するように選択できます。
DROP: ドロップされた受信セッションまたは送信セッションごとに 1 つのDROPログエントリーをログに記録します。注記1 つ以上のセキュリティーグループでドロップされたトラフィックをログに記録すると、Networking サービスはすべてのセキュリティーグループでドロップされたトラフィックをログに記録します。
-
ACCEPT: セキュリティーグループが許可した新規セッションごとに 1 つのACCEPTログエントリーを記録します。 -
ALL(drop と accept): すべてのDROPおよびACCEPTイベントをログに記録します。–eventACCEPTまたは –eventDROPを設定しない場合、Networking サービスはデフォルトでALLになります。
Networking サービスは、すべてのログデータをすべての Compute ノードの同じファイル (/var/log/containers/openvswitch/ovn-controller.log) に書き込みます。
このセクションには、以下のトピックが含まれます。
8.1. セキュリティーグループのロギングが有効になっていることの確認 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) 環境をネットワークパケットロギング用に準備するには、Networking サービス (neutron) がロギングサービスプラグインとロギングエクステンションをロードしていることを確認します。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclient以下のコマンドを実行します。
$ openstack extension list --network --max-width=72 | grep loggingNetworking サービスがロギングサービスプラグインとエクステンションをロードした場合、出力には次の内容が含まれます。
| Logging API | logging | Provides a logging API |openstack extension list の出力に
Logging API Extensionが含まれていない場合は、コントロールプレーンを更新します。YAML ファイルを作成し、次のコンテンツを追加します。
apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack-control-plane spec: neutron: template: customServiceConfig: | [DEFAULT] service_plugins=log更新された
OpenStackControlPlaneCR 設定を適用します。$ oc apply -f <control_plane_update.yaml>-
<control_plane_updates.yaml>を更新が含まれる YAML ファイルの名前に置き換えます。
-
RHOCP が
OpenStackControlPlaneCR に関連するリソースを作成するまで待機します。コントロールプレーンのデプロイのステータスを確認します。$ oc get openstackcontrolplane -n openstack出力例
NAME STATUS MESSAGE openstack-control-plane Unknown Setup startedステータスが "Setup complete" であれば、OpenStackControlPlane リソースが作成されています。
ヒントデプロイメントの進行状況を追跡するには、
getコマンドに-wオプションを追加します。
検証
-
手順 1 を繰り返して、Networking サービスが
Logging API Extensionを正常にロードしたことを確認します。
関連情報
- コマンドラインインターフェイスリファレンス の エクステンションリスト