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 Runのコールドスタートを避けるためにcurlで起こし続ける

定期リクエストを送っている間はコールドスタートは発生していないことが確認できた

GCP VMインスタンスのSSHポートを変更した

Network Internet Egress from Americas to EMEA

[Action Required] Free Container Scanning ends

お試しで使っていたコンテナイメージの脆弱性スキャンを無効にした

GCPの無料インスタンスがF1-microからE2-Microに変わった

メールが来ていたのを見落としていた

[Action Required] Internal error has affected services in Cloud Run that use Cloud Load Balancing

デフォルトURLで利用している場合は対応不要

ローカルディレクトリをCloud Storageに同期する

gsutil rsyncを利用した