クラウド同上

Stackdriver Loggingのログを失う前にエクスポートしておく方法(後編)

Author
Lv:3 Exp:856

GAE、GCPについて日々勉強中です。

前編では Stackdriver Logging のログのエクスポートに関する全体的な概要とGCSへエクスポートする方法についてご紹介いたしました。
今回は Stackdriver Logging のログを BigQuery や Cloud Pub/Sub にエクスポートする方法を試してみましょう。

前回はログのエクスポート先を事前に準備する必要がありましたが、
実は事前にエクスポート先を準備しておかなくても、シンク作成の時に、エクスポート先を新規で作成することができます。なので今回は、面倒な事前準備を省いた下記の手順でログのエクスポートを試してみます。

  1. シンクを作成
  2. エクスポートの確認

1. BigQueryへログをエクスポートする

始める前に

BigQuery については以下をご参考ください。
公式ドキュメント
はじめの一歩が踏み出せない人のためのBigQuery入門

エクスポートする前にプロジェクトで BigQuery を有効にしておく必要があります。
新しいプロジェクトを作成した場合は BigQuery が自動的に有効になります。
既存のプロジェクトで BigQuery が有効になっていない場合、有効にする方法については後ほど参考として説明します。

BigQueryにも無料枠がございます。無料枠は以下の通りです。Stackdriver の無料枠と一緒に見ておくと良いでしょう。

  • Stackdriver : 30日間保存されるログサイズ50GB
  • BigQuery : クエリ使用量1TB, ログ保存サイズ10GB
[参考] GCP の各種サービスに対する無料枠についてはこちらをご参考ください。

1-1. シンクを作成

「どれをどこにエクスポート」の設定に相当する「シンク」を作成しましょう。

前回でご説明したようにシンクを作成、削除、変更するためには、プロジェクトでオーナーまたはLogging / ログ構成書き込みのどちらかの IAM 役割も必要です。詳細については、こちらをご覧ください。

ナビゲーションメニューより、Loggingを開きます。メニューからエクスポートを開き[エクスポートを作成]をクリックします。

①フィルタを設定

取得したいログをフィルタリングします。

ログレベルを指定してエクスポートする場合は、以下のようにログレベルを選択します。

より高度なログフィルタの設定する場合は、フィルタボックスの右側にある[▼]メニューをクリックし[高度なフィルタに変換]をクリックしてフィルタを指定します。

②シンクの設定

次はエクスポート先を決めるシンクを設定します。
画面右側の[エクスポートの編集]パネルに以下を入力します。

  • シンク名
  • シンクサービス
  • シンクのエクスポート先

シンク名の入力しましょう。

シンクサービスを選択します。

選択メニューから[Bigquery]を選択します。

シンクサービスに Bigquery を選択すると下のシンクのエクスポート先が
「BigQuery データセット選択」に変わることがわかります。

次に、シンクのエクスポート先を選択します。
ここで事前にエクスポート先として「Bigquery のデータセット」を作成しておかなくても
新規で作成できます。

[新しいBigQuery データセット を作成]をクリックします。

「新しい BigQuery データセット を作成」画面が開きますので、BigQuery データセットの名前を入力し、[作成]をクリックします。

一通り入力が済んだら[シンクを作成]をクリックします。

設定が保存されるまでしばし待ちましょう。

シンク作成が完了すると、下記の作成完了画面が表示されます。

作成されたシンクを確認しましょう。

シンクの編集、削除、フィルタ表示ついては、前回の記事をご参考ください。

1-2. エクスポートの確認

BigQueryへログがエクスポートされているか確認しましょう。
左側のナビゲーションメニューから[BigQuery]をクリックします。

BigQuery で確認するとシンク作成時に作った stackdirver_log_sink データセットが作成されています。

stackdirver_log_sink データセットの▶︎をクリックして、作成されたテーブルが確認できます。

appengine_googleapis_com_request_log_20190829 という名前でテーブルが作成されていることが確認できます。

Stackdriver Logging のログを BigQuery へエクスポートする手順は以上となります。
BigQueryを用いてエクスポートしたログの高度な分析や SQL のようなクエリを実行できます。

BigQuery が有効になっていないと。。

Stackdriver Logging のログを BigQuery へエクスポートするためには、プロジェクトで BigQuery が有効になっている必要がありますが、有効になっていない場合シンクの作成で「新しい BigQuery データセット を作成」の時に、以下のようなエラーが出力されます。

[参考] BigQuery を有効にするには

