(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-12-13
(45)【発行日】2023-12-21
(54)【発明の名称】障害検知装置、障害検知方法、及び障害検知プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20231214BHJP
G06Q 50/00 20120101ALI20231214BHJP
【FI】
G06Q50/10
G06Q50/00 300
(21)【出願番号】P 2022112031
(22)【出願日】2022-07-12
【審査請求日】2022-12-14
(73)【特許権者】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100180806
【氏名又は名称】三浦 剛
(74)【代理人】
【識別番号】100151459
【氏名又は名称】中村 健一
(72)【発明者】
【氏名】宮田 銀河
(72)【発明者】
【氏名】石田 貴史
(72)【発明者】
【氏名】廣橋 俊昭
(72)【発明者】
【氏名】嵯峨 毅郎
(72)【発明者】
【氏名】辻 拓真
(72)【発明者】
【氏名】古平 紀章
【審査官】佐藤 敬介
(56)【参考文献】
【文献】特開2014-10511(JP,A)
【文献】特開2016-6583(JP,A)
【文献】米国特許出願公開第2017/0286857(US,A1)
【文献】特開2022-90209(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
対象のインターネットサービスの通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定する貢献度指数設定部と、
投稿サイトへの複数の投稿文の中から、前記インターネットサービスに関する障害の有無を判断するための所定の文言を含む投稿文を取得する投稿文取得部と、
前記投稿文取得部が所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの前記貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出する算出部と、
前記積算値が所定の条件を満たした場合に前記インターネットサービスに障害が発生したものと判断する障害判断部と、
前記インターネットサービスに障害が発生したことを外部に通知する障害通知部と、
を有することを特徴とする障害検知装置。
【請求項2】
前記貢献度指数設定部は、過去に生じた障害に関して、障害が発生した場合に障害発生を通知する投稿が行われた場合には、前記貢献度指数に加点する、請求項1に記載の障害検知装置。
【請求項3】
前記貢献度指数設定部は、過去に生じた障害に関して、障害が発生してから投稿までの時間が短い程、前記貢献度指数に加点するポイント数を大きな値に設定する、請求項2に記載の障害検知装置。
【請求項4】
前記貢献度指数設定部は、過去に生じた障害に関して、障害が発生していない場合に障害発生を通知する投稿が行われた場合には、前記貢献度指数から減点する、請求項1または2に記載の障害検知装置。
【請求項5】
前記所定の条件は、前記所定の期間における前記積算値の累積値が所定の基準値を超えることである、請求項1または2に記載の障害検知装置。
【請求項6】
前記所定の条件は、
前記所定の期間において連続して前記積算値が増加する第1条件、
前記所定の期間における単位時間当たりの積算値である平均積算値が第1閾値を超える第2条件、
前記所定の期間における単位時間当たりの投稿数である平均投稿数が第2閾値を超える第3条件、及び、
前記所定の期間における投稿数に対する前記積算値の割合が第3閾値を超える第4条件のうちの少なくとも2つ以上の条件が満たされていることである、請求項1または2に記載の障害検知装置。
【請求項7】
前記所定の条件は、前記所定の期間において連続して前記積算値が増加することである、請求項1または2に記載の障害検知装置。
【請求項8】
前記所定の条件は、前記所定の期間における単位時間当たりの積算値である平均積算値が第1閾値を超えることである、請求項1または2に記載の障害検知装置。
【請求項9】
前記所定の条件は、前記所定の期間における投稿数に対する前記積算値の割合が第3閾値を超えることである、請求項1または2に記載の障害検知装置。
【請求項10】
前記投稿文取得部から、障害に関する文言を含む投稿文を入力パラメータとして取得して、学習モデルに入力し、当該投稿文が障害の発生に関する投稿文である可能性を出力パラメータとして出力する学習部をさらに備え、
前記学習モデルは、障害に関する文言を含む投稿文であって、障害発生時に投稿された投稿文、及び障害非発生時に投稿された投稿文を学習用入力パラメータとし、前記投稿文が障害の発生に関するものであるか否かの判定結果を学習用出力パラメータとした入出力データセットを用いて、機械学習によって生成された学習モデルである、
請求項1または2に記載の障害検知装置。
【請求項11】
貢献度指数設定部が、対象のインターネットサービスの通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定し、
投稿文取得部が、投稿サイトへの投稿文の中から、前記インターネットサービスについて、障害の有無を判断するための所定の文言を含む投稿文を取得し、
算出部が、前記投稿文取得部が所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの前記貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出し、
障害判断部が、前記積算値が所定の条件を満たした場合に前記インターネットサービスに障害が発生したものと判断し、
障害通知部が、前記インターネットサービスに障害が発生したことを外部に通知する、
ことを特徴とする障害検知方法。
【請求項12】
コンピュータに、
対象のインターネットサービスの通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定するステップと、
投稿サイトへの投稿文の中から、前記インターネットサービスについて、障害の有無を判断するための所定の文言を含む投稿文を取得するステップと、
所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの前記貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出するステップと、
前記積算値が所定の条件を満たした場合に前記インターネットサービスに障害が発生したものと判断するステップと、
前記インターネットサービスに障害が発生したことを外部に通知するステップと、
を実行させることを特徴とする障害検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害検知装置、障害検知方法、及び障害検知プログラムに関する。
【背景技術】
【0002】
近年、ツイッター(登録商標)や、インスタグラム等、複数のユーザが情報を提供するSNSサービスが広く利用されている。SNSを利用するユーザの中には、AWSやAzure等のクラウドサービスや、携帯回線等の通信サービスを含むインターネットサービスに障害が発生したときに、障害について投稿する者が複数存在することが確認されている。
【0003】
そこで、複数の投稿者によって記述された多数の投稿文を用いて、特定の異常を検知する異常検知装置が知られている(例えば、特許文献1)。特許文献1に記載された異常検知装置は、単位時間毎に、検知対象となるキーワードを含む投稿文を取得し、現在時間の投稿数が、過去所定時間における投稿数よりも所定閾値以上で増加した際に、異常発生を検知するものである。
【0004】
しかしながら、従来の異常検知装置は、SNSのユーザの属性を考慮しておらず、不正確な障害情報を投稿するユーザと、有益な障害情報を投稿するユーザを同等に扱っている。その結果、単に障害に関する投稿文を取得するだけでは、障害の発生を正確に把握することが難しく、障害の検知に長時間を要し、サーバの管理者が障害に対して迅速に対応することが難しいという問題があった。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、不特定多数のユーザからの投稿文を用いて、クラウドサービスや携帯回線等の通信サービスの両方を含むインターネットサービスにおける障害を迅速に検知することが可能な障害検知装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一実施形態に係る障害検知装置は、対象のインターネットサービスにおける障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定する貢献度指数設定部と、投稿サイトへの複数の投稿文の中から、インターネットサービスに関する障害の有無を判断するための所定の文言を含む投稿文を取得する投稿文取得部と、投稿文取得部が所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出する算出部と、積算値が所定の条件を満たした場合にインターネットサービスに障害が発生したものと判断する障害判断部と、インターネットサービスに障害が発生したことを外部に通知する障害通知部と、を有することを特徴とする。
【0008】
本開示の一実施形態に係る障害検知装置において、貢献度指数設定部は、過去に生じた障害に関して、障害が発生している期間にユーザが障害発生を通知する投稿を行った場合には、当該ユーザの貢献度指数に加点してよい。
【0009】
本開示の一実施形態に係る障害検知装置において、貢献度指数設定部は、過去に生じた障害に関して、障害が発生してから投稿までの時間が短い程、貢献度指数に加点するポイント数を大きな値に設定してよい。
【0010】
本開示の一実施形態に係る障害検知装置において、貢献度指数設定部は、過去に生じた障害に関して、障害が発生していない期間にユーザが障害発生を通知する投稿を行った場合には、当該ユーザの貢献度指数から減点してよい。
【0011】
本開示の一実施形態に係る障害検知装置において、所定の条件は、所定の期間において連続して積算値が増加する第1条件、所定の期間における単位時間当たりの積算値である平均積算値が第1閾値を超える第2条件、所定の期間における単位時間当たりの投稿数である平均投稿数が第2閾値を超える第3条件、及び、所定の期間における投稿数に対する積算値の割合が第3閾値を超える第4条件のうちの少なくとも2つ以上の条件が満たされていることであってよい。
【0012】
本開示の一実施形態に係る障害検知装置において、所定の条件は、所定の期間における積算値の累積値が所定の基準値を超えることであってよい。
【0013】
本開示の一実施形態に係る障害検知装置において、所定の条件は、所定の期間において連続して積算値が増加することであってよい。
【0014】
本開示の一実施形態に係る障害検知装置において、所定の条件は、所定の期間における単位時間当たりの積算値である平均積算値が第1閾値を超えることであってよい。
【0015】
本開示の一実施形態に係る障害検知装置において、所定の条件は、所定の期間における投稿数に対する積算値の割合が第3閾値を超えることであってよい。
【0016】
本開示の一実施形態に係る障害検知装置において、投稿文取得部から、障害に関する文言を含む投稿文を入力パラメータとして取得して、学習モデルに入力し、当該投稿文が障害の発生に関する投稿文である可能性を出力パラメータとして出力する学習部をさらに備え、学習モデルは、障害に関する文言を含む投稿文であって、障害発生時に投稿された投稿文、及び障害非発生時に投稿された投稿文を学習用入力パラメータとし、投稿文が障害の発生に関するものであるか否かの判定結果を学習用出力パラメータとした入出力データセットを用いて、機械学習によって生成された学習モデルであってよい。
【0017】
本開示の一実施形態に係る障害検知方法は、貢献度指数設定部が、対象のインターネットサービスにおける通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定し、投稿文取得部が、投稿サイトへの投稿文の中から、インターネットサービスについて、障害の有無を判断するための所定の文言を含む投稿文を取得し、算出部が、投稿文取得部が所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出し、障害判断部が、積算値が所定の条件を満たした場合にインターネットサービスに障害が発生したものと判断し、障害通知部が、インターネットサービスに障害が発生したことを外部に通知することを特徴とする。
【0018】
本開示の一実施形態に係る障害検知プログラムは、コンピュータに、対象のインターネットサービスにおける通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定するステップと、投稿サイトへの投稿文の中から、インターネットサービスについて、障害の有無を判断するための所定の文言を含む投稿文を取得するステップと、所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出するステップと、積算値が所定の条件を満たした場合にインターネットサービスに障害が発生したものと判断するステップと、インターネットサービスに障害が発生したことを外部に通知するステップと、を実行させることを特徴とする。
【発明の効果】
【0019】
本開示の一実施形態に係る障害検知装置によれば、不特定多数のユーザからの投稿文を用いて、インターネットサービスにおける障害を迅速に検知することができる。
【図面の簡単な説明】
【0020】
【
図1】本開示の一実施形態に係る障害検知装置を含む障害検知システムの構成図である。
【
図2】本開示の一実施形態に係る障害検知装置の構成ブロック図である。
【
図3】本開示の一実施形態に係る障害検知装置による貢献度指数データベースの更新手順を説明するためのフローチャートである。
【
図4】本開示の一実施形態に係る障害検知装置による障害発生から貢献度指数データベースの更新までの手順を説明するための図であって、(a)は障害日時情報を取得する手順、(b)は投稿文を取得する手順、(c)は貢献度指数データベースを更新する手順をそれぞれ説明するための図である。
【
図5】本開示の一実施形態に係る障害検知装置を用いて、障害発生時及び障害非発生時において、それぞれ貢献度指数に加点及び減点を行う例を示す図である。
【
図6】本開示の一実施形態に係る障害検知装置の貢献度指数設定部が設定する貢献度指数と障害発生からの経過時間との関係を示す表の例である。
【
図7】本開示の一実施形態に係る障害検知装置を用いて、投稿数及び積算値を用いて障害発生の有無を判断する手順を説明するためのフローチャートである。
【
図8】本開示の一実施形態に係る障害検知装置を用いて検出した積算値及び投稿数の時間的変化を示すグラフである。
【
図9】本開示の一実施形態に係る障害検知装置を用いて検出した積算値及び累積障害投稿数の時間的変化を示すグラフである。
【
図10】本開示の一実施形態に係る障害検知装置を用いて、障害発生時及び障害非発生時に投稿された投稿文を使用して学習モデルを作成する手順を示す図である。
【発明を実施するための形態】
【0021】
以下、図面を参照して、本発明に係る障害検知装置、障害検知方法、及び障害検知プログラムについて説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【0022】
(障害検知装置の概要)
図1に本開示の一実施形態に係る障害検知装置を含む障害検知システムの構成図を示す。障害検知システム1000は、障害検知装置100と、投稿サイトサーバ200と、クラウドサービスサーバ300と、複数の端末400とを有し、これらはインターネットサービス500を介して接続されている。なお、本実施形態においては、インターネットサービスの一例としてクラウドサービスを例にとって説明するが、このような例には限定されず、インターネットサービスは携帯回線等を含んでよい。
【0023】
ユーザは、端末400を利用してクラウドサービスサーバ300と通信を行い、クラウドサービスサーバ300が提供するサービスを利用する。端末400には、コンピュータや、携帯電話、スマートフォン、あるいはタブレット端末等の情報端末等を用いることができる。クラウドサービスサーバ300は、AWSやAzure等のサービスを提供するサーバである。ただし、クラウドサービスは、これらの例には限定されない。
【0024】
ユーザは、特定のクラウドサービスサーバ300に通信障害が発生したときに、投稿サイトサーバ200によって運用されている投稿サイトに、クラウドサービスサーバ300において障害が発生している旨の投稿を行うものとする。投稿サイトは、例えば、ツイッターやインスタグラム等であるが、これらの例には限定されない。
【0025】
ユーザの中には、障害発生時に障害に関する投稿を頻繁に行う者が存在することが確認されている。このようなユーザの投稿数をカウントすれば、障害の発生を検知できる。特に、障害発生時点から短時間の間に投稿を行うユーザの投稿は、障害発生検知を迅速に行ううえで有用である。即ち、障害発生から短時間で投稿された投稿文は、長時間経過後の投稿文よりも重要性が高いとみなすことができる。そこで、本開示の一実施形態に係る障害検知装置においては、障害発生の検知に対する貢献度を表す指数(パラメータ)として貢献度指数を設定し、貢献度が高いユーザに対して高いポイントを付与する。
【0026】
ユーザは、特定のクラウドサービスサーバ300に通信障害が発生した場合に、障害が発生したクラウドサービスサーバ300のサービス名と、障害が発生していることを示す所定の文言を含む投稿文を投稿サイトに投稿すると考えられる。障害の発生を表す「所定の文言」(障害ワード)とは、例えば、「障害」、「死」、「落ち」、「使えない」、「影響」、「遅い」、「停止」、「重」等であるが、これらの例には限定されない。
【0027】
ユーザが投稿する投稿文の内容は、例えば、「やっぱり障害出ているのか・・・AWS」や、「タイムラインを見る限りAWS障害?」といったものである。このような投稿文は、障害が継続している場合、障害発生から時間が経過するとともに増加すると考えられる。従って、障害を表す文言を含む投稿文を検出し、投稿数の増加傾向から障害の有無を検知することができると考えられる。例えば、障害の発生を通知する投稿の数が所定の閾値に達した場合に障害が発生したものと判断することができる。
【0028】
しかしながら、ユーザの投稿文の中には、障害ワードが含まれていても、必ずしも障害の発生を意味するものではない場合もあり得る。例えば、「AWSの資格落ちた」のように、「落ち」との文言が含まれていたとしても、サーバの障害を意味しない場合も考えられる。そのため、単に障害を表す文言(障害ワード)を含む投稿文の数を計数するだけでは、障害の有無を正確に判断することが難しい場合があり得る。
【0029】
さらに、障害が発生してからの経過時間が長引くことによって、影響を受けるユーザの数も増加すると考えられるため、障害が発生したことをサーバの管理者に迅速に通知することが好ましい。
【0030】
そこで、本開示の一実施形態に係る障害検知装置100は、ユーザの属性を考慮して障害ワードを含む投稿文の数を計数することにより、障害の発生を迅速に検知することを目的としている。即ち、本開示の一実施形態に係る障害検知装置100は、過去に発生した障害に対して投稿された投稿文を解析して、障害の発生を迅速、且つ、正確に伝えたユーザに対しては、障害発生の通知に対する貢献度が高いと判断し、高い重み付け(加点)を行い、実効的な投稿数を実際の投稿数よりも多く計数することによって、障害の発生を迅速に検知するものである。
【0031】
さらに、過去の障害発生時において、障害が発生していないにも関わらず障害が発生した旨の投稿を行うなど、不正確、あるいは誤った障害情報を含む投稿を行ったユーザに対しては減点を行うことにより、このようなユーザによる影響を少なくすることにより、障害の発生を正確に検知するようにしてよい。
【0032】
(障害検知装置の構成)
次に、本開示の一実施形態に係る障害検知装置について説明する。
図2に、本開示の一実施形態に係る障害検知装置100の構成ブロック図を示す。障害検知装置100は、貢献度指数設定部1と、投稿文取得部2と、算出部3と、障害判断部4と、障害通知部5と、記憶部6と、学習部7と、通信部8とを有する。貢献度指数設定部1、投稿文取得部2、算出部3、障害判断部4、障害通知部5、及び学習部7は、プロセッサ(図示せず)が記憶部6に記憶されたプログラムを実行することにより実現される。
【0033】
貢献度指数設定部1は、対象のクラウドサービスの通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度を表す指数である貢献度指数をユーザ毎に設定する。貢献度指数は、過去に発生した障害について正確に投稿したユーザは、現在または将来発生する障害に対しても正確に投稿する可能性が高いとみなして、障害発生の通知に対する貢献度が高いと判断して、投稿数に重み付けを行うための係数である。例えば、通常のユーザが障害の発生を通知する投稿文の数を1件とカウントするとした場合に、信頼度が高いユーザが障害の発生を通知する投稿文の数を1回の投稿に対して、より多くの件数(例えば、2件等)とカウントすることにより、実効的な投稿数を増加させるようにしてよい。このようにすることで、障害の発生を通知する投稿数が、障害発生を検知するための判断基準である所定の閾値に達するまでの時間を短縮することができ、障害の発生を迅速に検知することができる。
【0034】
(貢献度指数の設定方法の概要)
次に、貢献度指数の設定方法について説明する。
図3に、本開示の一実施形態に係る障害検知装置による貢献度指数データベースの更新手順を説明するためのフローチャートを示す。
図4(a)~(c)に、本開示の一実施形態に係る障害検知装置による、障害発生から貢献度指数データベースの更新までの手順を説明するための図を示す。
図4(a)は、障害日時情報を取得する手順を説明するための図である。
図4(b)は、投稿文を取得する手順を説明するための図である。
図4(c)は、貢献度指数データベースを更新する手順を説明するための図である。
【0035】
まず、ステップS101において、障害情報データベースから障害日時に関する正確な情報を取得する。例えば、
図4(a)に示すように、2021年4月からの1年間で、特定のクラウドサービスにおいて、2021年6月において1回目の障害である「障害I」が発生し、2021年10月に2回目の障害である「障害II」が発生し、2022年1月に3回目の障害である「障害III」が生じていたものとする。
【0036】
次に、ステップS102において、過去に投稿された障害発生に関する文言を含む投稿文を取得する。例えば、2021年4月からの1年間で、特定のクラウドサービスにおいて発生した障害に関して投稿された投稿文を取得する。例えば、投稿サイトがツイッターである場合は、ツイッターAPIを用いることにより、投稿文を取得することができる。
【0037】
投稿文には、投稿したユーザの識別情報であるアカウント、投稿日時、投稿内容が含まれる。例えば、
図4(b)に示すように、2021年3月23日において、ユーザ「A1234」(以下、単に「ユーザA」と称する。)が「AWSの障害かと思ったけど正常っぽい」と投稿したものとする。同様に、2021年6月10日において、ユーザ「B5678」(以下、単に「ユーザB」と称する。)が「やっぱり障害出ているのか...AWS」と投稿したものとする。同様に、2021年9月20日において、ユーザ「C9012」(以下、単に「ユーザC」と称する。)が「PSNというかAWSで障害起こっているのかしら。」と投稿したものとする。このとき、ユーザA~Cが投稿した投稿文を取得することにより、ユーザA~Cのアカウント、投稿日時、投稿内容に関する情報を取得することができる。
【0038】
次に、ステップS103において、取得した投稿文が、障害発生時に投稿された投稿文か、あるいは、障害が発生していない非障害時に投稿された投稿文かを判断する。例えば、ユーザAの投稿文は、投稿された日時が2021年3月23日であり、これは障害Iが発生した期間(2021年6月)より前の日時であることから、障害が発生していない時に投稿されたものであることが分かる。また、ユーザBの投稿文は、投稿された日時が2021年6月10日であり、これは障害Iが発生した期間(2021年6月)に含まれることから、障害が発生している時に投稿されたものであることが分かる。さらに、ユーザCの投稿文は、投稿された日時が2021年9月20日であり、これは障害Iが発生した後であって障害IIが発生した期間(2021年10月)より前の日時であることから、障害が発生していない時に投稿されたものであることが分かる。
【0039】
次に、ステップS104において、貢献度指数設定部1は、ユーザが障害発生時に投稿していた場合は、当該ユーザの貢献度指数に加点し、ユーザが非障害時に投稿していた場合は、当該ユーザの貢献度指数から減点する。即ち、貢献度指数設定部1は、過去に生じた障害に関して、障害が発生している期間にユーザが障害発生を通知する投稿を行った場合には、当該ユーザの貢献度指数に加点してよい。一方、貢献度指数設定部1は、過去に生じた障害に関して、障害が発生していない期間にユーザが障害発生を通知する投稿を行った場合には、当該ユーザの貢献度指数から減点してよい。例えば、上記のように、ユーザA及びCの投稿文は、障害が発生していない期間である障害非発生時(非障害時)に投稿されたものであるため、
図4(c)に示すように、ユーザA及びCの貢献度指数から「0.1点」を減点する。一方、ユーザBの投稿文は、障害が発生している期間である障害発生時(障害時)に投稿されたものであるため、例えば、ユーザBの貢献度指数に対して「1.0点」だけ加点する。ただし、加点または減点するポイント数は上記のような例には限定されない。加点または減点する貢献度指数の具体的な例については後述する。
【0040】
次に、ステップS105において、記憶部6(
図2参照)に格納されたユーザの貢献度指数データベースを更新する。以上のようにして、ユーザ毎に貢献度指数を設定する。
【0041】
(貢献度指数の設定例)
次に、貢献度指数の設定手順の具体例について説明する。
図5に、本開示の一実施形態に係る障害検知装置を用いて、障害発生時及び障害非発生時に投稿された投稿文を用いて、それぞれユーザ毎に貢献度指数に加点及び減点を行う例を示す。
【0042】
一例として、時刻t1からt8の期間における貢献度指数の設定手順について説明する。特定のクラウドサービスサーバにおいて、時刻t2~t3、t4~t5、及びt6~t7において、それぞれ障害I~IIIが発生したものとする。
【0043】
ここで、例えば、時刻t1~t2の期間のいずれかの時点において、ユーザAが「AWSの障害かと思ったけど正常っぽい」といった投稿文を投稿したものとする。この場合、時刻t1~t2の期間は、障害Iが発生する前の期間であり、ユーザAの投稿は障害が発生していない期間(非障害時)に行われたものであるため、ユーザAの貢献度指数から減点する。減点するポイント数は、例えば「0.1点」としてよい。ただし、このような例には限定されない。
【0044】
また、本実施例では、ユーザAが時刻t1~t2の期間において1回のみ投稿した例を示したが、ユーザAが複数回投稿したような場合には、投稿の回数に応じて貢献度指数から減点してよい。例えば、ユーザAが時刻t1~t2の期間において、非障害時に障害ワードを含む投稿を3回行ったような場合には、1回目の投稿の減点分である「0.1点」に3を乗じた「0.3点」を貢献度指数から減点するようにしてよい。
【0045】
一方、例えば、時刻t2~t3の期間のいずれかの時点において、ユーザBが「やっぱり障害出ているのか...AWS」といった投稿文を投稿したものとする。この場合、時刻t2~t3の期間は、障害Iが発生している期間であり、ユーザBの投稿は障害が発生している期間(障害発生時)に行われたものであるため、ユーザBの貢献度指数に対して加点する。加点するポイントは、例えば「1.0点」としてよい。ただし、このような例には限定されない。また、本実施例では、ユーザBが時刻t2~t3の期間において1回のみ投稿した例を示したが、ユーザBが複数回投稿したような場合には、先に投稿された投稿文を優先してよい。例えば、ユーザBが時刻t2~t3の期間において、障害時に障害ワードを含む投稿を2回行ったような場合には、1回目の投稿の加点分である「1.0点」を貢献度指数に加点するようにしてよい。これは、同じユーザによる複数回の投稿に応じて、同一ユーザの貢献度指数をその都度加点してしまうと、障害発生期間中に何回も故意に投稿することで、1人のユーザに膨大な貢献度指数を与えてしまうことになり、好ましくないためである。
【0046】
ここで、ユーザ毎の貢献度指数に加点するポイント数は、障害発生に対する貢献度に応じて変えるようにしてよい。本開示の一実施形態に係る障害検知装置は、特定のクラウドサービスにおける障害の発生を迅速に検知することを目的としているため、障害が発生した時点から障害発生を通知する障害ワードを含む投稿文を投稿するまでの時間が短い程、大きな値を貢献度指数に加点するようにしてよい。
図6に、本開示の一実施形態に係る障害検知装置の貢献度指数設定部が設定する貢献度指数と障害発生からの経過時間との関係を示す。貢献度指数設定部1は、過去に生じた障害に関して、障害が発生してから投稿までの時間が短い程、貢献度指数に加点するポイント数を大きな値に設定してよい。例えば、障害が発生してから10分以内に障害ワードを含む投稿を行ったユーザに対しては貢献度指数に1.0点を加点し、障害が発生してから10~20分の間に障害ワードを含む投稿を行ったユーザに対しては貢献度指数に0.9点を加点してよい。その後、障害が発生してからの時間の経過に伴って、ユーザの貢献度指数に加点するポイント数を減少させてよい。
【0047】
例えば、
図5に示した例では、障害IIが発生した時刻t4からの経過時間が50~60分の期間において、ユーザBが障害ワードを含む投稿を行った場合には、ユーザBの貢献度指数に0.5点を加点してよい。同様に、障害IIが発生した時刻t4からの経過時間が90~100分の期間において、ユーザCが障害ワードを含む投稿を行った場合には、ユーザCの貢献度指数に0.1点を加点してよい。
【0048】
以下、同様にして、障害発生後、110分が経過するまで10分経過するごとに貢献度指数に加点するポイント数を0.1点ずつ減少させてよい。ただし、このように、貢献度指数に加点するポイント数は、障害発生からの経過時間に対して単調に減少する例には限定されない。また、
図6に示した例では障害発生からの経過時間を10分ごとに区切って貢献度指数に加点または減点するポイント数を規定する例を示したが、このような例には限られず、任意の時間に区切って貢献度指数を規定してよい。
【0049】
さらに、障害発生から一定の時間が経過した後においては、ユーザ毎の貢献度指数に加点するポイント数を一定としてよい。障害が発生してから所定の時間が経過すると障害の発生を迅速に通知するという点での貢献度は低下するが、一定程度は貢献しているからである。
【0050】
図6に示すように、ユーザAが非障害時に障害ワードを含む投稿を3回行った場合には、貢献度指数に0.3点を減点してよい。ユーザA~Cの貢献度指数の初期値を1点とした場合、ユーザAの貢献度指数を初期値の1点から0.3点を減点して0.7点としてよい。同様に、ユーザBが障害時に障害ワードを含む投稿を3回行い、それぞれの投稿に対して貢献度指数に加点するポイント数が1.0点、0.5点、0.2点である場合は、最終的な貢献度指数を2.7点としてよい。
【0051】
障害が発生してからの経過時間と貢献度指数の大きさとの関係については、機械学習を行って学習モデルを作成して決定するようにしてよい。
【0052】
以上のようにして、過去の投稿文を用いてユーザの貢献度指数を設定したのち、記憶部6(
図2参照)に格納されたデータベースを更新してよい。後述するように、障害ワードを含む投稿がなされた場合は、データベースに記憶された貢献度指数を参照し、貢献度指数が大きく、信頼できるユーザの投稿数を多く計数することにより障害発生を迅速に検知することができる。
【0053】
(障害発生の検知方法)
次に、本開示の一実施形態に係る障害検知装置を用いて特定のクラウドサービスにおける障害の検知方法について説明する。
図7に、本開示の一実施形態に係る障害検知装置を用いて、投稿数及び積算値を用いて障害発生の有無を判断する手順を説明するためのフローチャートを示す。まず、ステップS201において、投稿文取得部2が、投稿サイトへの複数の投稿文の中から、クラウドサービスに関する障害の有無を判断するための所定の文言を含む投稿文を取得する。
【0054】
障害ワードを含む投稿文を取得する投稿サイトは、上述した貢献度指数データベースを作成する際に利用した投稿サイトと同一の投稿サイトであってよい。ただし、このような例には限定されず、両者は異なっていてもよい。例えば、ユーザが異なる投稿サイトに同じアカウントを利用して投稿している場合には、特定の投稿サイトの投稿文を用いて作成した貢献度指数データベースは、他の投稿サイトにおいても利用することができる。
【0055】
障害発生の有無を判断するための所定の文言は、上述した、貢献度指数を設定する際に用いた文言と同一でよい。即ち、障害の発生を表す所定の文言(障害ワード)とは、例えば、「障害」、「死」、「落ち」、「使えない」、「影響」、「遅い」、「停止」、「重」等であるが、これらの例には限定されない。
【0056】
投稿サイトがツイッターである場合は、ツイッターAPIを用いることにより、所定の期間における、障害を通知する所定の文言を含む投稿文を取得することができる。
【0057】
次に、ステップS202において、所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた実効投稿数を算出する。
【0058】
ここで、「所定の期間」とは、例えば、5分間である。例えば、午前10時0分から、午前10時5分までを最初の所定期間とし、午前10時5分から午前10時10分までの期間を次の所定の期間(2回目の所定の期間)としてよい。ただし、このような例には限定されず、所定の期間は任意の長さの期間としてよい。
【0059】
実効投稿数は、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた値である。例えば、ユーザAが上記の最初の所定の期間内に3回の投稿を行い、ユーザAの貢献度指数が1.5である場合は、実効投稿数は4.5となる。また、ユーザAが上記の2回目の所定の期間内に4回の投稿を行った場合は、実効投稿数は6.0となる。同様に、ユーザBが上記の最初の所定の期間内に1回の投稿を行い、ユーザBの貢献度指数が0.8である場合は、実効投稿数は0.8となる。また、ユーザBが上記の2回目の所定の期間内に2回の投稿を行った場合は、実効投稿数は1.6となる。以下、同様に、所定の期間において障害の有無に関する投稿を行った他のユーザC及びDが存在する場合には、所定の期間内に取得した投稿文に関して、ユーザC及びDのそれぞれについて、ユーザC及びDが投稿した投稿文の数にユーザC及びDの貢献度指数を乗じた実効投稿数を算出する。
【0060】
次に、ステップS203において、複数のユーザの実効投稿数を積算した積算値を算出する。例えば、上記の最初の所定の期間における、ユーザA~Dの実効投稿数が、それぞれ、「4.5」、「0.8」、「1.5」、「0.6」である場合は、積算値は「7.4」となる。同様に、上記の第2回目の所定の期間における、ユーザA~Dの実効投稿数が、それぞれ、「6.0」、「1.6」、「3.0」、「1.2」である場合は、積算値は「11.8」となる。
【0061】
次に、ステップS204において、積算値が第1~第4条件を満たしているか否かを判断する。
【0062】
第1条件は、所定の期間において連続して積算値が増加することである。具体的には、第1条件は、単位時間当たりの積算値が連続して増加する期間が基準回数を超過していることであってよい。
図8に、本開示の一実施形態に係る障害検知装置を用いて検出した積算値及び投稿数の時間的変化を表すグラフを示す。
図8において、横軸は時間を示し、縦軸は単位時間当たりの積算値及び投稿数を示している。
図8に示した例では、2021年12月15日の19時から12月16日の9時までの期間において、クラウドサービスの障害が2回発生した例を示している。1回目は時刻t10において発生し、2回目は時刻t20において発生している。積算値は、時刻t12において増加し始め、この増加傾向が所定の期間において継続している場合に、第1条件が満たされていると判断する。例えば、時刻t14まで積算値の増加傾向が継続した場合に、第1条件が満たされたものと判断してよい。例えば、t12からt14までの期間は20分としてよい。ただし、このような例には限定されない。
【0063】
第2条件は、単位時間当たりの積算値が第1閾値を超過していることである。例えば、
図8に示すように、時刻t13において単位時間当たりの積算値が第1閾値を超えている場合に、第2条件が満たされていると判断してよい。例えば、第1閾値は、10分当たりの投稿数が3件であってよい。ただし、このような例には限られない。
【0064】
第3条件は、単位時間当たりの投稿数(平均投稿数)が第2閾値を超過していることである。ここでいう「単位時間当たりの投稿数」とは、障害ワードを含む投稿に限られず、投稿サイトに投稿された投稿数を含む。このように障害ワードを含まない投稿が増加している場合には、何らかの異常な状態が生じていることが推定される。このように障害ワードを含まない投稿数をカウントするのは、予め登録しておいた障害に関する文言(キーワード)が含まれていない投稿であっても、そのような投稿を全くカウントしないとすると、障害の発生を見逃す恐れがあると考えられるためである。例えば、第2閾値は10分当たりの投稿数が50件であってよい。ただし、このような例には限られない。
【0065】
第4条件は、投稿数に対する積算値の割合が第3閾値を超過することである。これは、障害が発生した場合は、障害ワードを含む投稿の数が、全体の投稿数に対して占める割合が増加すると考えられるためである。例えば、第3閾値は20%であってよい。ただし、このような例には限られない。
【0066】
次に、ステップS205において、第1~第4条件のうち2つ以上満足しているか否かを判断する。
【0067】
障害判断部4は、積算値が所定の条件を満たした場合にクラウドサービスサーバ300に障害が発生したものと判断してよい。例えば、障害判断部4は、第1~第4条件のうち2つ以上満足している場合は、ステップS206において、障害が発生していると判断してよい。
【0068】
その後、障害通知部5は、クラウドサービスサーバ300に障害が発生したことを外部(例えば、クラウドサービスサーバ300の管理者等)に通知してよい。例えば、障害通知部5は、Slack等を用いて、ツイッター等の外部ソースからの情報をワークスペースと共有してよい。あるいは、障害通知部5は、電子メール等により、クラウドサービスサーバ300の管理者に障害発生を通知してもよい。本開示の実施形態に係る障害検知装置100により、障害の発生を従来に比べて30~90分早く検知することができた。
【0069】
一方、ステップS205において、第1~第4条件のうち、満足している条件がいずれか1つまたは何もない場合は、ステップS201に戻って、障害ワードを含む投稿文の取得を継続する。
【0070】
なお、特定のクラウドサービスにおいて、障害は複数回連続して発生する場合もあり得る。
図8には、上述した障害(第1回目)に続けて、時刻t21からt23にかけて第2回目の障害が発生した例を示している。換言すると、第1回目の障害は、第2回目の障害が発生する前に解消されている。従って、第1回目の障害が発生した場合、障害検知装置100は、特定のクラウドサービスにおいて障害が発生したことを外部に通知するが、障害が解消した場合には、その旨を通知するようにしてよい。このようにすることで、クラウドサービスの管理者は、一旦発生した第1回目の障害に対しては対処する必要がなくなったことを認識することができる。
【0071】
以上のようにして、第1~第4条件のうち、2つ以上の条件を満足している場合に障害が発生していると判断することにより、障害の発生の有無を正確に判断することができる。
【0072】
しかしながら、障害の発生の検知を迅速に行うという観点から、第1~第4条件のうちのいずれか1つの条件が満たされた場合に障害が発生したものと判断してよい。
【0073】
図7に示した例では、積算値が第1~第4条件のうちの2つ以上の条件を満たしているか否かに基づいて障害の発生の有無を検知する例について説明したが、積算値が第1、第2、第4条件をそれぞれ単独で満たしているかに基づいて障害発生の有無を判断してよい。
【0074】
即ち、第1条件のみに基づく場合は、障害発生の有無を判断するための所定の条件は、所定の期間において連続して積算値が増加することであってよい。
【0075】
また、第2条件のみに基づく場合は、障害発生の有無を判断するための所定の条件は、所定の期間における単位時間当たりの積算値である平均積算値が第1閾値を超えることであってよい。
【0076】
また、第4条件のみに基づく場合は、障害発生の有無を判断するための所定の条件は、所定の期間における投稿数に対する積算値の割合が第3閾値を超えることであってよい。
【0077】
積算値が第1、第2、第4条件をそれぞれ単独で満たしているかに基づいて障害発生の有無を判断することにより、積算値が第1~第4条件のうちの2つ以上の条件を満たしているか否かに基づいて障害の発生の有無を検知する場合に比べて、迅速に障害の発生を検知することができる。ただし、このような例には限定されず、第1~第4条件のうちのうちの3つ、あるいは全てを満足している場合に、障害が発生していると判断してよい。
【0078】
次に、障害判断部4が積算値の累積値に基づいて障害の有無を判断する例について説明する。
図9に、本開示の一実施形態に係る障害検知装置100を用いて検出した積算値の累積値及び累積障害投稿数の時間的変化を示す。累積障害投稿数は、障害ワードを含む投稿数の累積値である。即ち、累積障害投稿数は、本開示の実施形態に係る障害検知放置100とは異なり、ユーザの貢献度指数を考慮していない値である。これに対して、積算値の累積値は、本開示の実施形態に係る障害検知放置100を用いて、ユーザの貢献度指数を考慮した値である積算値の累積値である。
【0079】
図9に示すように、時刻t30において、特定のクラウドサービスにおいて障害が発生したものとする。この場合、時刻t30までの期間が、障害が発生していない期間(非障害時)であり、時刻t30以降の期間が障害発生期間(障害発生時)である。積算値の累積値及び累積障害投稿数は、障害が発生した時刻t30以降において共に増加する。
【0080】
ここで、障害判断部4が障害の有無を判断するための所定の条件は、所定の期間における積算値の累積値が所定の基準値を超えることであってよい。そうすると、
図9からわかるように、積算値の累積値が所定の基準値を超える時刻はt31であるのに対して、累積障害投稿数が所定の基準値を超える時刻はt31より遅い時刻t32である。即ち、本開示の実施形態に係る障害検知放置100によれば、積算値の累積値は従来の累積障害投稿数よりも早い時刻に所定の基準値を超えることになり、障害の発生を従来に比べて早く検知することができることが分かる。
【0081】
(機械学習のモデル生成と障害発生の可能性の推測)
本開示の実施形態に係る障害検知装置においては、機械学習により投稿文の内容から障害発生の可能性を推測してよい。本開示の実施形態に係る障害検知装置は、投稿文取得部2から、障害に関する文言を含む投稿文を入力パラメータとして取得して、学習モデルに入力し、当該投稿文が障害の発生に関する投稿文である可能性を出力パラメータとして出力する学習部7(
図2参照)をさらに備えてよい。ここで、学習モデルは、障害に関する文言を含む投稿文であって、障害発生時に投稿された投稿文、及び障害非発生時に投稿された投稿文を学習用入力パラメータとし、投稿文が障害の発生に関するものであるか否かの判定結果を学習用出力パラメータとした入出力データセットを用いて、機械学習によって生成された学習モデルであってよい。
【0082】
図10に障害時及び非障害時に投稿された投稿文を使用して学習モデルを作成する手順を示す。
図5に示すように、障害I~IIIの期間に投稿された障害ワードを含む投稿は障害発生を通知する投稿である可能性が高く、障害が発生していない期間に投稿された障害ワードを含む投稿は障害発生を通知する投稿ではない可能性が高いといえる。例えば、障害発生時に投稿された「aws落ちてない?」といった投稿文は障害発生を通知する投稿とし、非障害時に投稿された「awsの資格落ちた」といった投稿文は障害発生を通知する投稿ではないとして学習データを入力し、学習モデルを作成することができる。
【0083】
具体的には、まず、投稿文の文字種の統一や数字の置き換えを含む単語の正規化を行う。例えば、「AWS」や「AZURE」は「クラウド」に置き換える。次に、Mecabを用いて形態素解析を行う。例えば、「AWSに障害発生しているかも」といった投稿文を、「クラウド」、「に」、「障害」、「発生」、「して」、「いる」、「かも」に分解する。以上のような前処理を行った後、フェイスブック(登録商標)のfastTextを用いて、障害時及び非障害時にそれぞれ投稿された400個の投稿文を解析した結果、正答率88%で分類することができた。
【0084】
例えば、作成した学習モデルを用いると、ユーザAが投稿した「やっぱり障害出ているのか・・・AWS」といった投稿文が障害発生を通知している可能性(障害可能性)は95%と算出される。この場合は、障害の発生を通知する投稿であるとして、投稿数にユーザAの貢献度指数を乗算した値を用いて積算値を算出する。
【0085】
一方、例えば、作成した学習モデルを用いて、ユーザBが投稿した「AWSの障害かと思ったけど正常っぽい」といった投稿文が障害発生を通知している可能性(障害可能性)は15%と算出される。この場合は、障害の発生を通知する投稿ではないとして、ユーザBの投稿をカウントしないようにしてよい。
【0086】
以上のようにして、機械学習を用いて障害ワードの分類を行った結果、機械学習を行わない場合に比べて、適合率が20%以上増加し、障害が発生していることを示す正解率を90から98%に改善させることができた。このように、本開示の一実施形態によれば、障害検知の精度を向上しうる。
【0087】
上述した本開示の一実施形態に係る障害検知装置100のプロセッサ(図示せず)が有する各部の機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読取り可能な記録媒体に記憶された形で提供されてよい。コンピュータによって読取り可能な記録媒体は、例えば、磁気記録媒体、光記録媒体、又は半導体メモリであってよい。
【符号の説明】
【0088】
1 貢献度指数設定部
2 投稿文取得部
3 算出部
4 障害判断部
5 障害通知部
6 記憶部
7 学習部
100 障害検知装置
200 投稿サイトサーバ
300 クラウドサービスサーバ
400 端末
500 インターネットサービス
1000 障害検知システム
【要約】
【課題】本発明の障害検知装置は、不特定多数のユーザからの投稿文を用いて、迅速に障害を検知することを目的とする。
【解決手段】障害検知装置は、対象のインターネットサービスの通信障害の有無についてユーザが過去に投稿した投稿文の内容に基づいて、障害情報の提供に対する貢献度指数をユーザ毎に設定する貢献度指数設定部と、複数の投稿文の中から、インターネットサービスに関する障害の有無を判断するための所定の文言を含む投稿文を取得する投稿文取得部と、投稿文取得部が所定の期間内に取得した投稿文に関して、ユーザ毎に、ユーザが投稿した投稿文の数に当該ユーザの貢献度指数を乗じた実効投稿数を算出し、且つ、複数のユーザの実効投稿数を積算した積算値を算出する算出部と、積算値が所定の条件を満たした場合にインターネットサービスに障害が発生したと判断する障害判断部と、障害が発生したことを外部に通知する障害通知部と、を有する。
【選択図】
図1