onemuri.space

GCPのStackdriverでモニタリングでエラー通知を作成する


GCPには強力なロギング/分析/モニタリングツールとして Stackdriver が提供されています。

とても優秀なツールで、各種コンピューティングリソースをデプロイすると、勝手にログを収集してくれたり、分析をすることができる使い勝手のよいサービスです。

今回はこのStackdriverの機能の一つを使って、slackへのアラート作成の手順をまとめます。

Monitoringでアラート作成する手順

大まかな手順は以下のようにしてできます

  1. metrics作成
    1. カスタムフィルターを設定する
  2. Monitoringのアラート作成
    1. 上記作成したmetricsをアラートの condition に設定する
    2. 通知のための閾値を設定する
    3. 通知先を設定する

metrics作成

GCP console の Logging を選択して、ログベースの指標を選択して、画面上部にある 指標を作成 をクリックして、指標(metrics)を作成します。

view metrics

右サイドバーにmetricsの名称や詳細のフォームが出てきます。metricsのフィルター(条件)はフィルターのエディターがログの上部にありますので、そこでqueryを書いてログを取得してください。

create metrics

今回は、CloudRunで作ったapiサーバーのサーバーエラー(500~)を検知したかったので、以下のqueryを設定しました。

resource.type="cloud_run_revision"
severity>=ERROR

その後、指標を作成を押して、metricsを作成します

Monitoringのアラート作成

次に、先ほど作ったmetricsを利用して、アラートを作成します

作成したmetricsをアラートの condition に設定し、閾値を決める

Monitoring を選択して、アラートをクリックしてください。

view monitoring alert

画面上部にある、ポリシー作成を押すとアラートのポリシーの詳細を設定することができます。

条件の追加から、先ほど作成したmetricsの名称を Find resource type and metric 部分に記述すると、候補に出てくる自作のmetricsを選択してください。今回は resource.type を設定したいたのでリソースを自分で選ぶ必要がありませんでしたが、作ったmetricsによっては、GCSやGAEなどのリソースを選択する必要があると思います。

Configuration では通知のための閾値(threshold)を設定できますので、適当な値を設定してください。

creating alert

通知先を設定する

条件を追加したら、あとは通知先を設定します。

今回は Slack への通知を設定しました。

created alert

ちなみに、ここでSlackの選択肢が出ていない人は、左サイドバーのアラートを押した時に画面上部に出ている通知チャンネルの編集(EDIT NOTIFICATION CHANNELS)から設定できます。

view monitoring alert

ここまでできたら、保存を押します。これで設定完了です。

まとめ

いかがだったでしょうか。たったこれだけの手順でslack(他にもメール、PubSub、SMSなど)へと通知することができます。コードを書かずに簡単に設定できるのは本当に良い時代になりました。

サーバーをデプロイしたらとりあえずサーバーエラーぐらいは通知を設定しておいても良いのではないでしょうか?今回の記事がアラート設定のハードルを少しでも下げられたら嬉しいです。

自己紹介用画像

Riki Akagi

2019年からDeNAで働いています。GCP(CloudSQL・GAE・Cloud Function etc)とGoでAPI開発に勤んでいます。睡眠やエンジニアリングに関することに興味を持って過ごしているのでその情報を皆さんに共有していけたらなと思っています。

自己紹介の詳細