Cocoon-Engine

甘党インフラエンジニアの技術ブログ

Chocolat Chocolat Chocolat Chocolat

IT技術とスイーツに興味がある方、ちょっと見ていきませんか?

【GCP】X分間で〇件以上検知したログをアラート通知する方法

システムログ監視などをしている際、単発であれば無視したい、でも頻発しているときは検知させたいという場合があります。

そんな時はGCPのロギングでログベースの指標を作成してアラートを設定します。

条件

  • Compute Engine インスタンスの /var/log/messages に特定のメッセージが5分間に3件以上出力されたらアラートにする。
  • /var/log/messages の取り込み設定自体は済んでいる前提(下記参照)

https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/configuration?hl=ja

設定方法

ログベースの指標の作成

「ロギング」>「ログベースの指標」を開く

logbase1

 

「ユーザー定義の指標」にある「指標を作成」を選択

logbase2

以下の条件を記載します。

  • 指標タイプ: Counter
  • 指標の名前: error-count (任意)
  • 説明: 任意
  • 単位: 入力不要
  • ログのスコープ: プロジェクトのログ
  • フィルタ: 下記のクエリ (検知条件に合わせる)
resource.type="gce_instance"
resource.labels.instance_id="XXXXXXXX"
log_name="projects/XXXXX/logs/syslog"
jsonPayload.message=~"error-test$"

logbase3

logbase4

 

指標タイプを Counter にすることでログの件数による指標を作成します。

名前と説明は任意のわかりやすいものを入れてください。

ログのスコープはバケットを絞ることができるので、管理方法によってはバケットを指定したほうが良いですね。

 

フィルタでは実際にカウント対象とする特定のログの条件を記載します。

今回は あるGCEインスタンスの/logs/syslogに出力される「error-test」の件数をカウントするためのクエリにしました。

クエリ記法は下記を参照して。プレビュー機能で合っているか確認してみてください。

https://cloud.google.com/logging/docs/view/logging-query-language?hl=ja&_ga=2.228915807.-2114081777.1682875379

 

最下段にある「指標を作成」を選択するとユーザー定義の指標が作成されます。

logbase5

 

アラートポリシー作成

作成したユーザー定義の指標の右にあるメニューボタンから「指標に基づいて通知を作成する」を選択

log_alert1

 

通知ポリシー作成画面に遷移するので、以下を記載

  • ローリングウィンドウ: 5分
  • ローリングウィンドウ関数: sum
  • 時系列集計: sum

ローリングウィンドウでチェック間隔を指定します。

合計発生件数をみたいので関数は sum を指定しました。

 

トリガー設定

log_alert3

  • Condition Types: Threshold
  • Alert Trigger: 任意の時系列の違反
  • しきい値の位置: しきい値より上
  • しきい値: 2
  • 条件名: 任意

3件以上発生でアラートにしたいので、条件は「しきい値より上」でしきい値は「2」を指定しています。

 

通知チャンネルを設定したら「ポリシーを作成」で完了です!

policy1

 

動作確認

実際にカウント対象のログを発生させてアラートを確認してみます。

(/var/log/messages に logger-test (カウント対象のログ)を 3件書き込みます。)

[test@test ~]$ date;i=1; while [ $i -le 3 ]; do logger error-test;  i=`expr $i + 1`; done
2023年  7月 29日 土曜日 14:02:09 JST
[test@test ~]$

 

ちゃんと書き込んだ時刻に 3件分カウントされてますね。

policy2

 

アラートメールも無事に届きました。

alertmail

 

これで単発の問題ないログとはおさらばですね!

 

公式のドキュメントは以下です。

ログベースの指標の概要

https://cloud.google.com/logging/docs/logs-based-metrics?hl=ja

カウンタ指標を構成する

https://cloud.google.com/logging/docs/logs-based-metrics/counter-metrics?hl=ja&_ga=2.228915807.-2114081777.1682875379

気に入ったらぜひ共有してください。

TOP