Media > AI活用ユースケース > 情報システム > 夜間・休日の監視アラートに、運用手順書と過去の障害対応記録から該当する手順と判断の目安を探し、当番の担当者へ根拠付きで返す

夜間・休日の監視アラートに、運用手順書と過去の障害対応記録から該当する手順と判断の目安を探し、当番の担当者へ根拠付きで返す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

夜間・休日に監視アラートが鳴ったとき、その内容から運用手順書と過去の障害対応記録を検索し、該当する手順と判断の目安を出典付きで当番へ返します。復旧の操作はさせず、探す時間を縮めます。

サマリー
生成AI
Gemini
AIサービス
Azure AI/Google Vertex AI/OpenSearch
連携・自動化
Python
対象業界
EC/IT・SaaS/物流/金融
対象部門
情報システム
対象業務
情報検索
主な課題
判断に時間がかかる/属人化している/情報が見つからない
AIで行う処理
検索(RAG)
主な効果
対応スピード向上/属人化解消/検索時間短縮
導入難易度
★★★★☆
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
条件付き
現在工数
60h/月
AI導入後
24h/月
想定削減
60%
年間削減
432h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. アラートがチャットとメールで届き、当番が気付く
  2. 監視の画面を開き、どのサービスのどの指標が、どれくらい外れているかを確かめる
  3. 社内Wikiでアラートの名前や指標の名前を検索し、手順書を探す
  4. 手順書が見つかれば、それが今も使える版かを更新日で確かめる
  5. 共有ドライブで過去の振り返りの記録を検索し、同じアラートがいつ鳴ったか、そのとき何をしたかを探す
  6. 朝まで待てるか、すぐ対応するか、上位の担当者を起こすかを決める
  7. 手順に沿って対応し、チャットに経過を書く
導入後(After)
  1. 自動アラートが発報すると、Cloud Monitoring が Pub/Sub へ通知を送る
  2. 自動中継プログラムが通知を受け取り、サービス名・指標・条件名・手順書の番号を取り出す
  3. 自動同じ障害の続報や復旧の通知であれば、新しい検索をせずに既存のスレッドへ追記する
  4. 自動手順書の番号があれば、その番号で手順書を絞り込んで検索する。無ければサービス名で絞り込んで検索する
  5. 自動Agent Search(旧 Vertex AI Search)の answer メソッドが、手順書と過去の記録から回答を作り、出典を付けて返す
  6. 自動中継プログラムが出典を確かめ、手順の出典が手順書でないもの、廃止された手順書のものを除く
  7. 自動当番のチャットのスレッドに、手順・判断の目安・出典のリンクを投稿する
  8. 人当番が出典の手順書を開き、手順を確かめてから対応する
  9. 人初動の判断(待つ/対応する/上位を起こす)を当番が決め、スレッドに書く
  10. 人回答が役に立ったかを、スレッドの選択肢で付ける
各工程の詳しい説明を読む
  1. アラートがチャットとメールで届き、当番が気付く
  2. 監視の画面を開き、どのサービスのどの指標が、どれくらい外れているかを確かめる
  3. 社内Wikiでアラートの名前や指標の名前を検索し、手順書を探す
  4. 手順書が見つかれば、それが今も使える版かを更新日で確かめる
  5. 共有ドライブで過去の振り返りの記録を検索し、同じアラートがいつ鳴ったか、そのとき何をしたかを探す
  6. 朝まで待てるか、すぐ対応するか、上位の担当者を起こすかを決める
  7. 手順に沿って対応し、チャットに経過を書く

(a)手順書が見つからない。 3番目で、アラートの名前と手順書の題名が一致しないことがよくあります。検索語を変えて3回、4回と探し、それでも見つからなければ記憶を頼りに動きます。 手順書があるのに無いのと同じ扱いになります。

(b)古い手順書を開いてしまう。 構成を変えたあとも旧版が残っていると、検索で先に出てきた古い手順に沿って操作してしまうことがあります。4番目の確認は、深夜には省かれがちです。

(c)過去の判断が引き継がれない。 「このアラートは月末の集計処理で毎月一時的に鳴るので、30分以内に戻れば対応不要」という判断が、振り返りの記録には書いてあるのに、手順書には反映されていません。 知っている当番は待ち、知らない当番は上位の担当者を起こします。

