説明

サーバ異常判定プログラム、サーバ異常判定装置、およびサーバ異常判定方法

【課題】障害の原因となっているサーバを特定すること。
【解決手段】サーバ異常判定装置は、サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶し、前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常のあるサーバを特定するサーバ異常判定プログラム、サーバ異常判定装置、およびサーバ異常判定方法に関する。
【背景技術】
【0002】
インターネット上でピア・ツー・ピアで通信を行うサービスでは、音声や映像、テキスト等のメディア情報をインターネットプロトコル(IP)パケットを使ってリアルタイムに伝送するための技術が必要である。これに加えて、インターネット上でピア・ツー・ピアのセッション(呼)の確立・変更・切断(終了)を制御するためのシグナリング技術が重要である。ピア・ツー・ピア通信のサービスとしては、IP電話やテレビ電話、インスタントメッセンジャー等がある。
【0003】
特に、近年普及の著しいIP電話は、音声信号をIPパケットでリアルタイム伝送するためのVoice Over IP(VoIP)技術と、シグナリング技術とを組み合わせて実現されている。
IP電話で利用可能なシグナリングプロトコルには、国際電気通信連合電気通信標準化セクタ:International Telecommunication Union-Telecommunication sector(ITU-T)が1997年に勧告したH.323方式が実現されている。また、Internet Engineering Task Force(IETF)にて標準化され2002年に発行されたRequest for Comments (RFC)3261でスタンダードトラックとして規定された、Session Initiation Protocol(SIP)が実現されている。特に、SIPは、メッセージがテキストで記述される。また、SIPは、WebのためのHyper Text Transfer Protocol(HTTP)や電子メールのためのSimple Message Transfer Protocol(SMTP)を模範に設計された。このため、SIPは、シンプルで拡張性が高くインターネットと親和性が高く、IP電話で用いられるシグナリングプロトコルの標準となりつつある。
【0004】
SIPは、アプリケーション層で、端末間において、セッション(呼)の確立・変更・切断(終了)を制御するためのシグナリングプロトコルである。
インターネット上に配置されるSIPサーバと呼ばれる中継用のサーバを介して端末間で、メソッド(SIPリクエストメッセージ)とレスポンス(SIPレスポンスメッセージ)が所定の手順に従って交換される。これにより、セッションの確立・変更・切断(終了)が制御される。
【0005】
電話サービス全般において、ネットワーク障害発生時の対応とすばやいサービスの回復は、顧客満足度及びサービスへの信頼性を確保するための要である。障害発生時においては、想定される顧客問合せへの適切な対応のため、また、影響の拡大抑止とサービス復旧のために、迅速にネットワーク品質と影響範囲(影響ユーザ)を把握することが求められている。
【0006】
複数のサーバを経由してデータを交換するシステムでは、データ伝達の遅延やエラーといった障害が発生した場合にその原因がどの中間サーバまたは周辺機器にあるかを調査するのに多大な時間と労力を要する。特にSIPサーバのメッセージ交換のように、データが経由するサーバの組み合わせが無数に存在する場合は、障害箇所の特定が容易ではない。
【0007】
従来は、データの伝達に要するレスポンス時間などの統計値を、各サーバ毎に計算して保持する。複数のサーバを経由してデータが到達する場合に、ある端点のサーバへの到達に遅延が生じている場合、その原因となるサーバまたは機器を特定する必要がある。この時、サーバ毎の平均レスポンス時間の集計値で異常を発見する方法が一般的である
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−238069号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、経路固有の問題がある場合、例えばサーバSを経由するある特定の経路R1ではデータの伝達時間が長く、サーバSを経由する他の全ての経路R2〜Rnを通るデータの伝達時間は正常で短い場合がある。この場合は、サーバSでデータの伝達時間を集計し、平均を算出すると、経路R2〜Rnの短い処理時間によって経路R1の長い処理時間が埋もれてしまい、サーバS(の経路R1)で発生している障害が発見できないという問題があった。
【0010】
同様に、エラー発生率といった観点で集計した場合も、他の経路の低発生率のエラーにより、ある経路の高発生率のエラーが発見できないという問題があった。
このような状況において、異常個所を見つけるには、メッセージが伝播してきたサーバを一つ一つ追いかけてメッセージのサーバ経路を見つけ出し、遅延の有無を見つけるという効率の悪い作業を行わなければならないという問題があった。これまでもメッセージから経路情報を取り出す方法は使われてきたが、サーバ経路の組合せは膨大な数になるため、経路ごとに統計情報を残すことは実質的に不可能であった。
【0011】
本発明の課題は、障害の原因となっているサーバを容易に特定することが可能な装置を提供することである。
【課題を解決するための手段】
【0012】
実施の形態のサーバ異常判定装置は、記憶部と、異常判定部と、を備える。
記憶部は、サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報を記憶する。
【0013】
異常判定部は、前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する。
【発明の効果】
【0014】
実施の形態の装置によれば、障害の原因となっているサーバを容易に特定することが可能となる。
【図面の簡単な説明】
【0015】
【図1】実施の形態に係るネットワーク構成図である。
【図2】実施の形態係る異常診断装置の構成図である。
【図3】実施の形態に係るサーバテーブルの例である。
【図4】実施の形態に係る部分経路IDテーブルの例である。
【図5】実施の形態に係る経路IDテーブルの例である。
【図6】実施の形態に係る学習値テーブルの例である。
【図7】実施の形態に係る保存経路テーブルの例である。
【図8】メッセージデータの流れを示す図である。
【図9】実施の形態の経路情報集計処理のフローチャートである。
【図10A】メッセージデータの例である。
【図10B】メッセージデータの例である。
【図10C】メッセージデータの例である。
【図10D】メッセージデータの例である。
【図11】ステップS308の詳細なフローチャートである。
【図12】部分経路の短縮処理のフローチャートである。
【図13】部分経路の短縮処理の具体例におけるネットワーク構成図である。
【図14】部分経路の伸長処理のフローチャートである。
【図15】部分経路の伸長処理の具体例におけるネットワーク構成図である。
【図16】部分経路の有効化処理のフローチャートである。
【図17】サーバ異常判定処理のフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら本発明の実施の形態を説明する。
図1は、本実施の形態に係るネットワーク構成図である。
ネットワークは、異常診断装置101、サーバ102−m(m=1〜11)、およびキャプチャ装置103−mを備える。
【0017】
サーバ102−1は、端末104−1、サーバ102−3、102−4、キャプチャ装置103−1に接続している。
サーバ102−2は、端末104−2、サーバ102−3、102−4、キャプチャ装置103−2に接続している。
【0018】
サーバ102−3は、サーバ102−1、102−2、102−5、102−6、キャプチャ装置103−3に接続している。
サーバ102−4は、サーバ102−1、102−2、102−5、102−6、キャプチャ装置103−4に接続している。
【0019】
サーバ102−5は、サーバ102−3、102−4、102−7、102−8、キャプチャ装置103−5に接続している。
サーバ102−6は、サーバ102−3、102−4、102−8、102−9、キャプチャ装置103−6に接続している。
【0020】
サーバ102−7は、サーバ102−5、102−10、キャプチャ装置103−7に接続している。
サーバ102−8は、サーバ102−5、102−6、102−10、102−11、キャプチャ装置103−8に接続している。
【0021】
サーバ102−9は、サーバ102−6、102−11、キャプチャ装置103−9に接続している。
サーバ102−10は、端末104−3、104−4、サーバ102−3、102−4、キャプチャ装置103−10に接続している。
【0022】
サーバ102−11は、端末104−5、サーバ102−8、102−9、キャプチャ装置103−11に接続している。
サーバ102は、メッセージデータを隣接するサーバ102または端末104に転送する。
また、サーバ102−1〜102−11は、それぞれサーバS1〜S11と表すこともある。
【0023】
キャプチャ装置103−mは、サーバ102−mに接続しており、サーバ102−mが送信するメッセージデータをキャプチャする。また、キャプチャ装置103−mは、異常診断装置101に接続しており、キャプチャしたメッセージデータを異常診断装置101に送信する。
【0024】
異常診断装置101は、メッセージデータを収集し、メッセージデータに対して紐付け処理を行う。そして、紐付け結果からメッセージデータの経路を生成し、サーバ毎の経路情報の統計情報を生成し、経路毎のサーバ異常を発見する。
端末104は、例えばIP電話である。
【0025】
図2は、実施の形態に係る異常診断装置の構成図である。
異常診断装置101は、処理部110、メモリ117、および記憶部118を備える。
処理部110は、経路の生成やサーバの異常診断を行う。
【0026】
メモリ117は、処理部110での処理で用いられるデータが格納される。
処理部110は、メッセージデータ収集部111、紐付け部112、経路情報生成部113、保存経路選択部114、統計情報管理部115、および異常診断部116を備える。
【0027】
メッセージデータ収集部111は、キャプチャ装置103から送信された複数のメッセージデータを受信し、紐付け部112に送信する。
紐付け部112は、複数のメッセージデータを共通する属性(例えば、Call-ID)に基づいて紐付けする。尚、紐付けされたメッセージデータの集合は、トランザクションと呼ぶ。一連の通信における複数のメッセージデータは共通する属性を有するため、これらメッセージデータは紐付けされる。
【0028】
経路情報生成部113は、メッセージデータから経路を生成する。
保存経路選択部114は、生成された経路を保存するか判定する。
統計情報管理部115は、保存対象経路やサーバの各種情報を記憶部118に保存する。
【0029】
異常診断部116は、サーバ及び経路に異常があるか判定する。
記憶部118は、サーバテーブル201、部分経路IDテーブル202、経路IDテーブル203、学習値テーブル204、および保存経路テーブル205を有する。
【0030】
図3は、実施の形態に係るサーバテーブルの例である。
サーバテーブル201は、項目として、サーバIDおよびIPアドレスを有する。
サーバIDはサーバに割り当てられたIDであり、IPアドレスはサーバのIPアドレスである。サーバテーブルには、サーバIDおよびIPアドレスが対応付けられて記述されている。
【0031】
例えば、サーバ102−5のサーバIDはS5であり、IPアドレスは192.168.1.2である。
尚、本実施の形態では、サーバ102−1〜102−11に対して、それぞれサーバIDとしてS1〜S11が割り当てられている。
【0032】
また、図3では、サーバテーブルの一部(3つのサーバIDとIPアドレスの組)のみを表示している。
図4は、実施の形態に係る部分経路IDテーブルの例である。
【0033】
部分経路IDテーブル202は、項目として、部分経路IDおよび部分経路を有する。
部分経路IDは、部分経路ごとに割り当てられたIDである。
部分経路は、経路の一部を示す。部分経路には、所定数のサーバIDが並べて記述される。実施の形態において、部分経路の長さ(部分経路長)は、3としている。すなわち、各部分経路に記述されるサーバIDの数は、3となる。例えば、S3-S5-S7は、サーバS3からサーバS5を経由してサーバS7への経路を示す。
【0034】
図5は、実施の形態に係る経路IDテーブルの例である。
経路IDテーブル203は、項目として、経路IDおよび経路を有する。
経路IDは、経路ごとに割り当てられたIDである。
【0035】
経路は、ネットワーク上の経路を示す。経路には、所定数のサーバIDが並べて記述される。実施の形態において、部分経路長が3の部分経路の前後にそれぞれ1個のサーバを足したものを経路としている。すなわち、各経路に記述されるサーバIDの数は、5となる。例えば、S2-S4-S5-S8-S10は、サーバS2からサーバS4、S5、S8を経由してサーバS10への経路を示す。
【0036】
図6は、実施の形態に係る学習値テーブルの例である。
学習値テーブル204は、項目として、サーバID、部分経路ID、サーバレスポンス平均、全体レスポンス平均、頻度、TimeWin、および有効フラグを有する。
【0037】
サーバIDには、対象のサーバIDが記述される。
部分経路IDには、対象の部分経路IDが記載される。
サーバレスポンス平均には、対象のサーバの部分経路におけるTimeWin前から現在までの平均レスポンス値が記述される。尚、レスポンス値とは、サーバがリクエストメッセージを送信してから応答メッセージを受信するまでの時間であり、平均レスポンス値はレスポンス値の平均である。後述のように図6において、TimeWinはTwin3(3分)であるので、サーバレスポンス平均には、3分前から現在までのレスポンス値の平均が記述される。
【0038】
全体レスポンス平均には、対象のサーバの部分経路における全体レスポンス平均が記述される。
尚、サーバレスポンス平均および全体レスポンス平均の詳細については後述する。
【0039】
頻度には、TimeWinの時間幅の中に現れたデータの回数が記述される。
TimeWinは、タイムウィンドウを示し、TimeWinには例えば3分、30秒など所定の時間が記述される。尚、図6のTwin3は、3分であることを示す。有効フラグは、学習値テーブルの値を用いるか否かを示すフラグであり、1または0が記述される。1は有効(真)を示し、0は無効(偽)を示す。
【0040】
図7は、実施の形態に係る保存経路テーブルの例である。
保存経路テーブル205は、項目として、サーバID、経路ID、サーバレスポンス平均(現在)、サーバレスポンス平均(過去1)、およびサーバレスポンス平均(過去2)、全体レスポンス平均、頻度、およびTimeWinを有する。
【0041】
経路IDには、対象の経路IDが記述される。
サーバレスポンス平均(現在)は、図6のサーバレスポンス平均に対応する。
サーバレスポンス平均(過去1)は、対象のサーバの部分経路における2*TimeWin前からTimeWin前までの平均レスポンス値が記述される。例えば、図7においては、6分前から3分前までの平均レスポンス値が記述される。
【0042】
サーバレスポンス平均(過去2)は、対象のサーバの部分経路における3*TimeWin前から2*TimeWin前までの平均レスポンス値が記述される。例えば、図7においては、9分前から6分前までの平均レスポンス値が記述される。
【0043】
サーバID、サーバレスポンス平均、全体レスポンス平均、頻度、およびTimeWinは、上述の説明と同様であるので説明は省略する。
ここで、実施の形態で用いられるサーバレスポンス平均および全体レスポンス平均について説明する。
【0044】
図8は、メッセージデータの流れを示す図である。
図8において、INVITEメッセージがサーバS1からサーバS3、S5、S7を経由してサーバS10に転送されている。また、RINGINGメッセージがサーバS10からサーバS7、S5、S3を経由してサーバS1に転送されている。
・サーバレスポンス平均
サーバXの部分経路Yにおけるサーバレスポンス平均は、部分経路Yを含む全経路において、サーバXのレスポンス値を平均したものとなる。
【0045】
尚、レスポンス値とは、INVITEメッセージを送信してからRingingメッセージを受信するまでの時間である。例えば、図8に示す経路におけるサーバS5のレスポンス値は、INVITEメッセージをサーバS7に送信してから、サーバS7からRINGINGメッセージを受信するまでの時間である。
【0046】
サーバS5を通る経路は、図8に示した経路S1-S3-S5-S7-S10だけでなく、図1に示すようにS2-S3-S5-S8-S10やS1-S4-S5-S7-S10など複数存在する。
例えば、サーバS5の部分経路S3-S5-S7におけるサーバレスポンス平均を求める。図1において、部分経路S3-S5-S7を含む経路は、S1-S3-S5-S7-S10とS2-S3-S5-S7-S10である。従って、サーバS5の部分経路S3-S5-S7におけるサーバレスポンス平均は、経路S1-S3-S5-S7-S10とS2-S3-S5-S7-S10のトランザクションにおいて、サーバS5のレスポンス値の平均となる。
・全体レスポンス平均
サーバXの部分経路Yにおける全体レスポンス平均は、部分経路Yを含む全経路において、始端Zでのレスポンス値の平均となる。始端は、INVITEメッセージを送信する始点のサーバである。例えば、図8において、始端ZはサーバS1である。
【0047】
例えば、サーバS5の部分経路S3-S5-S7における全体レスポンス平均を求める。図1において、部分経路S3-S5-S7を含む経路は、S1-S3-S5-S7-S10とS2-S3-S5-S7-S10である。始端Zは、サーバS1およびS2となる。従って、サーバS5の部分経路S3-S5-S7における全体レスポンス平均は、経路S1-S3-S5-S7-S10とS2-S3-S5-S7-S10のトランザクションにおいて、サーバS1およびS2のレスポンス値の平均となる。
【0048】
図9は、実施の形態の経路情報集計処理のフローチャートである。
ステップS301において、メッセージデータ収集部は、メッセージデータを収集する。
【0049】
図10A〜10Dは、メッセージデータの例である。
メッセージデータは、例えば、SIPで用いられるリクエストメッセージや応答メッセージである。
【0050】
Request-Lineには、リクエストの種類や宛先、SIPのバージョンが記述される。
Status-Lineには、SIPのバージョンやStatus-Code、Reason-Phraseが記述される
Fromには送信元、Toには宛先が記述される。
【0051】
Call-IDには、一連の通信(呼)で発生するリクエストおよびレスポンスを他の呼のリクエストおよびレスポンスと識別するためのIDが記述される。
Dateには、メッセージデータの送信日時が記述される。
X-MMMには、特定のキャリアで用いられる属性を表すIDである。
【0052】
図9に戻り、ステップS302において、紐付け部は、収集したメッセージデータを紐付け処理する。すなわち、メッセージデータを属性値に基づいて関連付ける。
ここで、紐付け処理の例として図10A〜10Dのメッセージデータ401〜404に対する紐付け処理について説明する。
【0053】
紐付け処理部112は、メッセージデータのCall-IDに基づいてメッセージデータを分類する。
メッセージデータ401とメッセージデータ404のCall-IDは、同じである。従って、メッセージデータ401とメッセージデータ404は、紐付けされる。ここで、紐付けされたメッセージデータ401とメッセージデータ404は、グループ1とする。
【0054】
また、メッセージデータ402とメッセージデータ403のCall-IDは、同じである。従って、メッセージデータ402とメッセージデータ403は、紐付けされる。ここで、紐付けされたメッセージデータ402とメッセージデータ403は、グループ2とする
紐付け処理部112は、メッセージデータのX-MMMに基づいてグループを分類する。
【0055】
グループ1に属するメッセージデータ401のX-MMMとグループ2に属するメッセージデータ402のX-MMMは、同じである。従って、グループ1とグループ2が紐付けされる。
【0056】
以上の処理により、メッセージデータ401、メッセージデータ402、メッセージデータ403、およびメッセージデータ404が紐付けされる。
上述の例では、Call-IDおよびX-MMMに基づいて、紐付けを行っているが、これに限るものではなく、他の属性に基づいて紐付けを行っても良い。
【0057】
図9に戻り、ステップS303において、経路情報生成部113は、トランザクションからメッセージデータの経路(経由したサーバの順序)を算出する。
メッセージデータの経路は、メッセージデータの内、特定のリクエストメッセージ(例えばINVITEメッセージ)を抜き出し、抜き出したメッセージ間を送信元アドレスと宛先アドレスで結びつけることにより経路を生成する。例えば、第1のメッセージデータの宛先アドレスと第2のメッセージデータの送信元アドレスが同じであれば、第1および第2のメッセージは結び付けられ、第1のメッセージデータの宛先アドレスから第2のメッセージデータの宛先アドレスへの経路が生成される。また、経路情報生成部113は、生成した経路におけるサーバのレスポンスおよび全体レスポンスを算出する。
【0058】
ステップS304において、保存経路選択部114は、生成した経路が保存対象経路であるか判定し、保存対象経路である場合ステップS305に制御は進み、保存対象経路で無い場合ステップS308に制御は進む。
【0059】
保存対象経路であるかの判定は、以下のように行う。
(1)生成した経路の経由するサーバを順に一つ選択する。例えば、生成した経路がS2-S4-S5-S7-S10である場合、サーバS2、S4、S5、S7、S10の順に処理対象として選択する。
(2)対象サーバのサーバIDと生成した経路の経路IDの組が保存経路テーブルに格納されているかチェックし、格納されている場合は、保存対象と判定する。尚、保存対象と判定された経路は保存対象経路と呼ぶ。
(3)未選択のサーバがあるかチェックし、未選択のサーバがある場合は(1)に戻る。
【0060】
ステップS305において、保存経路選択部114は、保存対象経路が保存対象から外れるかチェックする。
例えば、保存経路選択部114は、対象の経路が保存対象となってから所定の時間が経過した場合や、異常な値をとらなくなってからの経過時間により、保存対象から外れると判定する。
【0061】
また、例えば、保存経路選択部114は、直近の所定回(例えば、3回)のタイムウィンドウ分の全てのサーバレスポンス平均(図7におけるサーバレスポンス平均(現在)、サーバレスポンス平均(過去1)、およびサーバレスポンス平均(過去2))が閾値よりも小さい場合は、経路情報の保存対象から外れると判定する。
【0062】
保存対象経路が保存対象から外れる場合、制御はステップS306に進み、保存対象経路が保存対象から外れない場合、制御はステップS307に進む。
ステップS306において、統計情報管理部115は、対象の経路を保存経路テーブルから削除する。
【0063】
ステップS307において、統計情報管理部115は、経路ごとの統計値としてトランザクションの各種データ、サーバレスポンス平均、全体レスポンス平均などの情報を学習値テーブル204および保存経路テーブル205に格納する。尚、統計情報管理部115は、生成した経路におけるサーバレスポンスおよび全体レスポンスを新たに追加したときのサーバレスポンス平均および全体レスポンス平均を算出する。
【0064】
ステップS308において、保存経路選択部114は、生成した経路が新規の保存対象経路となるか判定する。新規の保存対象経路となる場合はステップS309に制御は進み、新規の保存対象経路とならない場合は処理を終了する。尚、生成した経路が新規の保存対象経路となるかの判定処理の詳細は後述する。
【0065】
ステップS309において、統計情報管理部115は、保存対象経路の情報を格納するための領域を記憶部118に確保し、保存対象経路に対応する経路IDやサーバレスポンス平均、全体レスポンス平均などの情報を学習値テーブル204および保存経路テーブル205に格納する。尚、統計情報管理部115は、生成した経路におけるサーバレスポンスおよび全体レスポンスを新たに追加したときのサーバレスポンス平均および全体レスポンス平均を算出する。
【0066】
図11は、ステップS308の詳細なフローチャートである。
ステップS501において、保存経路選択部114は、生成した経路中のサーバのうち、未選択のサーバを順に一つ選択する。ここでは、生成した経路はS2-S4-S5-S7-S10とする。その場合、最初にサーバS2、以下、順にサーバS4、S5、S7、S10が処理対象として選択される。
【0067】
ステップS502において、保存経路選択部114は、選択したサーバの部分経路を生成する。ここでは、対象サーバに前後1つずつサーバを加えた経路を部分経路とする。例えば、対象サーバがS5のとき、部分経路はS4-S5-S7となる。
【0068】
ステップS503において、保存経路選択部114は、部分経路IDテーブル202を参照し、生成した部分経路に対応する部分経路IDを抽出する。
ステップS504において、保存経路選択部114は、学習値テーブル204を参照し、選択したサーバのサーバIDおよび生成した部分経路の部分経路IDの組に対応するサーバレスポンス平均および全体レスポンス平均を抽出する。尚、学習値テーブル204のサーバレスポンス平均および全体レスポンス平均を学習値と呼ぶ。
【0069】
ステップS505において、保存経路選択部114は、選択したサーバのサーバレスポンスが閾値より大きいか判定する。選択したサーバのサーバレスポンスが閾値より大きい場合、制御はステップS506に進み、閾値以下である場合、制御はステップS507に進む。尚、閾値は、ステップS504で抽出したサーバレスポンス平均のN(正の実数)倍とする。
【0070】
ステップS506において、保存経路選択部114は、ステップS303で生成した経路を保存対象とする。
ステップS507において、保存経路選択部114は、未選択サーバが存在するか判定する。未選択サーバが存在する場合、制御はステップS501に戻り、未選択サーバが存在しない場合、処理を終了する。
【0071】
次に生成した経路が新規の保存対象経路となるかの判定処理の具体例について説明する。
ここでは、ネットワーク構成は図1と同様とする。
サーバS5の部分経路S3-S5-S7におけるサーバレスポンス平均は7msとする。
サーバS5の部分経路S3-S5-S8におけるサーバレスポンス平均は3msとする。
サーバS5の部分経路S4-S5-S7におけるサーバレスポンス平均は4msとする。
サーバS5の部分経路S4-S5-S8におけるサーバレスポンス平均は9msとする。
【0072】
新規の保存対象経路となるかの判定対象の経路は、S2-S4-S5-S7-S10とする。経路S2-S4-S5-S7-S10において、サーバS5のレスポンス値は9msだったとする。
また、Nは2とする。
【0073】
例えば、サーバS5に関して、経路S2-S4-S5-S7-S10の部分経路はS4-S5-S7である。サーバS5の部分経路S4-S5-S7におけるサーバレスポンス平均は4msであり、新規の保存対象経路となるかの判定対象の経路S2-S4-S5-S7-S10におけるサーバS5のレスポンス値である9msは8ms(4msの2倍)より大きいので、経路S2-S4-S5-S7-S10は、新規の保存対象経路と判定される。
【0074】
次にメモリ使用量の削減に関して説明する。
上述のようにサーバのレスポンス値等の統計値を部分経路毎に分類して集計することにより、どの経路を保存するかの判定の精度を高めることができる。一方で、経路情報の統計を処理する場合と同様に、部分経路を処理する場合にもサーバの組み合わせによる、取り扱う部分経路数増加の問題が発生する。
【0075】
この問題に対応するため、メモリ使用量に余裕がない場合は部分経路長の縮小、または分岐した経路の統合により、メモリ使用量を削減する。
図12は、メモリ領域が足りなくなってきた場合の部分経路の短縮処理のフローチャートである。
【0076】
図13は、部分経路の短縮処理の具体例におけるネットワーク構成図である。
部分経路の短縮処理の具体例について、適宜、図13のネットワーク構成図を用いて説明する。
【0077】
ノード700は、ノード701、702、703に接続している。
ノード701は、ノード711、712に接続している。
ノード702は、ノード721、722に接続している。
ノード703は、ノード731、732に接続している。
【0078】
尚、ノード700はn0、ノード701はn1、ノード702はn2、ノード703はn3、ノード711はn11、ノード712はn12、ノード721はn21、ノード722はn22、ノード731はn31、ノード732はn32と表すこともある。
【0079】
部分経路n0-n1-n11における、n0のレスポンス値は、50msである。
部分経路n0-n1-n12における、n0のレスポンス値は、40msである。
部分経路n0-n2-n21における、n0のレスポンス値は、60msである。
部分経路n0-n2-n22における、n0のレスポンス値は、45msである。
部分経路n0-n3-n31における、n0のレスポンス値は、30msである。
部分経路n0-n3-n32における、n0のレスポンス値は、50msである。
【0080】
ステップS601において、統計情報管理部115は、メモリの全体容量および空き容量(残量)を確認する。
ステップS602において、統計情報管理部115は、メモリの空き容量が所定の割合未満であるかチェックする。メモリの空き容量が所定の割合未満である場合、制御はステップS603に進み、メモリの空き容量が所定の割合以上の場合、処理は終了する。
【0081】
ステップS603において、統計情報管理部115は、縮小できる部分経路が存在するかチェックする。縮小できる部分経路が存在する場合、制御はステップS604に進み、縮小できる部分経路が存在しない場合、処理を終了する。縮小できる部分経路が存在するかは、例えば、ネットワークの構成図を保持し、ネットワーク内のノードで端点でないノード(例えば、図13のn1)があるかによって判定する。
【0082】
ステップS604において、統計情報管理部115は、未処理の部分経路があるかチェックする。未処理の部分経路がある場合、制御はステップS605に進み、未処理の部分経路が無い場合、制御はステップS607に進む。
【0083】
ステップS605において、統計情報管理部115は、未処理の部分経路を一つ選択する。図13において、部分経路は、n0-n1-n11、n0-n1-n12、n0-n2-n21、n0-n2-n22、 n0-n3-n31、n0-n3-n32である。従って、これらの部分経路のうち、未処理の部分経路を一つ選択する。
【0084】
ステップS606において、統計情報管理部115は、末端の一個手前のノードから分岐する経路毎に、ルートノードでのレスポンス値の差を一個手前のノードの属性値として記録する。
【0085】
部分経路n0-n1-n11、n0-n1-n12において、末端(n11,n12)の一個手前のノード(n1)の属性値として、部分経路毎のルートノード(n0)のレスポンス値の差を記録する。n1の場合は部分経路n0-n1-n11でのルートノード(n0)のレスポンス値は50ms、部分経路n0-n1-n12でのルートノード(n0)のレスポンス値は40msである。したがって、その差50ms-40ms=10msをn1の属性値(レスポンス差)として記録する。
【0086】
同様に、n2の属性値(レスポンス差)は15ms、n3の属性値(レスポンス差)は20msという値を記録する。
ステップS607において、統計情報管理部115は、未処理のノードがあるかチェックする。未処理のノードがある場合、制御はステップS608に進み、未処理の部分経路が無い場合、制御はステップS601に戻る。
【0087】
ステップS608において、統計情報管理部115は、ノードの属性値として記録した
レスポンス差が小さい順にノードを一つ選択する。
図13の具体例において、n1、n2、n3のレスポンス差は、それぞれ10ms、15ms、20msである。したがって、n1、n2、n3の順に選択される。
【0088】
ステップS609において、統計情報管理部115は、選択したノードの末端のノードを縮小対象として、部分経路を縮める。
選択したノードがn1の場合、末端のノードはn11、n12である。従って、部分経路からn11、n12を削除する。
【0089】
ステップS610において、統計情報管理部115は、メモリの空き容量が規定値を上回るかチェックする。メモリの空き容量が規定値を上回る場合、処理を終了し、メモリの空き容量が規定値を上回らない場合、ステップS607に制御は戻る。
【0090】
次に部分経路の伸長について説明する。
通過経路数の減少(これまで通過していた経路を通らなくなった事)によりメモリ使用量に余裕ができた場合には、部分経路を伸長することで、どの経路を保存すべきかの判定精度を高める。
【0091】
図14は、メモリに余裕がある場合の部分経路の伸長処理のフローチャートである。
図15は、部分経路の伸長処理の具体例におけるネットワーク構成図である。
部分経路の伸長処理の具体例について、適宜、図15のネットワーク構成図を用いて説明する。
【0092】
ノード900は、ノード901、902、903、904に接続している。
ノード901は、ノード911、912に接続している。
尚、ノード900はn0、ノード901はn1、ノード902はn2、ノード903はn3、ノード904はn4、ノード911はn11、ノード912はn12と表すこともある。
【0093】
部分経路n0-n2における、n0のレスポンス値は、35msである。
部分経路n0-n3における、n0のレスポンス値は、55msである。
部分経路n0-n4における、n0のレスポンス値は、40msである。
【0094】
ステップS801において、統計情報管理部115は、メモリの全体容量および空き容量(残量)を確認する。
ステップS802において、統計情報管理部115は、メモリの空き容量が規定値を上回るかチェックする。メモリの空き容量が規定値を上回る場合、ステップS803に制御は進み、メモリの空き容量が規定値を上回らない場合、処理は終了する。
【0095】
ステップS803において、統計情報管理部115は、未処理の部分経路があるかチェックする。未処理の部分経路がある場合、制御はステップS804に進み、未処理の部分経路が無い場合、処理は終了する。
【0096】
ステップS804において、統計情報管理部115は、最長の部分経路より短い未処理の部分経路について、末端ノードに対するルートノードのレスポンス値の長い順に一つ選択する。
【0097】
図13において、最長の部分経路はn0-n1-n11、n0-n1-n12であり、最長の部分経路より短い部分経路は、n0-n2、n0-n3、n0-n3である。部分経路n0-n2、n0-n3、n0-n4のルートノード(n0)のレスポンス値は、それぞれ35ms、55ms、40msである。したがって、n0-n3、n0-n4、n0-n2の順に選択される。
【0098】
ステップS805において、統計情報管理部115は、選択された部分経路を経路伸長対象として、部分経路を伸ばす(ノードを追加する)処理を行う。
例えば、部分経路n0-n3において、ノードn31、32を追加して、部分経路をn0-n3-n31、n0-n3-n32とする。
【0099】
ステップS806において、統計情報管理部115は、伸長処理で使用したメモリ容量をメモリ残量から差し引く。
次に部分経路の有効化について説明する。
【0100】
上述のように、部分経路を長くした場合、その直後からしばらくの間は伸長した部分経路を通るメッセージが少ないため、学習値としての信頼度が低くなる。従って、伸長した直後の部分経路を経路保存対象かどうかの判断に使うのは望ましくない。したがって、伸長した直後は、学習値テーブル204の有効フラグを偽(0)にしておくことにより、伸長した部分経路を無効にしておく。そして、以下のような手順により、伸張した部分経路を経路保存対象の判断材料として有効化する。
【0101】
図16は、部分経路の有効化処理のフローチャートである。
最初、学習値テーブル204の伸長した部分経路の有効フラグは、偽(0)となっているものとする。
【0102】
ステップS1001において、統計情報管理部115は、有効可判定中の部分経路が存在するかチェックする。存在する場合、ステップS1002に制御は進み、存在しない場合、処理を終了する。有効可判定中の部分経路が存在するかの判定は、例えば、ステップS805において、統計情報管理部115が、経路を伸張したことを示すフラグを記録しておき、当該フラグの有無で有効可判定中の部分経路が存在するか判定するようにする。
【0103】
ステップS1002において、統計情報管理部115は、判定対象の経路の規定時間あたりのルートノードを通るトランザクション数が規定の数を超えるかチェックする。規定の数を超えた場合、制御はステップS1004に進み、超えていない場合は処理を終了する。
【0104】
ステップS1003において、統計情報管理部115は、判定対象の経路が伸長されてから規定時間を経過しているかチェックする。規定時間を経過している場合、制御はステップS1004に進み、経過していない場合は処理を終了する。
【0105】
ステップS1004において、統計情報管理部115は、学習値テーブル204の「有効化フラグ」を真(例えば、1)に設定する。これにより、有効になった部分経路は、図9のステップS304の保存対象経路であるかの判定で用いられる。
【0106】
実施の形態の異常診断装置によれば、メモリに余裕が生じたときに、部分経路を伸長することで、どの経路を保存すべきかの判定精度を高めることが出来る。
次にサーバ異常があるかの判定処理について説明する。
【0107】
図17は、サーバ異常判定処理のフローチャートである。
ステップS1101において、異常診断部116は、保存経路テーブル205の内、未処理のサーバがあるかチェックする。未処理のサーバがある場合、制御はステップS1102に進み、未処理のサーバが無い場合、制御はステップS1109に進む。
【0108】
ステップS1102において、異常診断部116は、保存経路テーブル205の内、未処理のサーバ(サーバID)を一つ選択する。
ステップS1103において、異常診断部116は、選択したサーバの所定の期間におけるサーバレスポンス平均が閾値を超えているかチェックする。閾値を超えている場合、ステップS1104に制御は進み、閾値を超えていない場合、ステップS1105に制御は進む。
【0109】
具体的には、図7の保存経路テーブル205において、サーバS5が選択された場合、S5のサーバレスポンス平均は、保存経路テーブル205に記録されているサーバS5の全ての経路の加重平均から求める。
【0110】
図7において、S5の経路ID1におけるサーバレスポンス平均は8ms、頻度は26である。また、S5の経路ID2におけるサーバレスポンス平均は5ms、頻度は20である。
従って、S5のサーバレスポンス平均は、これらの加重平均であるので、S5のサーバレスポンス平均=(8*26+5*20)/(26+20)=6.7msとなる。
【0111】
ステップS1104において、異常診断部116は、選択したサーバに異常がある旨を記憶部118に記録する。
ステップS1105において、異常診断部116は、選択したサーバを含む保存経路テーブル205内の全経路に関して、未処理の経路があるかチェックする。未処理の経路がある場合、ステップS1106に制御は進み、未処理の経路が無い場合ステップS1101に制御は戻る。
【0112】
ステップS1106において、異常診断部116は、未処理の経路を1つ選択する。
ステップS1107において、異常診断部116は、選択したサーバ及び経路の組のサーバレスポンス平均が閾値を超えているかチェックする。閾値を超えている場合、制御はステップS1108に進み、閾値を超えていない場合、制御はステップS1105に戻る。
【0113】
ステップS1108において、異常診断部116は、選択したサーバおよび経路に異常がある旨を記憶部118に記録する。
ステップS1109において、異常診断部116は、ステップS1104で記録したサーバ、ステップS1108で記録したサーバおよび経路をユーザに通知する。
【0114】
本実施の形態の異常診断装置によれば、障害の要因であるサーバおよび経路を容易に特定することが可能となる。特に、特定の経路で発生するサーバの異常を発見することが容易になる。
【0115】
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶する記憶部を有するコンピュータに、
前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する処理と、
を実行させるサーバ異常判定プログラム。
(付記2)
複数のメッセージデータを所定の属性に基づいて関連付ける紐付ける処理と、
関連付けられた前記複数のメッセージデータから関連付けられた前記複数のメッセージデータが通過した経路を示す前記経路情報を生成し、関連付けられた前記複数のメッセージデータが通過した経路内のサーバのレスポンス値を算出する処理と、
生成した前記経路情報が前記記憶部に記憶されているかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象であるか判定する処理と、
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象である場合、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録する処理と、
をさらに実行させる付記1記載のサーバ異常判定プログラム。
(付記3)
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象でないと判定された場合、前記経路情報から前記経路の一部である部分経路を示す部分経路情報を生成し、前記部分経路内のサーバのレスポンス値が閾値より大きいかに基づき、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を保存するか否かを決定する処理をさらに実行することを特徴とする付記2記載のサーバ異常判定プログラム。
(付記4)
生成した前記経路情報が保存対象であると判定された場合、生成した前記経路に対応する所定の期間の前記サーバレスポンス平均が閾値より小さいかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録するかを決定する処理をさらに実行することを特徴とする付記2または3記載のサーバ異常判定プログラム。
(付記5)
コンピュータに
サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報を記憶する工程と、
前記サーバレスポンス平均が閾値を超えているか判定し、超えていれば前記サーバを特定する情報と前記経路情報とを記録する工程と、
を実行させるサーバ異常判定方法。
(付記6)
複数のメッセージデータを所定の属性に基づいて関連付ける工程と、
関連付けられた前記複数のメッセージデータから関連付けられた前記複数のメッセージデータが通過した経路を示す前記経路情報を生成し、関連付けられた前記複数のメッセージデータが通過した経路内のサーバのレスポンス値を算出する工程と、
生成した前記経路情報が前記記憶部に記憶されているかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象であるか判定する工程と、
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象である場合、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録する工程と、
をさらに実行させることを特徴とする付記5記載のサーバ異常判定方法。
(付記7)
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象でないと判定された場合、前記経路情報から前記経路の一部である部分経路を示す部分経路情報を生成し、前記部分経路内のサーバのレスポンス値が閾値より大きいかに基づき、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を保存するかを決定する工程をさらに実行させることを特徴とする付記6記載のサーバ異常判定方法。
(付記8)
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象であると判定された場合、生成した前記経路に対応する所定の期間の前記サーバレスポンス平均が閾値より小さいかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録するか否かを決定する工程をさらに実行させることを特徴とする付記6記載のサーバ異常判定方法。
(付記9)
サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶する記憶部と、
前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する異常判定部と、
を備えるサーバ異常判定装置
(付記10)
複数のメッセージデータを所定の属性に基づいて関連付ける紐付け処理部と、
関連付けられた前記複数のメッセージデータから関連付けられた前記複数のメッセージデータが通過した経路を示す前記経路情報を生成し、関連付けられた前記複数のメッセージデータが通過した経路内のサーバのレスポンス値を算出する経路情報生成部と、
生成した前記経路情報が前記記憶部に記憶されているかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象であるか判定する保存経路選択部と、
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象である場合、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録する統計情報管理部と、
をさらに備える付記9記載のサーバ異常診断装置。
(付記11)
前記保存経路選択部は、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象でないと判定された場合、前記経路情報から前記経路の一部である部分経路を示す部分経路情報を生成し、前記部分経路内のサーバのレスポンス値が閾値より大きいかに基づき、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を保存するかを決定することを特徴とする付記10記載のサーバ異常判定装置。
(付記12)
前記保存経路選択部は、生成した前記経路情報が保存対象であると判定された場合、 生成した前記経路に対応する所定の期間の前記サーバレスポンス平均が閾値より小さいかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録するかを決定することを特徴とする付記10記載のサーバ異常判定装置。
【符号の説明】
【0116】
101 異常診断装置
102 サーバ
103 キャプチャ装置
104 端末
111 メッセージデータ収集部
112 紐付け部
113 経路情報生成部
114 保存経路選択部
115 統計情報管理部
116 異常診断部
117 記憶部
201 サーバテーブル
202 部分経路IDテーブル
203 経路IDテーブル
204 学習値テーブル
205 保存経路テーブル
401〜404 メッセージデータ

