LoginSignup
0
0

メモ: GCPでWindows監視

Last updated at Posted at 2023-02-08

概要

できるだけ低コストでWindows機の生存監視をしてく、GCP で実現してみたので、方法を備忘録としてメモ。
基本的なアーキは下記:

  • 【Windows機】 Task Scheduler にて 30 分に1 回 生存証明用URL にアクセスするように仕込む。
  • 【GCP/Firebase Hosting】 生存証明用URL (静的HTML)を用意
  • 【GCP/Cloud Monitoring】 前述のURLのアクセスを監視し、1h に1度もアクセスが無い状況になったら決めておいたメアド宛にメール送信

ポイント:

  • Task Scheduler なのでWindows再起動しても上げなおしが発生しないし、落ちて動かなくなることもない。コードやアプリの配布やインストールも不要。
  • Firebase Hosting なので無料枠の中で URL おける。
  • Cloud Monitoring なので無料枠の中で監視ができ、特定メアドへと送信も可能。gmailアカウントがあれば管理者追加も楽。

方法

1. Firebase

  1. Hosting と Cloud Logging を有効にする。
  2. プランを Blaze にする。(Cloud Loggingで「指標」を使うため。無料枠内に収まると想定。)
  3. Log Storage_Default の保存期間を 1 days に。(念のために課金額を減らしておく。)
  4. Hosting のページで Cloud Logging を開始する。

2. 生存証明用URL

  1. public/xxxxxx.html というページ作成。(xxxxxx はランダム文字列。)
  2. firebase deploy

3. タスク(テスト用)追加

  1. Task Scheduler 起動
  2. タスクの作成...
  3. 全般 タブ
    1. 名前: PC名
  4. トリガー タブ
    1. 繰り返し間隔: 1分間
    2. 継続時間: 無期限
  5. 操作 タブ
    1. 新規(N)... ボタン
    2. 操作: プログラムの開始
    3. プログラム/スクリプト(P): curl
    4. 引数の追加(オプション)(A): -s "https://プロジェクトID.web.app/xxxxxx.html?PC名"
    5. OK ボタン

4. 指標作成

  1. Log Explorer にアクセス。今回のプロジェクトを選択。
  2. 下記でログが取れることを確認
    resource.labels.project_id="プロジェクトID"
    httpRequest.requestUrl=~"https://プロジェクトID.web.app/xxxxxx.html*"
    
  3. 指標を作成 ボタン
  4. ログの指標の作成 画面
    1. 指標タイプ: Counter
    2. ログ指標の名前: AccessingGeneric
    3. 単位: 1
    4. フィルタの作成:
      resource.labels.project_id="プロジェクトID"
      httpRequest.requestUrl=~"https://プロジェクトID.web.app/xxxxxx.html*"
      
    5. ラベル:
      1. 名前: pcid
      2. 種類: STRING
      3. フィールド名: httpRequest.requestUrl
      4. 正規表現: \.html\?(.*)$
    6. 指標を作成 ボタン

5. ポリシー(アラート)作成

  1. ポリシー にアクセス。今回のプロジェクトを選択。
  2. + CREATE POLICY ボタン
    1. 指標の選択 で前述の指標(AccessingGeneric)を選択
    2. ADD FILTERpcid = PC名
    3. ローリングウィンドウ: 5分
    4. ローリングウィンドウ関数: count
  3. トリガーの設定
    1. Metric absence
    2. 任意の時系列の違反
    3. 2分 (この期間不在になったら通知が飛ぶ)
    4. Absent PC名 for 2min. (メールに載る文言)
  4. 通知と名前
    1. 通知チャネル: 自分のメアド
    2. Notify on incident closure を ON
    3. アラートポリシー名: Absent PC名
  5. ポリシーを保存
0
0
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
0
0