(d)初動が当番によって変わる。 経験の長い当番は2番目を見ただけで6番目まで決められますが、入って半年の当番は3番目から5番目に時間をかけ、判断に自信が持てずに起こすことになります。夜間に起こされる側の負担も、運用のチームで偏っています。

  1. 【自動】 アラートが発報すると、Cloud Monitoring が Pub/Sub へ通知を送る
  2. 【自動】 中継プログラムが通知を受け取り、サービス名・指標・条件名・手順書の番号を取り出す
  3. 【自動】 同じ障害の続報や復旧の通知であれば、新しい検索をせずに既存のスレッドへ追記する
  4. 【自動】 手順書の番号があれば、その番号で手順書を絞り込んで検索する。無ければサービス名で絞り込んで検索する
  5. 【自動】 Agent Search(旧 Vertex AI Search)の answer メソッドが、手順書と過去の記録から回答を作り、出典を付けて返す
  6. 【自動】 中継プログラムが出典を確かめ、手順の出典が手順書でないもの、廃止された手順書のものを除く
  7. 【自動】 当番のチャットのスレッドに、手順・判断の目安・出典のリンクを投稿する
  8. 【人】 当番が出典の手順書を開き、手順を確かめてから対応する
  9. 【人】 初動の判断(待つ/対応する/上位を起こす)を当番が決め、スレッドに書く
  10. 【人】 回答が役に立ったかを、スレッドの選択肢で付ける

8番目が、この設計の分かれ目です。当番はAIの回答ではなく、出典の手順書を見て動きます。 回答の文は「どの手順書を開くべきか」を示すためのもので、操作の手順は手順書の原文から読みます。 回答の文から直接操作すると、要約で落ちた注意書きを飛ばします。

3番目は夜間の負担を左右します。 1つの障害で、同じアラートが続けて何度も鳴ることがあります。そのたびに新しい回答を投稿すると、当番のチャットが回答で埋まります。 同じ障害は1つのスレッドにまとめます。

02今回想定するシステム構成

構成図
Cloud Monitoring(アラートポリシー)
   │  説明文の欄に「手順書の番号」と「サービス名」を書いておく
   ▼【トリガー】アラートの発報(Pub/Sub へ通知)
中継プログラム(Python、Cloud Run)
   ├──▶ 続報・復旧の通知か → 既存スレッドへ追記して終わり
   ├──▶ 手順書の番号・サービス名・指標・条件名を取り出す
   ▼
Agent Search(Vertex AI Search)── answer メソッド
   │  データストア:運用手順書(約350本)+障害対応の振り返り(約600件)
   │  絞り込み:runbook_id/service/status: current
   │  出典付きで回答を作る
   ▼
中継プログラム ── 出典の検査(手順の出典が手順書か、廃止版でないか)
   ▼
当番のチャットのスレッド ── 手順・判断の目安・出典のリンク
   ▼
【当番が手順書を開いて確かめ、初動を決める】
役割想定する製品代替候補
検索基盤Vertex AI Search(Agent Search)の answer メソッドAzure AI Search、Amazon OpenSearch Service
生成AIGemini(answer メソッドの回答の生成に使うモデル)─
連携中継プログラム(Python。Cloud Run で動かし、通知・検索・チャットをつなぐ)Node.js で同じものを書く
監視Cloud Monitoring(アラートポリシーと Pub/Sub への通知)既存の監視サービスの Webhook 通知
保管Cloud Storage(手順書と振り返りの原本、メタデータ)─

監視の仕組みとチャットは、新しく足すものではありません。 アラートはこれまでどおり当番へ直接も届き、この構成はその横に回答を添えるだけです。最初の準備は、アラートポリシーの説明文の欄に、対応する手順書の番号を書き込むことです。

検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果をもとに回答を作る機能で、複雑な質問を分けて検索し、回答の文ごとに出典を付けられるとされています。関係の薄い内容しか見つからないときや、答えを求めていない質問のときは、回答を作らずにその理由を返す設定があります。夜間に当番へ返すものとしては、この「答えない」ができることが重要です。

