5
3

More than 5 years have passed since last update.

StackDriverとGCPのloggingを利用してアラートを通知する

Last updated at Posted at 2018-10-29

概要

GCPのLoggingから任意のサービスの実行を検知し通知する仕組みを作ります。
今回は任意のDataflowJobの実行を検知し、Slackに通知します。

参考

Dataflowのチュートリアル
GCPのlogging
loggingの高度なフィルタ
StackDriverのWorkspaceを作成
StackDriverのアラート設定

詳細

まずは適当にDataflowのログを流すためにDataflowのチュートリアルを参考にJobを作成していきます。

1. DataflowJobの作成

GCPからDataflowに接続し、初回のチュートリアル又はDataflowのチュートリアルを参考にJobを作成します。

2. 収集するログの定義

Dataflow又は任意のログを流し、Loggingのログベースの指標で収集したいログを定義していきます。
指標エディタはカウンタタイプを選択して以下のようなデフォルトの設定にします。
スクリーンショット 2018-10-29 17.39.14.png
カウンタタイプは検知したログを単純にカウントするタイプで、通知などの機能を利用するにはカウンタタイプである必要があります。

次に検知するログの定義を書いていきます。下図のように検索窓のドロップダウンから高度なフィルタに変換を選択して検索クエリを入力していきます。スクリーンショット 2018-10-29 17.45.27.png

今回取得したいDataflowのログはDataflowの任意のJob作成のため検索クエリは以下のようにしました。

resource.type="dataflow_step"
protoPayload.methodName="dataflow.jobs.create"
protoPayload.request.job_name="dataflow-intro"

高度なフィルタに関してはその他正規表現などサポートしているので、こちらを参考ください。

ログベースの指標を定義すれば下図のように表示されます。
スクリーンショット 2018-10-29 17.55.53.png

ラベルについての説明は省きます。

3. 通知の設定

初めての方はStackDriverのWorkspaceを作成してください。
StackDriverでログベースの指標からの通知設定をする前にSlack通知の設定をしてください。
準備が整いましたら、先程作成したログベースの指標の三点ボタンから指標に基づいて通知を作成するを選択してください。

StackDriverに遷移した後は取得ログに対しての通知設定をします。
設定に関しては下図のように設定をします。閾値を設定するカウンタの値は一秒あたりの値になるため閾値は0.01などで設定しています。
スクリーンショット 2018-10-29 18.15.05.png

設定をした後はSave Confitionを押し残りの設定を下図のように適当にしてください。
スクリーンショット 2018-10-29 18.29.49.png

Notificationの部分に先程連携したSlackが表示されなければ再度、指標に基づいて通知を作成するからやり直してください。
Documentationの部分には通知時に表示したい文字列などを記述してください。

上記の設定が終われば Save Policyを押してください。

設定が終わればもう一度DataflowのJobを流し確認してください。CloudShellで実行した方はhistory残っている実行ログから実行することをオススメします。

スクリーンショット 2018-10-29 18.35.32.png

感想

CloudWatchLogsを捨てて積極的にLogging+StackDriver使っていきたい

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3