Stackdriver Logging のエクスポート シナリオ: Splunk

このシナリオでは、選択したログを Stackdriver Logging から Cloud Pub/Sub にエクスポートして、Splunk に取り込む行う方法について説明します。Splunk は、セキュリティ情報 / イベント管理(SIEM)ソリューションで、Google Cloud Platform(GCP)の Splunk アドオンを提供します。このアドオンには、ログ、イベント、請求情報を GCP から取り込む機能が含まれています。このアドオンを使用して、GCP から Splunk にログをエクスポートできます。

すでにデプロイされている Splunk ソリューションを使用している場合は、Stackdriver で GCP のログを Splunk ソリューションにエクスポートできます。この機能では、Stackdriver のロギング、モニタリング、診断機能を利用しながら、これらのログを既存のシステムに取り込むことができます。

このシナリオは、Stackdriver Logging のエクスポートの設計パターンを説明するシリーズの一つです。

ロギング エクスポートを設定する

次の図は、Cloud Pub/Sub を介して Splunk にログをエクスポートする手順を示しています。

Cloud Pub/Sub へのロギング エクスポートを有効にする

Cloud Pub/Sub トピックを設定する

Cloud Pub/Sub トピックの設定手順に沿って、エクスポートされたログを受信します。

すべてのサービスに監査ロギングを有効にする

BigQuery を除き、データアクセスの監査ログはデフォルトで無効になっています。すべての監査ログを有効にするには、監査ポリシーのドキュメントに記載されている設定を指定して、IAM ポリシーを更新するための手順に従います。手順は次のとおりです。

  • 現在の IAM ポリシーをファイルとしてダウンロードします。
  • 監査ログポリシーの JSON または YAML オブジェクトを現在のポリシー ファイルに追加します。
  • 変更されたポリシー ファイルでプロジェクトを更新します。

以下に、すべてのサービスで監査ログを有効にする JSON オブジェクトの例を示します。

"auditConfigs": [
    {
        "service": "allServices",
        "auditLogConfigs": [
            { "logType": "ADMIN_READ" },
            { "logType": "DATA_READ"  },
            { "logType": "DATA_WRITE" },
        ]
    },
]

ロギング エクスポートを設定する

集約エクスポートまたはログのエクスポートを設定したら、ロギング フィルタを調整して、監査ログ、仮想マシン関連のログ、ストレージログ、データベース ログをエクスポートします。次のロギング フィルタには、管理アクティビティとデータアクセスの監査ログ以外に、特定のリソースタイプのログも含まれます。

logName:"/logs/cloudaudit.googleapis.com" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=bigquery_resource

gcloud コマンドライン ツールから、gcloud logging sinks create コマンドまたは organizations.sinks.create API 呼び出しを使用して、適切なフィルタを持つシンクを作成します。次の gcloud コマンドの例は、組織に gcp_logging_sink_pubsub というシンクを作成します。シンクにはすべての子プロジェクトが含まれ、特定の監査ログを選択するフィルタリングを指定します。

gcloud logging sinks create gcp_logging_sink_pubsub \
    pubsub.googleapis.com/projects/compliance-logging-export/topics/logs-export-topic \
    --log-filter='logName="/logs/cloudaudit.googleapis.com" OR \
    resource.type:\"gce\" OR \
    resource.type=\"gcs_bucket\" OR   \
    resource.type=\"bigquery_resource\"' \
    --include-children   \
    --organization=324989855333

コマンドの出力は次のようになります。

Created [https://logging.googleapis.com/v2/organizations/324989855333/sinks/gcp_logging_export_pubsub_sink].
Please remember to grant `serviceAccount:gcp-logging-export-pubsub-si@logging-o324989855333.iam.gserviceaccount.com` Pub/Sub Publisher role to the topic.
More information about sinks can be found at /logging/docs/export/configure_export

API 呼び出しで返された serviceAccount エントリでは、レスポンスに ID gcp-logging-export-pubsub-si@logging-o324989855333.iam.gserviceaccount.com が含まれます。この ID は、エクスポート用に作成された GCP サービス アカウントを表します。この ID に宛先トピックに対する公開アクセス権を付与するまで、このシンクからのログエントリのエクスポートは失敗します。詳細については、次のセクションまたはリソースのアクセス権の付与のドキュメントをご覧ください。

Cloud Pub/Sub トピックに IAM ポリシー権限を設定する

Pub/Sub パブリッシャー権限のある pubsub.googleapis.com/projects/compliance-logging-export/topics/logs-export-topic トピックにサービス アカウント gcp-logging-export-pubsub-si@logging-o324989855333.iam.gserviceaccount.com を追加して、トピックの公開権限をサービス アカウントに付与します。これらの権限を追加するまで、シンクのエクスポートは失敗します。

サービス アカウントに権限を付与するには、次の操作を行います。

  1. GCP Console で、Cloud Pub/Sub トピックページを開きます。

    トピックページに移動

  2. トピック名を選択します。

  3. 右側の [情報パネルを表示] をクリックして、次のように権限を設定します。

    IAM ポリシー権限 - Pub/Sub パブリッシャー

このフィルタを使用してロギング エクスポートを作成すると、構成したプロジェクトの Cloud Pub/Sub トピックにログファイルのエクスポートが開始します。トピックがメッセージを受信しているかどうか確認するには、Stackdriver Monitoring の Metrics Explorer を使用します。次のリソースタイプと指標を使用して、短期間に実行されたメッセージ送信オペレーションの数を確認します。エクスポートが正しく設定されていれば、このスクリーンショットのように、グラフに 1 個以上のアクティビティが表示されます。

  • リソースタイプ: pubsub_topic
  • 指標: pubsub/topic/send_message_operation_count

アクティビティのグラフ

Google Cloud Platform の Splunk アドオンを設定する

Google Cloud Platform の Splunk アドオンは、Cloud Pub/Sub トピックと GCP のサービス アカウントを使用します。サービス アカウントは、アドオンが Cloud Pub /Sub のサブスクリプションを作成し、ロギング エクスポート トピックからメッセージを取り込むために使用する秘密鍵の生成で使用されます。サービス アカウントがサブスクリプションを作成し、サブスクリプションを含む GCP プロジェクトのコンポーネントの一覧を作成するには、適切な IAM 権限が必要です。

Splunk アドオンの設定手順に沿って、アドオンを設定します。アドオンを設定すると、ロギング エクスポートから取り込んだ Cloud Pub/Sub メッセージが Splunk に表示されます。

Stackdriver Monitoring の Metrics Explorer を使用すると、Splunk アドオンのサブスクリプションがメッセージを pull していることを確認できます。次のリソースタイプと指標を使用して、短期間に実行されたメッセージ pull オペレーションの数を確認します。

  • リソースタイプ: pubsub_subscription
  • 指標: pubsub/subscription/pull_message_operation_count

エクスポートが正しく設定されていれば、このスクリーンショットのように、グラフに 1 個以上のアクティビティが表示されます。

pull オペレーションのグラフ アクティビティ

エクスポートされたログの使用

エクスポートされたログが Splunk に取り込まれた後、他のデータソースと同様に Splunk で次のタスクを実行できます。

  • ログを検索する。
  • 複雑なイベントを関連付ける。
  • ダッシュボードに結果を表示する。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...