アラートの通知は Pub/Sub で受けます。 Cloud Monitoring の通知の送り先には、メール、Slack、PagerDuty、Webhook、Pub/Sub などがあり、Webhook は公開のエンドポイントしか使えないとされています。中継プログラムをインターネットに開かずに済むよう、Pub/Sub のトピックから受け取ります。 通知の中身はバージョン1.2のJSONで、障害、リソース、指標、ポリシーと条件、説明文が入っています。

03どうやって実装するのか

Step1

処理の起点を決める

起点は、アラートポリシーが発報したことです。 Cloud Monitoring の通知の送り先に Pub/Sub のトピックを加え、中継プログラムがそこから通知を受け取ります。当番への通常の通知は、これまでの送り先にそのまま残します。 中継プログラムが止まっても、アラートそのものは当番に届きます。

対象は、夜間・休日に当番へ届くアラートに限りません。 日中のアラートにも同じ回答を付けます。日中に回答の質を見ておかないと、夜間に初めて外れに気付くことになります。 最初の1か月は日中だけに付け、当番の評価を見てから夜間に広げます。

通知は、発報のたびに1件ずつ処理します。 まとめて処理する理由がありません。ただし、同じ障害の続報と復旧の通知は、新しい検索の対象にしません。 通知に含まれる障害の識別子で、すでにスレッドがあるかを確かめます。

Step2

入力データを集める

データ中身取得元
アラートの通知障害の識別子、状態(発報/復旧)、ポリシー名、条件名、リソースの種類とラベル、指標、説明文Cloud Monitoring から Pub/Sub
運用手順書対象のサービス、事象、確認の手順、対応の手順、上位へ連絡する条件社内Wikiから書き出したもの
手順書のメタデータ手順書の番号、サービス名、対象のアラートポリシー、現行/廃止、最終の見直し日運用チームの管理表
障害対応の振り返り発生日時、事象、見たもの、判断、対応、原因、再発防止共有ドライブの文書
振り返りのメタデータ記録の番号、サービス名、関係したアラートポリシー、影響の大きさ同上と管理表

質を決めるのは、説明文の欄の「手順書の番号」と、メタデータの「現行/廃止」です。 手順書の番号が通知に入っていれば、検索の精度に頼らずに正しい手順書へたどり着けます。 「現行/廃止」が無いと、第3章の(b)の古い手順書がそのまま回答に使われます。

振り返りの記録に「関係したアラートポリシー」を付けるのは、後から効いてきます。 同じアラートの過去の判断を、名前の揺れに関係なく引けるようになります。新しく書く振り返りから付け始め、過去分は件数の多いサービスから順に付けます。

Step3

データの取得方法を決める

アラートポリシーの説明文の欄に、手順書の番号とサービス名を書きます。 説明文には変数を使えるとされ、${policy.display_name}(ポリシー名)、${condition.display_name}(条件名)、${resource.label.KEY}(リソースのラベル)、${policy.user_label.KEY}(ポリシーに付けたラベル)などが使えます。ポリシーのラベルに runbook_id と service を持たせ、説明文でそれを書き出すのが、ポリシーごとに書き分けずに済む方法です。説明文には最大3つまでリンクも付けられるとされており、手順書のURLを入れておくと当番がすぐ開けます。

手順書と振り返りは、Cloud Storage に置いてデータストアに取り込みます。 文書ごとのメタデータは、JSONL の各行に id、structData(または jsonData)、content.mimeType、content.uri を書いた形式で渡します。

取るものどこから何に使うか
ポリシー名・条件名・リソースのラベル通知のJSON検索の文を組み立てる
手順書の番号・サービス名通知の説明文(ポリシーのラベルから)絞り込み
手順書の本文とメタデータCloud Storage手順の根拠
振り返りの本文とメタデータCloud Storage判断の目安の根拠

絞り込みに使う項目は、スキーマの設定で索引可能にします。 絞り込みの式は runbook_id: ANY("RB-0123") や service: ANY("billing") AND status: ANY("current") のように書けます。日付の項目には比較の演算子も使えるとされています。

取り込み直しは、手順書を更新した日に行います。 Cloud Storage からの定期的な取り込み(1日、3日、5日ごと)もありますが、元のデータの権限の制御が反映されないとされています。手順書と振り返りは運用チームだけが見るものなので、このデータストア自体を運用チームだけが使えるようにし、他部門の文書は入れません。

Step4

AIへ渡す前に整形する

  1. 手順書を1事象1文書にそろえる … 1つのページに複数の事象が書かれているものは分けます
  2. 現行/廃止を付ける … 管理表から状態を付け、置き換えられた旧版には「廃止」を付けます
  3. 見出しを整える … 「確認の手順」「対応の手順」「上位へ連絡する条件」の見出しをそろえます
  4. 振り返りから個人と顧客の情報を除く … 担当者の氏名、顧客企業の名前、問い合わせの文面を伏せます
  5. 認証情報を除く … 手順書に書かれたパスワード、トークン、接続文字列が無いかを確かめて消します
  6. 文書の分割を設定する … データストアを作るときに分割(チャンク)を有効にし、見出しを各断片に付けます
  7. パーサーを選ぶ … 書き出したHTMLやDOCXはレイアウトパーサーで、表と見出しを保ったまま読みます

6番目は、データストアを作る前に決めます。 分割はデータストアの作成後に有効・無効を切り替えられないとされています。断片の大きさは100〜500トークンの範囲で指定でき、includeAncestorHeadings を有効にすると、題名と各階層の見出しが断片に付くとされています。手順書の「対応の手順」の断片だけが返ってきても、どの事象の手順かが分かるようにするためです。

5番目を省かないでください。 手順書には、管理画面へのログインの方法がそのまま書かれていることがあります。検索に入れた時点で、回答の文に出てくる可能性があります。 認証情報は手順書から外し、秘密情報の管理の仕組みを指す書き方に直します。

Step5

AIに処理させる

させるのは、アラートの内容に合う手順書の手順と、過去の記録にある判断の目安を、出典を付けて短くまとめることです。

要素中身根拠
該当する手順書手順書の番号と題名手順書だけ
最初に確かめること手順書の「確認の手順」の要点手順書だけ
判断の目安過去に同じアラートで待ったか・対応したか・誰を起こしたか振り返りの記録だけ
上位へ連絡する条件手順書に書かれた条件手順書だけ

右端の列を混ぜないことが、この構成で最も大事な点です。 振り返りの記録には、そのときだけの応急処置(一時的な設定の変更、手作業での再実行)が書かれています。それが「手順」として返ると、当番は手順書にない操作を正式な手順だと思って実行します。 手順は手順書だけ、目安は記録だけから取らせます。

answer メソッドの設定は次のようにします。

設定値理由
includeCitations有効回答の文ごとに出典を付ける
ignoreLowRelevantContent有効関係の薄い手順書で無理に答えない
ignoreAdversarialQuery有効想定外の文面に答えない
searchResultModeCHUNKS手順書の該当の断片を返す
maxReturnResults10既定のまま。最大は25
filter手順書の番号、またはサービス名と status: ANY("current")廃止された手順書を除く
preamble下の指示答え方の規則を与える
させないこと理由
原因の断定夜間に見えている情報だけでは決められない
手順書に無い操作の提案一般的な知識からの操作は、自社の構成で事故になる
待つ・起こすの結論当番の判断。AIは過去の判断を示すだけ
コマンドの実行や設定の変更この構成は書き込みの権限を持たない
手順書と記録の食い違いの解消どちらを直すかは運用チームが決める

2行目が最も起きやすい失敗です。 回答を作るモデルは、データベースの接続数が足りないときの一般的な対処を知っています。それを使って答えると、自社の構成では別の影響が出る操作が、手順のように並びます。 検索結果の文書だけで答えることを、指示で明記します。

Step6

指示内容を固定する

answer メソッドの preamble に、次の指示を入れます。

あなたは夜間・休日にシステムの監視アラートを受けた当番の担当者に、
運用手順書と過去の障害対応記録から、該当する手順と判断の目安を返します。
読むのは深夜に起こされた当番で、あなたの回答を見て手順書を開きます。

【答え方】
1. 最初に、該当する手順書の番号と題名を書いてください。
2. 次に、手順書の「確認の手順」から、最初に確かめることを3つまで書いてください。
3. 過去に同じアラートが鳴ったときの記録があれば、
   そのとき待ったのか、対応したのか、誰に連絡したのかを、記録の番号と日付を付けて書いてください。
