GCP LoggingのアラートをSlackに通知する

GCP LoggingのアラートをSlackに通知する
公開日時

個人開発でGCPを使う機会が増えている。

というのも、Dockerfileを用意すれば手軽にCloud Runでアプリケーションサーバを動かすことができ、アプリケーションエラー時には自動でError Reportingに記録されるので、AWSを使うよりも楽に環境構築ができるからである。

スマホからはCloud Consoleを使えばエラー発生時に通知を受け取ることもできる。

今回はエラー時にSlackに通知するようにしたかったので、対応方法を調べてやってみた。

まずはLoggingに記録されたログのうちエラーとなっているものを抽出するフィルタを作成する。

ログビューアのフィルタに以下を入力し、エラーログを確認したら「指標を作成」を実行。

resource.type="cloud_run_revision" textPayload:"Error:"

「ログベースの指標」 => 「User-defined Metrics」にある作成した指標の「︙」メニューから「指標に基づいて通知を作成する」を選択。

アラートポリシー設定ができるので「1分間に1回以上エラーログが記録されたら通知」というルールを作成した。

gcp logging2

指標を作成しても過去のエラーログはグラフに反映されないので注意。

最初、うまく反映されていないのかと焦ったけど記録されない仕様とのこと。

ログベースの指標のデータは、指標が作成された後に受信したログエントリから取得されます。指標には、Logging にすでにあるログエントリのデータが入力されていません。

あとはSettingでSlack認証を行い通知チャンネルを設定すればエラー時にSlack通知が来るようになる。

参考


Related #gcp

Cloud FunctionsのNode.jsバージョンを更新する

package.jsonとcloudbuild.yamlを更新

Cloud BuildでFirebase Hostingのデプロイを行う

リポジトリへのpush以外をトリガーにしたい場合に使用

Firebase HostingのデプロイをWebhook(API)経由で行う

デプロイボタンが作れるようになった

CloudRunでnode.jsを動かす

リポジトリにpushしたらCloudRun上に自動デプロイ

IPv6 IPoE環境で自宅のRaspberryPiにsshできるようにする

GCPにssh port forwardingすることで実現できた