SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 Summer レポート(PR)

システム拡大で増えるインシデントやアラート管理をより効率的に! 「PagerDuty」の活用法を解説【デブサミ2022夏】

【D-8】:PagerDutyでシステムノイズを削減し、インシデントの解決を自動化する方法

  • このエントリーをはてなブックマークに追加

デモンストレーションでPagerDutyをより詳しく紹介

 PagerDutyの機能説明のあと大塚氏は、デモンストレーションによって利用イメージを紹介した。

インシデントに対応するチームを系統図で示す

 PagerDutyは、インシデントの発生が想定される部分と、それに対応するチームを関連づけた系統図を用いてインシデントの管理を行う。これは、「サービスグラフ」と呼ばれる。下図を見ると、Web Servicesでインシデントが発生したら、最初の対応はDevOps Team Bが担当することがわかる。

PagerDutyの動作概要を図式化した「サービスグラフ」
PagerDutyの動作概要を図式化した「サービスグラフ」

 大塚氏は、インシデントが発生し、オンコールですぐに連絡が必要となると、担当者の携帯電話に通知するというシーンも紹介した。通知手段は、電話のコール、SMS、Eメールなどを選択可能だ。下図の例では、右の黒い部分が携帯電話のメッセージ表示部分になっており「Login Error〜」というインシデント発生の通知が示されていることがわかる。

 今回のデモンストレーションでは、「ログインできない」というインシデントを想定した。その際のサービスグラフでは「Login」が強調され、直下の対応チームに赤い三角マークが見える。このように図式化されることで、インシデントの発生と対応部署、その影響の及ぶ範囲などが容易に判断できる。

インシデントが発生した箇所と対応チームが強調されている
インシデントが発生した箇所と対応チームが強調されている

スケジュールや担当者の空き状況に応じた自動割り当ても可能

 通知を受け取っても担当者がすぐに対応できない場合がある。滞りなく対応できるよう、他の担当者を割り当てるエスカレーションのルールについては「エスカレーションポリシー」で設定できる。ポリシーはいくつか階層に分かれていて、一番上の層が最初のエスカレーションポイントだ。またオンコール担当者のスケジュールと連携しているので、時間や日にちによって担当は自動的に選択される。ポリシーにはタイマーがあり「3分間で反応が無かったら」次の人にエスカレーションするという設定もできる。インシデントが発生しても、誰にも連絡がいかないということはない。

DevOps Team Bのエスカレーションの取り決め設定の例。担当者をレベルごとに設定可能。
DevOps Team Bのエスカレーションの取り決め設定の例。担当者をレベルごとに設定可能。

原因が同じ複数のアラートも、1つのインシデントに集約

 Loginのエラーなど、サービス全体にかかわるインシデントが発生した場合、利用者の数だけ通知がきてしまう可能性がある。PagerDutyは、1つのインシデントに関連するアラートを集約することで、重複したアラートというノイズ情報を一箇所にまとめられる。これによって、アラートが発生する度に担当者が確認に走るという手間が省ける。図では、右側の携帯電話のメッセージ表示画面に集約されたアラートが見える。だぶったアラートについては、保管はするがインシデントは1つとして対応している。

右の携帯面を見ると4つアラートが発生しているが、インシデントは1つとした対応している
右の携帯面を見ると4つアラートが発生しているが、インシデントは1つとした対応している

 アラートの集約については「Reduce Noise」機能から3つの手法を選べる。

 「Time-Based」(タイムベース)は、アラートの内容に関わらず、時間をもとに集約を行う。30分と指定した場合は、最初のアラートが発生してから30分間は内容に限らず対応するインシデントの中に集約する。本設定は、メンテナンス作業などによって大量のアラートが一定時間発生する場合などに有効だ。

 「Contents-Based」(コンテンツベース)は、アラートの内容を1個ずつ確認し、設定した条件に応じて集約を行う。設定は、集約したいアラートのデータの中で、このデータが同じだったら集約するという指定を行うことで設定ができる。アラート内のデータを表示し、集約に関連するデータ部をクリックすると、その場所に同じ情報があるものが集約される。

 3つ目が「Intelligent」(インテイジェント)だ。PagerDutyの機械学習を用いて集約を行うことができる。機械学習を用いることで、アラートのタイトルや入ってくる時間帯が近ければ自動的に判断して集約を行う。ほかにも2つのアラートが同時に発生することが多いときは、この2つのアラートを選んで「merge」ボタンを押して学習させておくと、以後同じように処理できるようになる。

インシデントの自動分類を行うための設定も可能

 PagerDutyは、アラートが入ってきた時に、そのアラートがクリティカルかどうかの見極めを行い、どの担当者宛にインシデントを分類するかといった仕分けを自動で行える。この自動仕分け機能は「イベントオーケストレーション」と呼ばれ、事前の各種設定によって仕分けの判断を行う。設定項目は、インシデントを発生したツールの種類や、アラートのデータを設定条件にすることができる。複数設定が可能で、アンド(&)もしくはオア(or)することができる。下図は、その設定を編集できる「Edit Routing Rule」の画面だ。こうした仕分けによる分岐は、図式化された状態で確認できるので、設定にミスや問題があっても容易に理解でき修正もその場でできる。

 大塚氏は「どこのメンバーに連絡すればよいかを考えながら行っていた手仕事の仕分け作業も、このイベント・オーケストレーション機能で自動的に実施することができます。前のアラート集約機能を合わせて90%以上のノイズを削減した実績もあります」と語った。

インシデントの仕分け方法を示した図
インシデントの仕分け方法を示した図

インシデント対応を自動化し、工数を削減

 インシデントによっては、その対処法が決まっていることもある。例えばサーバーの現状確認、必要なら再起動、もしくは新しいWebサーバのデプロイなどは、よく行われる。これらは、スクリプトを動作させたり、コマンド入力したりすることによって実行できるが、PagerDutyには、このようなよく行う作業を自動実行できる機能がある。事前にスクリプトやコマンドを設定しておけば、プルダウンメニューから、例えば「Check Server Status」を選べば、すぐにサーバーの状況を確認可能だ。よく行うたくさんの作業をあらかじめ設定しておけば、相当の工数低減につながるだろう。

あらかじめ設定したインシデント対応をプルダウンメニューから選択して自動実行できる
あらかじめ設定したインシデント対応をプルダウンメニューから選択して自動実行できる

 インシデントの対応は、システムの保安や保全に重要な作業だ。PagerDutyのようなツールを使って、効率的に処理し、時には自動操作で時間短縮することは、担当者の負荷低減の意味でも重要と言える。同社では、PagerDutyの無料トライアルを実施しているので、インデントの上手な管理に悩んでいるなら、すぐにトライアルでその効果を実感してほしい。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2022 Summer レポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16400 2022/09/26 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング