【GCP入門編・第22回】 Stackdriver Logging で収集したログに対して、フィルタの実行や警告を設定しよう!
- GCP入門編
- Google Stackdriver
- Stackdriver Monitoring
前回の記事【第21回】 Stackdriver Logging でアプリケーションのログを収集しよう! では、 Stackdriver Logging を用いて gcloud
コマンド、 App Engine 上のアプリケーションからログの送信を行う方法について解説しました。
この記事では、収集したログに対して詳細なフィルタを実行する方法と、収集したログをベースに Stackdriver Monitoring で警告を設定する方法を解説します。
目次
この記事の目的
- Stackdriver Logging で収集したアプリケーションのログに対してフィルタを実行しよう。
- 収集したログをベースに Stackdriver Monitoring で警告を設定しよう。
収集したログに対してフィルタを実行する
前回の記事【第21回】 Stackdriver Logging でアプリケーションのログを収集しよう!で App Engine から送信したログや gcloud から送信したログなど、いくつかのタイプのログが Stackdriver Logging に収集されているかと思います。これらに対してフィルタリングを行い、条件にマッチするログを探すといった作業を行なっていきます。
まず、 Stackdriver Logging のログビューワーを開きます。 GCP のコンソールから左側のメニューをクリックし、 [Logging] をクリックします。すると、 Stackdriver Logging のログビューワーが開きます。
次に、モードを Basic から Advanced に変更します。下の画像の赤で囲われている箇所をクリックし、[Convert to advanced filter] をクリックします。
これで、詳細なクエリを編集することが可能になりました。
Stackdriver Logging のログ検索クエリは、ログエントリの各フィールドに対して検索を行うクエリと、すべてのフィールドを対象としたクエリを発行することが可能です。すべてのフィールドを対象とする場合は、通常の全文検索と同じ要領で、テキストをクエリとして発行します。構造化されたデータのフィールドに対してクエリを発行する場合は、以下の記法でログを検索することが可能です。
フィールドを指定して検索する場合
フィールドを指定して検索を行う場合、以下の方法でクエリを組み立てます。
path:query
path
にはフィールドの名前、 query
には検索クエリが入ります。
例えば HTTP のレスポンスコードが200であるクエリのみを検索したい場合は、以下のクエリとなります。
httpRequest.status: 200
このクエリでは、 httpRequest
というキーの status
が 200
のログを抽出します。
複数の条件を AND
もしくは OR
で繋ぐことも可能です。以下のクエリでは、 GAE のアプリケーションのログかつ、レスポンスコードが 200
のログを抽出しています。
httpRequest.status: 200 AND resource.type:gae_app
このクエリを発行すると、以下のようにフィルタされたログが表示されます。
GAE のステータスが 200
であるログエントリのみが表示されていることがわかるかと思います。
次に、フィルタをかけたログを基に、警告を設定する方法について解説します。
ログを基にしたメトリクスと警告を設定する
Stackdriver Logging は、同じ Stackdriver のサービスである Stackdriver Monitoring と連携し、ログを基にしたメトリクスと警告を設定することが可能です。
今回は、 severity が CRITICAL のログが出力された場合に警告を通知するという設定を行い、実際に通知してみます。
まず、 Log based metrics の設定を行います。先ほどのログビューワーを開き、フィルタの設定を advanced log filter に変更します。
次に、以下のクエリを入力します。
logName: test-log AND severity: CRITICAL
test-log
という名前のログに、 severity
が CRITICAL
であるログを抽出するフィルタです。このフィルタを設定してクエリを発行すると、検索結果が1件もない状態で結果が表示されます。
次に、画面上部に表示されている、[CREATE METRIC] をクリックします。すると以下のようにメトリクスの名前と説明を入力するためのフィールドが表示されます。ここにメトリクスの名前として "test-log-critical" 、説明に "critical alert" と入力します。
入力したら、 [Create Metric] をクリックしましょう。これでメトリクスの作成は完了です。
次に、画面左側に表示されているメニューの [Logs-based Metrics] をクリックします。すると、下図の通り [User defined Metrics] の下に先ほど作成したメトリクスが表示されているかと思います。
このメトリクスの右側にあるメニューボタンをクリックすると、 [Create alert from metric] というメニューが表示されます。
こちらをクリックし、 Stackdriver のページに移動します。
"Edit Metric Threshold Condition" というページに移動しているかと思います。
こちらで、以下の画像のように閾値を設定します。Resource は "Any" に、 FOR は "most recent value" 、 count は "0.01" に設定しましょう。
[Save condition] をクリックすると、 Alerting Policy の設定画面に移動します。
Notification には "Email" を指定します。
最後に [Save Policy] をクリックすることで、 Alerting Policy の設定が完了します。
それでは、早速警告を通知してみましょう。
ターミナルを開き、 gcloud
コマンドで以下のコマンドを入力します。
gcloud beta logging write test-log "This is critical error" --severity CRITICAL
すると、以下のように警告がメールで届きます。
おわりに
いかがでしたか。このように、 Stackdriver Logging を使うことで、ログを検索するだけでなく、検索結果を基にして警告を通知することも可能になります。アプリケーションのログを監視して、いち早く障害に対応したい、このような場合には非常に強力なツールとなるでしょう。
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
お問合せはこちら
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!