4. 手順書に「上位へ連絡する条件」があれば、そのまま書いてください。

【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
  一般的な知識で手順を補わないでください。
- 手順は運用手順書からだけ書いてください。
  障害対応の記録にある操作を、手順として書かないでください。
  記録にある操作は「過去にこう対応した」とだけ書いてください。
- 数値の基準(しきい値、待つ時間、件数)は、文書に書かれているとおりに書いてください。
- 原因を断定しないでください。「原因の候補」も書かないでください。
- 待つべきか、対応すべきか、誰かを起こすべきかの結論を書かないでください。
- 廃止と書かれた手順書を使わないでください。
- 該当する手順書が見つからないときは、
  「該当する手順書が見つかりません。上位の担当者の連絡先を確認してください」とだけ書いてください。
- 手順書と記録で記載が違う点があれば、両方を書き、
  「手順書と過去の記録の記載が異なります」と明記してください。
- 人の氏名、顧客の名前、パスワードやトークンを書かないでください。

「記録にある操作は『過去にこう対応した』とだけ書く」が、この指示の要です。 禁じるだけでは、記録の操作が手順のなかに混ざります。書き方まで決めると、読む当番の側で「これは手順ではない」と区別できます。

検索の文は、中継プログラムが通知から組み立てます。 例えば「サービス:billing、ポリシー:DB接続数の上限に近い、条件:接続数が上限の90%を5分超える、リソース:本番のデータベース。該当する手順と過去の対応を教えてください」のように、通知の項目を決まった順に並べます。

Step7

出力形式を固定する

answer メソッドの応答を、中継プログラムが次の形に整えて、チャットと記録に渡します。

{
  "incident_id": "",
  "policy": "",
  "service": "",
  "lookup": "runbook_id | service_search | none",
  "status": "answered | skipped | no_runbook",
  "skipped_reasons": [],
  "answer_text": "",
  "runbook": { "id": "", "title": "", "status": "current", "uri": "" },
  "past_records": [
    { "id": "", "date": "", "decision": "", "uri": "" }
  ],
  "conflict": false,
  "feedback": "useful | partly | wrong | none"
}

1つ目の理由は、lookup で引き方を残せることです。 手順書の番号で引いた回答と、サービス名で検索した回答では、外れる確率が違います。月次の集計で、番号が無いポリシーを洗い出す材料になります。

2つ目は、runbook を回答の文と別に持てることです。 中継プログラムは、出典の中に手順書が1つも無い回答を no_runbook に書き換え、手順の部分を表示せず、過去の記録だけを「参考」として出します。 廃止の手順書が出典に入っていれば、その出典を除きます。

3つ目は、feedback で回答の質を測れることです。 当番がスレッドで選んだ評価を残し、「外れ」の多いポリシーから手順書と説明文を直します。

チャットには、次の形で投稿します。

欄中身
手順書番号・題名・リンク(廃止でないことを確認済み)
最初に確かめること3つまで
過去の対応記録の番号・日付・そのときの判断
上位へ連絡する条件手順書の記載のまま
注意「操作は手順書の原文で確かめてください」
Step8

システムへ連携する

つなぎ先方式内容
Cloud MonitoringPub/Sub への通知アラートの発報と復旧を受け取る
Agent Searchanswer メソッドの呼び出し手順書と記録から回答を作る
チャット投稿のAPI当番のスレッドに回答を投稿し、評価を受け取る
管理表読み取り手順書の現行/廃止を取り込みに反映する
記録書き込み通知・回答・評価を残す

監視の仕組みにもサーバーにも、書き込みません。 中継プログラムが持つのは、通知を読む権限と検索を呼ぶ権限と、チャットに投稿する権限だけです。自動で再起動する仕組みを足したくなっても、この構成の中には作りません。 夜間に誤った手順で操作が走ると、1件のアラートが障害に変わります。

Step9

人が確認する

当番は、回答を読んだあと必ず手順書の原文を開きます。 回答は「どの手順書か」と「過去に何があったか」を短く示すもので、手順の細部と注意書きは原文にしかありません。

  1. 手順書の番号と題名を確かめる … アラートの事象と合っているか、廃止でないかを見ます
  2. 原文で確認の手順を読む … 回答の3つの要点ではなく、原文の手順に沿います
  3. 過去の対応を参考にする … 記録の日付が古ければ、その後に構成が変わっていないかを疑います
  4. 初動を決めてスレッドに書く … 待つ/対応する/上位を起こすを当番が決めます
  5. 回答を評価する … 役に立った/一部/外れの3択を選びます

3番目を軽く見ないでください。 2年前の記録で「待てば戻った」アラートが、構成を変えたあとも同じとは限りません。記録の日付を回答に必ず出させているのは、このためです。

目標は、1件6分です。 回答と手順書を読んで初動を決めるまでで、探す時間をなくし、読む時間と判断の時間だけを残します。

Step10

例外に対処する

起きること対応
説明文に手順書の番号が無いサービス名で検索する。lookup に service_search を残し、月次で番号を付ける
関係の薄い内容しか見つからない回答を作らず理由が返る。「該当する手順書なし」と上位の連絡先を投稿
同じ障害の続報が何度も届く障害の識別子で既存のスレッドへ追記し、検索しない
復旧の通知が届くスレッドに「復旧」と追記するだけにする
アラートが一度に多数鳴るサービスごとに1つにまとめ、最初の1件だけ検索する
出典が廃止の手順書だけ手順を表示せず、管理表の担当者に翌朝知らせる
手順書と記録が食い違う両方を表示し、翌朝の確認の一覧に載せる
検索の呼び出しが失敗する「回答を作れませんでした」と投稿する。アラート自体は通常の経路で届いている
中継プログラムが止まる当番への通常の通知は影響を受けない。翌朝に未処理の通知を確かめる

5行目は、大きな障害のときに効きます。 1つの原因で十数個のアラートが同時に鳴ると、それぞれに回答を付けたくなりますが、当番が最初に知りたいのは「どこから見るか」だけです。 同じサービスのものはまとめ、他は件数だけを示します。

Step11

記録を残す

  • アラートの通知のJSONの全文と、受け取った日時
  • 中継プログラムが組み立てた検索の文と、使った絞り込みの式
  • answer メソッドの応答の全文(回答、出典、回答しなかった理由)
  • チャットに投稿した内容と、当番が付けた評価
  • 当番がスレッドに書いた初動の判断
  • そのとき参照した手順書の版と、現行/廃止の状態

最後の行は、振り返りのときに効きます。 障害の振り返りで「なぜその手順で動いたか」を確かめるとき、手順書がその後に直されていると、当時の回答の根拠が分かりません。

04実装レベルの3段階

最小構成:手順書と記録を手元のAIサービスに読み込ませ、アラートの文面を貼って聞く / 手順書と過去の記録の検索
半自動化:上記+データストアを作り、当番が検索画面にアラートの文面を貼って聞く / 根拠付きの回答と、廃止版の除外
本格構成:上記+アラートの通知を起点に自動で検索し、手順書の番号で絞り込み、当番のスレッドに投稿する / 通知から回答の投稿まで

最小構成は夜間には使えません。 手順書が引けるかを確かめるための段階です。 半自動化で、1件15分が9分程度になります。 探す時間は縮みますが、当番がアラートの文面を貼り直す手間と、サービス名で検索した結果を見比べる時間が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、手順書の番号で直接引けるようになり、外れが減るからです。 段階を飛ばさないでください。 半自動化の検索の記録を1か月見ると、当番がどの言葉で探しているかが分かります。それをもとに手順書の題名とポリシーの説明文を直してから本格構成に進むほうが、外れが少なくなります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
8 名
月間件数
240 件
1件あたり現在時間
15 分
1件あたり導入後時間
6 分
現在  240件 × 15分 ÷ 60 = 60 時間/月
導入後 240件 × 6分 ÷ 60 = 24 時間/月
月間削減時間
36h
削減率
60%
年間削減時間
432h
年間金額換算(時間単価4,500円)
194万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 自社のWebサービスや業務システムを24時間動かしており、夜間・休日は数名の当番が交代で監視アラートを受けているIT・SaaS、EC、金融、物流の会社。運用手順書(ランブック)と障害対応の振り返りの記録が文書として残っているが、数が増えて当番がその場で探し当てられない場合。当番の経験の差で、同じアラートへの初動がばらついている場合。監視に Google Cloud の Cloud Monitoring を使っているか、監視の通知を Webhook や Pub/Sub で受けられる場合。
向いていない
  1. 運用手順書がほとんど無く、障害対応の記録も残っていない場合(探す先が無いので、まず手順書を書くのが先です)。夜間に鳴るアラートが月に数件で、当番が全部を覚えていられる場合。アラートを受けたら自動で再起動・切り替えまで行う仕組みをAIに作らせたい場合(この構成は手順を探して示すだけで、操作は当番が行います)。障害対応の記録を社外のクラウドに置くことが社内規程で認められていない場合。