【特許請求の範囲】
【請求項1】
サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶する記憶部を有するコンピュータに、
前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する処理と、
を実行させるサーバ異常判定プログラム。
【請求項2】
複数のメッセージデータを所定の属性に基づいて関連付ける紐付ける処理と、
関連付けられた前記複数のメッセージデータから関連付けられた前記複数のメッセージデータが通過した経路を示す前記経路情報を生成し、関連付けられた前記複数のメッセージデータが通過した経路内のサーバのレスポンス値を算出する処理と、
生成した前記経路情報が前記記憶部に記憶されているかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象であるか判定する処理と、
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象である場合、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録する処理と、
をさらに実行させる請求項1記載のサーバ異常判定プログラム。
【請求項3】
関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値が保存対象でないと判定された場合、前記経路情報から前記経路の一部である部分経路を示す部分経路情報を生成し、前記部分経路内のサーバのレスポンス値が閾値より大きいかに基づき、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を保存するか否かを決定する処理をさらに実行することを特徴とする請求項2記載のサーバ異常判定プログラム。
【請求項4】
生成した前記経路情報が保存対象であると判定された場合、生成した前記経路に対応する所定の期間の前記サーバレスポンス平均が閾値より小さいかに基づいて、関連付けられた前記複数のメッセージデータが通過した経路内のサーバの前記レスポンス値を含めたサーバレスポンス平均を記録するかを決定する処理をさらに実行することを特徴とする請求項2または3記載のサーバ異常判定プログラム。
【請求項5】
コンピュータに
サーバを特定する情報、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶する工程と、
前記サーバレスポンス平均が閾値を超えているか判定し、超えていれば前記サーバを特定する情報と前記経路情報とを記録する工程と、
を実行させるサーバ異常判定方法。
【請求項6】
サーバを特定する情報と、トランザクションのメッセージデータについて前記サーバを含む経路を示す経路情報と、前記サーバにおいて前記トランザクションのリクエストメッセージを送信してから応答メッセージを受信するまでの時間であるレスポンス値の平均であるサーバレスポンス平均が対応付けられた情報と、を記憶する記憶部と、
前記サーバレスポンス平均が閾値を超えている場合、前記経路に異常が発生していると判断し、前記サーバを特定する情報と前記経路情報とを記録する異常判定部と、
を備えるサーバ異常判定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate

【図10D】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−244164(P2011−244164A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−113847(P2010−113847)
【出願日】平成22年5月18日(2010.5.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】