新しいプロジェクトを作成した場合は BigQuery が自動的に有効になります。
既存のプロジェクトで BigQuery が有効になっていない場合は以下の手順で有効にしましょう。
① 左側のナビゲーションで [APIとサービス]をクリックし、[ライブラリ]をクリックします。

② 検索窓で「BigQuery API」をキーワードで検索するか、左側のカテゴリから[ビックデータ]をクリックして、[BigQuery API]に移動します。

③[有効にする]をクリックします。

2. Cloud Pub/Sub へログをエクスポートする

今度は Cloud Pub/Sub に Stackdriver Logging のログをエクスポートしてみましょう。

その前に料金が気になりますね。Cloud Pub/Sub にも無料枠がございますのでご安心を。
無料枠は以下の通りです。Stackdriver の無料枠と一緒に見ておくと良いでしょう。

  • Stackdriver : 30日間保存されるログサイズ 50GB
  • Cloud Pub/Sub : 1ヶ月あたりのメッセージ使用量10GB
[参考] GCP の各種サービスに対する無料枠についてはこちらをご参考ください。

2-1. シンクを作成

ナビゲーションメニューより、Loggingを開きます。メニューからエクスポートを開き[エクスポートを作成]をクリックします。

①フィルタを設定

取得したいログをフィルタリングします。フィルタとログレベルを指定しましょう。

②シンクの設定

シンクの設定の手順は、前項「BigQueryへログをエクスポートする」と同様です。
画面右側の[エクスポートの編集]パネルに以下を入力します。

  • シンク名
  • シンクサービス
  • シンクのエクスポート先

まずシンク名を入力しましょう。

次にシンクサービスを選択します。

選択メニューから[Cloud Pub/Sub]を選択します。

シンクサービスに Cloud Pub/Sub を選択すると下のシンクのエクスポート先が
「Cloud Pub/Sub トピックを選択」に変わります。

次に、シンクのエクスポート先を選択します。
事前にエクスポート先を作成しておかなくても新規で作成できます。

[新しい Cloud Pub/Sub トピック を作成]をクリックします。

以下の「新しい Cloud Pub/Sub トピック を作成」画面が開きますので、Cloud Pub/Sub トピックの名前を入力し、[作成]をクリックします。

一通り入力が済んだら[シンクを作成]をクリックします。

設定が保存されるまでしばし待ちましょう。

シンク作成が完了すると、作成完了画面が表示されます。

閉じるボタンで作成完了画面を閉じて、左メニューのエクスポートから、作成されたシンクを確認しましょう。

2-2. エクスポートの確認

Cloud Pub/Sub へログがエクスポートされているか確認しましょう。
左側のナビゲーションメニューから[Pub/Sub]をクリックします。

Pub/Sub で確認するとシンク作成時に作ったトピック stackdirver_log_sink が作成されていることが確認できます。

Stackdriver Logging のログが Cloud Pub/Sub に溜まるか確認するためにサブスクリプションを作成します。
作成されているトピック stackdriver_log_sink をクリックするとトピックの詳細画面が開きます。
画面下の方の「サブスクリプションを作成」ボタンをクリックします。

「サブスクリプションをトピックに追加」の画面でサブスクリプション名を入力し、[CREATE]ボタンをクリックします。

サブスクリプションが作成されました。

作成されたサブスクリプション log-sink をクリックしてみましょう。
サブスクリプションの詳細画面が開き、詳細内容が確認できます。
ログが溜まるかを確認するためにプルしてみましょう。
[メッセージを PULL する]をクリックします。

すると右からメッセージ画面が展開されます。[PULL]ボタンをクリックします。
想定通りログが溜まることが確認できます。

下のスクロールバーでスクロールしたり確認応答の展開ボタンをクリックすると、より詳細な内容が確認できます。

3. まとめ

前回に引き続き Stackdriver Logging のログを BigQuery や Cloud Pub/Sub へエクスポートすることを試してみました。BigQuery や Cloud Pub/Sub へエクスポートもコンソール画面で何回かクリックするだけで、簡単にログをエクスポートすることができました。これで Stackdriver Logging のログ保存期間の30日間制限を気にせずに費用を抑えながら長期間ログデータを保存できます。
前回もご説明しましたが、高度な分析や SQL のようなクエリを実行したい場合は BigQuery へ、サードパーティのソリューションや任意のエンドポイントにログデータをストリーミングしたい場合は Cloud Pub/Sub を経由するなど、用途に応じてエクスポート先を設定すると良いでしょう。

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます