GCPには強力なロギング/分析/モニタリングツールとして Stackdriver
が提供されています。
とても優秀なツールで、各種コンピューティングリソースをデプロイすると、勝手にログを収集してくれたり、分析をすることができる使い勝手のよいサービスです。
今回はこのStackdriverの機能の一つを使って、slackへのアラート作成の手順をまとめます。
Monitoringでアラート作成する手順
大まかな手順は以下のようにしてできます
- metrics作成
- カスタムフィルターを設定する
- Monitoringのアラート作成
- 上記作成したmetricsをアラートの condition に設定する
- 通知のための閾値を設定する
- 通知先を設定する
metrics作成
GCP console の Logging
を選択して、ログベースの指標を選択して、画面上部にある 指標を作成
をクリックして、指標(metrics)を作成します。
右サイドバーにmetricsの名称や詳細のフォームが出てきます。metricsのフィルター(条件)はフィルターのエディターがログの上部にありますので、そこでqueryを書いてログを取得してください。
今回は、CloudRunで作ったapiサーバーのサーバーエラー(500~)を検知したかったので、以下のqueryを設定しました。
resource.type="cloud_run_revision"
severity>=ERROR
その後、指標を作成を押して、metricsを作成します
Monitoringのアラート作成
次に、先ほど作ったmetricsを利用して、アラートを作成します
作成したmetricsをアラートの condition に設定し、閾値を決める
Monitoring を選択して、アラートをクリックしてください。
画面上部にある、ポリシー作成を押すとアラートのポリシーの詳細を設定することができます。
条件の追加から、先ほど作成したmetricsの名称を Find resource type and metric
部分に記述すると、候補に出てくる自作のmetricsを選択してください。今回は resource.type を設定したいたのでリソースを自分で選ぶ必要がありませんでしたが、作ったmetricsによっては、GCSやGAEなどのリソースを選択する必要があると思います。
Configuration では通知のための閾値(threshold)を設定できますので、適当な値を設定してください。
通知先を設定する
条件を追加したら、あとは通知先を設定します。
今回は Slack への通知を設定しました。
ちなみに、ここでSlackの選択肢が出ていない人は、左サイドバーのアラートを押した時に画面上部に出ている通知チャンネルの編集(EDIT NOTIFICATION CHANNELS)から設定できます。
ここまでできたら、保存を押します。これで設定完了です。
まとめ
いかがだったでしょうか。たったこれだけの手順でslack(他にもメール、PubSub、SMSなど)へと通知することができます。コードを書かずに簡単に設定できるのは本当に良い時代になりました。
サーバーをデプロイしたらとりあえずサーバーエラーぐらいは通知を設定しておいても良いのではないでしょうか?今回の記事がアラート設定のハードルを少しでも下げられたら嬉しいです。