07最小構成で試す方法

  1. 先月、夜間・休日に鳴ったアラートから20件を選ぶ(手順書が見つからなかったものを数件入れる)
  2. そのとき当番が何を見て、どう判断したかを本人に聞いて残す
  3. 該当しそうなサービスの手順書と振り返りの記録を、手元のAIサービスに資料として読み込ませる
  4. アラートの文面を貼り、「添付の手順書と記録だけを根拠に、該当する手順書の名前、最初に確かめること、過去の同じアラートでの対応を、出典の文書名を付けて答えてください。手順書に無い操作は書かないでください」と指示する
  5. 出てきた手順書と、当時の当番が実際に開いた手順書を突き合わせる
出てきた内容判断
当番が開いたのと同じ手順書が出たデータストアの構築に進む
記録の応急処置を手順として書いた指示の書き方で直る。構成は有効
該当する手順書が出ない件数が多い手順書の整備が先。 検索の問題ではない

08実装時につまずきやすいポイント

問題対策
記録の応急処置が手順として返る手順は手順書だけ、目安は記録だけと指示し、出典の種類を中継プログラムで検査する
廃止の手順書が回答に使われるstatus を索引可能にし、status: ANY("current") で絞り込む
手順書の番号がポリシーに無いポリシーのラベルに runbook_id を持たせ、説明文の変数で書き出す
断片だけが返り、何の手順か分からないincludeAncestorHeadings を有効にする。作成後には分割を変えられない
一般的な知識で手順を補う検索結果の文書だけで答えるよう指示し、出典の無い文を表示しない
続報のたびに回答が投稿される障害の識別子でスレッドにまとめる
Webhook で受けようとして社外に開くWebhook は公開のエンドポイントのみ。 Pub/Sub で受ける
手順書にパスワードが書かれている取り込む前に消し、秘密情報の管理の仕組みを指す書き方にする
定期取り込みで権限が反映されないこのデータストアには運用チームの文書だけを入れる
古い記録の判断を今も正しいと思う記録の日付を必ず表示する
自動復旧まで作りたくなる作らない。 操作は当番が手順書で行う

上の2行が、この構成の失敗のほとんどです。 どちらも正しくない手順が正しい手順の顔をして届く失敗で、出典の種類と状態を中継プログラムの規則で検査しているかどうかで、夜間に使えるかが決まります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: システムの構成と弱点が分かる運用手順書、障害の経緯と原因が書かれた振り返りの記録、アラートの通知に含まれるホスト名やリソースのラベルです。攻撃する側から見れば、最も欲しい情報の一つです。

  1. データストアを使える人を運用チームに限る … 手順書は社内でも限られた人が見るものです。検索画面と中継プログラムの権限を、運用チームの外へ広げないでください
  2. 認証情報を取り込まない … 手順書と記録からパスワード、トークン、接続文字列を除いてから取り込みます。回答の文に出てくると、チャットの履歴に残ります
  3. 顧客と個人の情報を取り込まない … 振り返りに書かれた顧客企業名や問い合わせの文面は、伏せてから入れます
  4. 中継プログラムに書き込みの権限を与えない … 監視、サーバー、設定のどれにも書き込めない権限で動かします
  5. 通知の受け口を社外に開かない … Pub/Sub で受け、公開のエンドポイントを作りません
  6. 回答は判断を代替しない … 待つか、対応するか、誰を起こすかは当番と運用チームの責任者が決めます。この構成が出すのは、手順書と過去の記録の場所と要点だけです

誤りが起きた場合のリスクは、誤った手順で操作することと、対応すべきアラートを待ってしまうことの2つです。 前者は記録の応急処置や廃止の手順書が手順として届くと起き、後者は古い記録の「待てば戻った」を今も正しいと読むと起きます。どちらも出典の種類と日付で防ぐので、そこは規則で守ります。

10まず何から始めるか

1週目:手順書の現行/廃止を付ける

管理表に手順書の一覧を作り、現行か廃止かと、対象のサービスを付けます。 350本を一度に終える必要はありません。夜間に鳴る回数の多い上位30のアラートに関係する手順書から始めます。

2週目:20件で試す

先月の夜間のアラートから20件を選び、手元のAIサービスに手順書と記録を読み込ませて聞きます。記録の応急処置を手順として書いていないかを最優先で見ます。

3週目:アラートポリシーに手順書の番号を持たせる

上位30のポリシーに runbook_id と service のラベルを付け、説明文で書き出します。この時点で、当番への通常の通知にも手順書の番号が載り、AIが無くても探す時間が縮みます。

4週目:データストアを作る

手順書と振り返りの記録から認証情報と個人・顧客の情報を除き、分割と見出しの設定を決めてデータストアを作ります。運用チームが検索画面で使えるようにし、日中だけで試します。

2か月目: 中継プログラムを作り、日中のアラートに回答を付けます。当番の評価を毎週数えます。3か月目以降: 夜間・休日に広げ、1件15分が何分になったかを実測します。評価が「外れ」のポリシーから手順書と説明文を直し、番号で引ける割合が上位30のポリシーでそろった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-05/最終更新:2026-10-05
確認した内容情報源確認日
answer メソッドが検索結果から回答を作り、複雑な質問を分けて検索すること。includeCitations で回答の文ごとに出典を返すこと。ignoreAdversarialQuery/ignoreNonAnswerSeekingQuery/ignoreLowRelevantContent で回答を作らず answerSkippedReasons を返すこと。maxReturnResults が既定10・最大25、filter、searchResultMode に DOCUMENTS/CHUNKS、preamble で指示を与えられること。Agent Search(旧 Vertex AI Search)と案内されていることGoogle Cloud: Get answers and follow-ups2026-10-05
デジタル/OCR/レイアウトの3つのパーサー、OCR パーサーが PDF の先頭500ページまでであること、レイアウトパーサーが表・見出しを検出し HTML・PDF・DOCX・PPTX・XLSX に対応すること。分割の chunkSize が100〜500、includeAncestorHeadings で題名と各階層の見出しを付けられること、分割はデータストアの作成後に切り替えられないことGoogle Cloud: Parse and chunk documents2026-10-05
メタデータでの絞り込みに ANY()、比較の演算子、AND/OR/NOT を使えること、項目を索引可能にする必要があることGoogle Cloud: Filter search for structured or unstructured data2026-10-05
Cloud Storage からの取り込みで、JSONL に id、structData/jsonData、content.mimeType、content.uri を書く形式。定期的な取り込みが1日・3日・5日ごとで、元のデータの権限の制御が反映されないこと。Vertex AI Search が Agent Search へ改称中であることGoogle Cloud: Create a search data store2026-10-05
通知の送り先にメール、モバイルアプリ、PagerDuty、SMS、Slack、Webhook、Pub/Sub、Google Chat があること。Webhook が公開のエンドポイントのみに対応すること。Pub/Sub にバージョン1.2のJSONで障害・リソース・指標・ポリシーの情報が送られることGoogle Cloud: Notification channels2026-10-05
アラートポリシーの説明文(件名255文字まで、本文は Markdown と変数に対応、リンクは最大3つ)と、${policy.display_name}/${condition.display_name}/${resource.label.KEY}/${policy.user_label.KEY} などの変数Google Cloud: Annotate notifications with user-defined documentation2026-10-05

待つか、対応するか、誰を起こすかは、当番と運用チームの責任者が判断してください。 本記事は Google Cloud の公開ドキュメントで確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0414)についてのご相談はこちらから。

AI活用について相談する
目次