(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
(第1の実施の形態)
以下、
図1〜
図16を参照して、ログ送信装置およびログ収集システムの第1の実施の形態を説明する。
【0009】
(全体構成と発明の概要)
図1は、ログ収集システム1の全体構成図である。ログ収集システム1は、1台のログ収集装置200と、複数のログ送信装置1100とから構成される。ログ収集装置200と複数のログ送信装置1100とは、ネットワーク500を介して接続される。ネットワーク500は広域のネットワーク網、たとえばインターネットである。ログ送信装置1100は、たとえば車両に搭載可能なカーナビゲーションシステム(以下、「カーナビ」と呼ぶ)である。ログ収集装置200はログ送信装置1100が出力するログを収集し解析するサーバ装置である。
【0010】
ログ送信装置1100が送信するログには、詳細ログと概要ログの2種類がある。概要ログは、詳細ログよりも情報量が少ないが、少なくとも何らかの障害が発生したことがログ収集装置200により検出可能な情報が含まれる。詳細ログには、概要ログよりも詳細な情報、たとえば障害の原因究明や障害の解決に資する情報が含まれる。
【0011】
第1の実施の形態の概要は以下のとおりである。ログ収集装置200は、収集したログ情報から異常を検出すると、その詳細を検討するために、異常が検出されたログを送信したログ送信装置1100(以下、「被異常検出装置」と呼ぶ)に詳細ログを要求する。しかし、ログ収集装置200が詳細ログの要求を送信した際に、被異常検出装置の電源がオフの状態である場合など、詳細ログの送信が不可能な場合が想定される。そのためログ収集装置200は、被異常検出装置だけでなく、被異常検出装置と環境が同一または類似の他のログ送信装置1100(以下、「代替装置」と呼ぶ)に詳細ログを要求する。ただしログ送信装置1100の「環境」とは、ハードウエアおよびソフトウエアの少なくとも一方の構成を含むログ送信装置1100の状態である。ログ収集装置200は、代替装置から受信する詳細ログを用いて異常の詳細を解析する。以下、詳細を説明する。
【0012】
(ログ送信装置の構成)
図2は、ログ送信装置1100の構成図である。ログ送信装置1100は、概要ログDB610および詳細ログDB620を格納する記憶部1101、ログ送信装置1100の一連の処理を実行する制御部1102、アプリケーションの実行画面等を表示しユーザーの操作を受け付ける表示操作部1103、およびログ収集装置200との通信を行う通信部1104を備える。制御部1102は、不図示のROMに格納されたプログラムを不図示のCPUが実行することにより、アプリケーション実行部1110と、環境変化管理部1120と、ログ出力部1130と、ログ送信部1140と、ログ要求受信部1150として動作する。表示操作部1103は、ユーザへの情報提示機能とユーザからの操作を受け付ける入力機能とを備える、たとえば液晶タッチパネルである。表示操作部1103は、制御部1102の指令に基づき情報を提示し、ユーザの入力を制御部1102に伝達する。
【0013】
アプリケーション実行部1110は、1以上のアプリケーション、たとえば目的地検索のアプリケーションを実行し、各アプリケーションの動作ログであるメッセージ601をログ出力部1130に出力する。メッセージ601には、詳細ログと概要ログとが含まれる。アプリケーション実行部1110は、概要ログを出力する場合には詳細ログを必ず出力するが、詳細ログを出力する場合に概要ログを出力しないこともある。
【0014】
環境変化管理部1120は、ログ送信装置1100の環境の変化を監視しており、アプリケーション実行部1110により概要ログが出力される毎の環境の変化を、後に詳述する環境コード602として出力する。すなわち、詳細ログのみが出力され概要ログが出力されない場合は、環境変化管理部1120は環境コード602を出力しない。たとえば、ログ送信装置1100の環境がハードウエア構成およびソフトウエア構成である場合に、ハードウエアの追加や取り外し、ソフトウエアのバージョンアップは環境の変化として環境変化管理部1120に検出される。
【0015】
ログ出力部1130は、アプリケーション実行部1110が出力する詳細ログを詳細ログDB620に格納する。ログ出力部1130は、アプリケーション実行部1110が出力する概要ログ、および環境変化管理部1120が出力する環境コード602を概要ログDB610に格納する。以下では、概要ログと環境コード602をあわせて「概要セット」と呼ぶ。概要ログDB610の構成、および詳細ログDB620の構成は後述する。
【0016】
ログ送信部1140は、あらかじめ定められた時間周期ごとに概要ログDB610に格納された概要セット603をログ収集装置200に送信する。またログ送信部1140は、ログ要求受信部1150からの動作指令に基づき詳細ログDB620に格納された詳細ログをログ収集装置200に送信する。
ログ要求受信部1150は、ログ収集装置200から詳細ログ要求を受信すると、ログ送信部1140に動作指令を出力し、ログ送信部1140にログ収集装置200へ詳細ログを送信させる。
なお、アプリケーション実行部1110、環境変化管理部1120、ログ出力部1130、ログ送信部1140、およびログ要求受信部1150は、専用のハードウエアとして実現する構成としても良い。
【0017】
(ログ収集装置の構成)
図3は、ログ収集装置200の構成図である。ログ収集装置200は、収集したログが格納される記憶部201と、ログ収集装置200の一連の処理を実行する制御部202と、ログ送信装置1100との通信を行う通信部203とを備える。制御部202は、不図示のROMに格納されたプログラムを不図示のCPUが実行することにより、障害検知部210と、環境情報復元部220と、類似環境判定部230として動作する。なお、障害検知部210、環境情報復元部220、類似環境判定部230は、専用のハードウエアとして実現する構成としても良い。
【0018】
障害検知部210は、ログ送信装置1100から受信した概要ログに基づき障害の発生を検知し、被異常検出装置および代替装置に詳細ログ要求を送信する。障害発生の検知は、たとえば後述するHTTPレスポンスのステータスコードや、ログの相関関係に基づき判断される。ログの相関関係とは、リクエストのログに対するレスポンスのログ、関数の呼び出しログに対する呼び出された関数のログがそれぞれ存在することである。詳細ログ要求の送信はたとえば、ログ送信装置1100の通信部1104がSMS(SMS:Short Message Service)等のPUSH型の通知機能を利用可能である場合は、PUSH型の通知によって実現できる。ただしログ送信装置1100からログ収集装置に対してポーリング処理を繰り返すことにより実現してもよい。
【0019】
環境情報復元部220は、ログ情報に含まれる環境コード602の履歴、および初期環境情報221を用いて、それぞれのログ送信装置1100の環境(状態)を表す環境情報を復元する。初期環境情報221は、それぞれのログ送信装置1100の初期、すなわち製品出荷時の環境を示す情報である。なお初期環境情報221はログ収集装置200の記憶部201に格納されるが、
図3では便宜的に環境情報復元部220に備えられるように記載している。
類似環境判定部230は、環境情報復元部220が復元したそれぞれのログ送信装置1100の環境情報を用いて、障害が発生したログ送信装置1100と環境が類似する他のログ送信装置1100を判定する。すなわち類似環境判定部230は、障害検知部210が障害を検知した被異常検出装置に対する代替装置を特定する。
【0020】
記憶部201には、ログ収集装置200に接続されるそれぞれのログ送信装置1100に対応する概要セットの格納領域、および詳細ログの格納領域が確保される。
図3には、ログ収集装置200にN個のログ送信装置1100が接続される場合の記憶部201の構成を示している。すなわち記憶部201には、それぞれのログ送信装置1100が送信する概要セットが格納されるN個の概要DBと、それぞれのログ送信装置1100が送信する詳細ログが格納されるN個の詳細DBとが格納される。それぞれの概要DBの構成は、対応するログ送信装置1100の概要ログDB610と同様であり、それぞれの詳細DBの構成は詳細ログDB620と同様である。
【0021】
(概要ログDBの構成)
図4は、概要ログDB610の構成と格納された情報を示す図である。概要ログDB610は、時刻611、概要メッセージ612、および環境コード613の3つのフィールドから構成される。時刻611のフィールドには、概要ログが出力された時刻が格納される。概要メッセージ612のフィールドには、アプリケーション実行部1110が出力した概要ログが格納される。環境コード613のフィールドには、環境変化管理部1120が出力した環境コード602が格納される。ただし環境に変化がなく環境コード613が出力されなかった場合は、該当する情報がないことを示す「−」が格納される。
【0022】
図4に示す格納情報の2行目のログには、2015年10月3日の3時15分32.765秒に、HTTP(Hyper Text Transfer Protocol)を用いたリクエスト処理(以下、「HTTPリクエスト」と呼ぶ)が行われたことを示している。また、環境コード613のフィールドには「−」が格納されており、直前に概要ログが出力されてからの環境の変化がなかったことが示されている。
【0023】
続く3行目のログには、約0.5秒後である同日の3時15分33.423秒にHTTPを用いたレスポンス(以下、「HTTPレスポンス」と呼ぶ)を受信し、ステータスコードが200であったことを示している。ステータスコードとは、HTTPレスポンスの概要を示すコードであり、200番台は処理が正常に行われたことを示し、400番台は処理を要求したクライアントに起因する問題により処理が正常に行われなかったことを示す。
【0024】
この3行目のログにおける環境コード613のフィールドにも「−」が格納されているので、このときも環境の変化がなかったことが示されている。そして4行目のログには、約0.1秒後に画面遷移が行われたこと、およびログ送信装置1100の環境が変化しており「1001−12」の環境コードが出力されたことが示されている。
【0025】
続く5行目のログには、翌々日の2015年10月5日1時0分47.786秒にHTTPリクエストが行われたこと、およびログ送信装置1100の環境が変化しており「2−101」の環境コードが出力されたことが示されている。6行目のログには、約1秒後にHTTPレスポンスを受信し、ステータスコードが400であったこと、および環境の変化がなかったことが示されている。7行目のログには、約0.1秒後に画面遷移が行われたこと、およびログ送信装置1100の環境が変化しており「1001−14」の環境コードが出力されたことが示されている。
【0026】
(詳細ログDBの構成)
図5は、詳細ログDB620の構成と格納された情報を示す図である。詳細ログDB620は、時刻621、および詳細メッセージ622の2つのフィールドから構成される。時刻621のフィールドには、詳細ログが出力された時刻が格納される。詳細メッセージ622のフィールドには、アプリケーション実行部1110が出力した詳細ログが格納される。
【0027】
図5に示す格納情報の2行目のログには、2015年10月3日の3時15分32.765秒に、HTTPリクエストが送信され、そのメソッドは「GET」であったことが示されている。さらに、リクエストしたURLが具体的に示されている。3行目のログには、ステータスコードが200であるHTTPレスポンスを受信し、そのステータスコードの意味は「OK」であること、すなわち正常に処理が行われたことが示されている。4行目のログには、画面遷移が行われ遷移先の画面IDが12であることが示されている。
5行目および7行目には、いくつかのログの記載が省略されていることが示されている。6行目のログには、翌日の5時15分33.423秒にソフトウエアがバージョン100からバージョン101にアップデートされたことが示されている。
【0028】
8行目のログには、2015年10月5日1時0分47.786秒にHTTPリクエストが送信され、そのメソッドは「GET」であったことが示されている。さらに、リクエストしたURLが具体的に示されている。9行目のログには、ステータスコードが400であるHTTPレスポンスを受信したこと、およびそのステータスコードの意味は「BadRequest」であること、すなわちログ送信装置1100が送信したHTTPリクエストに問題があったことが示されている。10行目のログには、画面遷移が行われ遷移先の画面IDが14であることが示されている。
図4に示す概要ログDB610と
図5に示す詳細ログDB620を比較すると、概要ログDB610の10月3日と10月5日のそれぞれ3つのログは、詳細ログDB620の2〜4行目のログと8〜10行目のログにそれぞれ対応する。すなわち、少なくともソフトウエアのアップデートに関するログは概要ログDB610には存在しない。
【0029】
(環境コード)
環境コードとは、ログ送信装置1100の環境の変化を示す事前に定められたコードであり、変化した環境の種類を示す環境IDと環境値との組み合わせで表現される。環境値とは、その環境IDであらわされる項目の変化後の状態を示す値である。環境IDは、環境ID定義情報により定義される。環境ID定義情報は、ログ送信装置1100の環境変化管理部1120、およびログ収集装置200の環境情報復元部220に格納される。
【0030】
図6は、環境IDと環境値の意味を示す、環境ID定義情報630の一例を示す図である。
図6に示すように、環境ID「1」はハードウエア構成が変更されたことを示し、その環境IDに付される環境値は変更後のハードウエア構成を特定する情報である。たとえば環境ID「1」の環境値が「Type−A」の場合は別途定義される「Type−A」のハードウエア構成に変更されたことを示す。同様に、環境ID「2」はソフトウエアバージョンが変更されたことを示し、環境ID「2」の環境値は変更後のソフトウエアバージョンを示す。
【0031】
(動作例)
以上が、ログ収集システム1の構成である。以下では、本システムの動作を説明する。
図7は、
図4および
図5に示したHTTPリクエストを行った結果として、アプリケーション実行部1110が表示操作部1103に表示する画面の例を示す図である。
図7(a)は2015年10月3日にアクセスした結果を示し、
図7(b)は2015年10月5日にアクセスした結果を示す。いずれの画面も同一のURLである「http://example.com/nearby−restaurant.html」にアクセスしている。このURLは、HTTPリクエストが送信された位置の付近に存在するレストランを検索して表示するものである。
【0032】
10月3日にアクセスした場合は、
図4や
図5でステータスコードが200となっていることからもわかるように、正常に処理がなされたので、
図7(a)に示すように表示操作部1103にはレストランの位置が表示される。一方、10月5日にアクセスした場合は、
図4や
図5でステータスコードが400となっていることからもわかるように何らかの要因でエラーが発生し、
図7(b)に示すようにレストランは表示されず、表示操作部1103にはエラーの内容が表示される。
【0033】
図8は、2015年10月5日の実行画面が表示された際の、アプリケーション実行部が出力するメッセージ601および環境変化管理部1120が出力する環境コード602を示す図である。
図8(a)に示す詳細ログは、HTTPのGETメソッドにより、図に示したURLへのリクエストが行われたことを示している。
図8(b)に示す概要ログは、HTTPリクエストが行われたことを示している。
図8(c)に示す環境コード602は、環境コードが「2−101」であることを示している。
図6に示した環境ID定義情報630によれば、「2」は環境IDがソフトウェアバージョンであること、「101」は環境ID「2」に対応する環境値が101であることを示している。すなわち「2−101」という環境コード602は直前に概要ログが出力されてから今回の概要ログが出力されるまでに、ソフトウェアバージョンが「101」に変化したことを示している。
【0034】
(環境変化管理部の動作)
図9は、環境コード602を生成する環境変化管理部1120の動作を示すフローチャートである。環境変化管理部1120は、アプリケーション実行部1110が概要ログを出力すると動作が
図9により示されるプログラムを実行する。以下に説明する各ステップの実行主体は環境変化管理部1120、すなわちログ送信装置1100が備える不図示のCPUである。
【0035】
環境変化管理部1120は、まず、ログ送信装置1100の環境情報を収集する(ステップS1121)。環境情報の収集は、環境ID定義情報630において定義された項目の情報を収集することにより行われる。次に環境変化管理部1120は、収集した環境情報の各値について、従前に収集し記憶部1101に格納していた環境情報と比較し、前回情報を収集した時から変化があるか否かを判断する(ステップS1122)。環境情報に変化があると判断する場合は、変化した環境IDと環境値を組み合わせた環境コードを生成し(ステップS1123)、変化後の環境情報を記憶部1101に格納し(ステップS1124)、
図9のフローチャートを終了する。ステップS1122において環境情報に変化がないと判断する場合は、そのまま
図9のフローチャートを終了する。
【0036】
図10(a)、(b)は、
図4および
図5に示す2015年10月5日のHTTPリクエストが行われた際の環境情報の比較を示す図であり、
図10(a)は従前に収集し記憶部1101に格納していた環境情報を示し、
図10(b)は新たに収集した環境情報を示す。
図10(a)と
図10(b)の相違点は環境ID「2」の環境値であり変化後の環境値は「101」なので、環境コード602は「2−101」となる。
【0037】
(ログ出力部の動作)
図11は、アプリケーション実行部1110からメッセージ601を受け取った際のログ出力部1130の動作を示すフローチャートである。以下に説明する各ステップの実行主体はログ出力部1130、すなわちログ送信装置1100が備える不図示のCPUである。
【0038】
ログ出力部1130は、まず、メッセージ601に含まれる詳細ログを詳細ログDB620に格納する(ステップS1131)。次に、メッセージ601に概要ログが含まれるか否かを判断する(ステップS1132)。概要ログが含まれると判断する場合は、メッセージ601に含まれる概要ログと環境変化管理部1120から受信した環境コード602とを概要ログDB610に格納し(ステップS1133)、
図11のフローチャートを終了する。ステップS1132において概要ログが含まれないと判断する場合は、そのまま
図11のフローチャートを終了する。
【0039】
(ログ送信部の動作)
図12は、上記のようにして格納された概要ログDB610および詳細ログDB620の内容をログ収集装置200に送信する際の、ログ送信部1140の動作を示すフローチャートである。以下に説明する各ステップの実行主体はログ送信部1140、すなわちログ送信装置1100が備える不図示のCPUである。
ログ送信部1140は、5分毎などの一定の時間間隔、ログ送信部1140の起動直後、またはユーザによる動作停止指令による動作停止直前に以下の送信処理を行う。ただし、ユーザーの操作入力に基づき送信処理を実行してもよい。
【0040】
ログ送信部1140は、まず、概要ログDB610の内容をログ収集装置200に送信する(ステップS1141)。次にログ送信部1140は、概要ログDB610の内容を消去する(ステップS1142)。そしてログ送信部1140は、ログ収集装置200から詳細ログ要求を受信しているか否かを確認する(ステップS1143)。詳細ログ要求を受信していると判断する場合は、詳細ログDB620の内容をログ収集装置200に送信し(ステップS1144)、詳細ログDB620の内容を消去し(ステップS1145)
図12のフローチャートを終了する。ログ送信部1140は詳細ログ要求を受信していないと判断する場合は、そのまま
図12のフローチャートを終了する。
以上が、ログ情報を送信する際の、ログ送信装置1100の動作である。このようにして送信された概要ログDBおよび詳細ログDBの内容は、ログ収集装置200の記憶部201に格納される。
【0041】
(ログ収集装置の動作)
図13は、障害検知部210の動作を示すフローチャートである。以下に説明する各ステップの実行主体は障害検知部210、すなわちログ収集装置200が備える不図示のCPUである。障害検知部210は、ログ収集装置200に接続されたそれぞれのログ送信装置1100のログごとに、所定時間、たとえば24時間が経過するたびに以下に説明する処理を実行する。以下では、あるログ送信装置1100に対応する第1概要DB640と第1詳細DB650を例として説明する。
【0042】
まず障害検知部210は、記憶部201に格納されている第1概要DB640を参照し、所定の期間、たとえば最新の24時間分の概要ログを取得する(ステップS211)。次に、取得した概要ログに何らかのエラーが含まれているか否かを確認する(ステップS212)。異常の有無は、たとえばHTTPレスポンスのステータスコードが、200番台であれば異常なしと判断され、200番台以外であれば異常ありと判断することができる。障害検知部210は、異常が含まれると判断する場合は、次に説明する環境情報の復元を行い(ステップS213)、後に説明する類似環境の判定に基づき代替装置を特定する(ステップS214)。そして障害検知部210は、異常が検出されたログを送信したログ送信装置1100、すなわち被異常検出装置と代替装置とに詳細ログ要求を送信し(ステップS215)
図13のフローチャートを終了する。障害検知部210は異常が含まれないと判断する場合は、そのまま
図13のフローチャートを終了する。
【0043】
(ログ収集装置の環境情報復元処理)
障害検知部210による環境情報の復元処理は、いずれかのログ送信装置1100から取得した概要ログにおいて異常が検出された際に各ログ送信装置1100の環境(状態)同士を比較するために、各ログ送信装置1100の環境情報を復元する処理である。この処理では、処理対象のログ送信装置1100の初期環境情報221を、当該ログ送信装置1100に対応する概要DBに格納されている概要セットに含まれる環境コード602で更新、すなわち上書きする。すなわち、初期環境情報221と環境コード602とで共通する環境IDに関する記載があれば環境コード602の記載が優先され、いずれか片方にしかない環境IDに関する記載はそのまま環境情報として復元される。この処理は、ステップS212で概要ログから異常が検出されると、全てのログ送信装置1100を処理対象として順番に行われる。
【0044】
図14は、環境情報の復元処理の一例を示す図である。ここでは、
図4に示す概要ログが得られ、障害検知部210が10月5日の1時0分48.525秒のログで異常を検出した場合を例として環境情報の復元処理を説明する。たとえば
図14に示すように、初期環境情報221に環境コードの「1−TypeA」と「2−100」に相当する情報が含まれ、概要DBに含まれる異常が検出された時刻までの環境コード602が「1001−12」と「2−101」であった場合に、次のように環境情報が復元される。すなわち、「1−TypeA」と「2−101」と「1001−12」を含む環境情報が復元される。環境コード「1」の環境値は概要DBに含まれないので初期値のままであり、環境コード「2」の環境値は「101」に変更されており、環境コード「1001」の環境値は「12」に変更されているからである。
【0045】
(ログ収集装置の類似環境判定処理)
障害検知部210による類似環境の判定処理は、ステップS213の環境情報復元処理の結果を用いてたとえば以下のように行われる。すなわち、あらかじめ設定された環境IDの各項目の重みを使用し、異常が検出された被異常検出装置以外の全てのログ送信装置1100を対象として、被異常検出装置と環境IDの環境値が一致する項目の重みを合計した値を類似度としてそれぞれ算出する。そして類似度の高さに基づき代替装置を決定する。代替装置は、類似度が最も高い1台のログ送信装置1100としてもよいし、類似度が高い上位の所定数のログ送信装置1100としてもよい。
【0046】
図15は類似環境判定処理の一例を示す図であり、
図15(a)は類似環境判定処理の前提となる環境情報の一覧である環境情報一覧表706を示す図であり、
図15(b)は処理結果である類似度計算結果表707を示す図である。
図15に示す例では、4つのログ送信装置、すなわち第1〜第4ログ送信装置があり、そのうち第1ログ送信装置が被異常検出装置である。
図15(a)に示すように、それぞれのログ送信装置の環境情報は異なっており、環境IDごとに第1ログ送信装置と同じ環境値であったり異なる環境値であったりする。
【0047】
図15(b)に示す「重み」のフィールドは、あらかじめ設定された環境IDごとの重みを示している。ある環境IDの環境値が、被異常検出装置である第1ログ送信装置と一致する場合には、その環境IDの重みが加算される。たとえば第2ログ送信装置は、環境ID「1」の環境値が第1ログ送信装置と一致するので、類似度計算結果表707における環境ID「1」の値は、重みの値である「10」となる。第2ログ送信装置は、環境ID「2」の環境値も第1ログ送信装置と一致するので、同様に環境ID「2」の値は、重みの値である「15」となる。しかし第2ログ送信装置の環境ID「1001」の環境値は第1ログ送信装置と一致しないので、類似度計算結果表707における環境ID「1001」の値は、ゼロとなる。そのため、第2ログ送信装置の重みの合計、すなわち類似度は「25」である。ただしここでは環境ID「1」、「2」、「1001」の値の合計値のみを示している。同様に第3ログ送信装置の類似度は「15」、第4ログ送信装置の類似度は「16」である。
したがって、類似度が最も高い装置のみを代替装置とする場合は第2ログ送信装置のみが代替装置となり、類似度が高い上位2装置を代替装置とする場合は第2ログ送信装置と第4ログ送信装置が代替装置となる。
【0048】
図16は、代替装置を類似度が高い上位2つのログ送信装置1100、すなわち第2ログ送信装置と第4ログ送信装置とした場合に、これらの代替装置から受信した詳細ログを示す図である。ただし
図16では、ソフトウエアアップデートのログと、前述のURLへのアクセスログだけを示している。ログ収集装置200は、被異常検出装置の詳細ログに加えて
図16に示す代替装置の詳細ログも得られるので、ソフトウエアをバージョン101にアップデートした場合にエラーが発生している可能性が高いと推測することができる。このように障害発生環境が類似する他のログ送信装置のログを収集することで、障害発生条件や再現手順の調査を開始することが可能になる。
【0049】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)ログ送信装置1100は、ネットワーク500を介してログ収集装置200と接続される。ログ送信装置1100は、概要ログを出力するアプリケーション実行部1110と、ログ送信装置1100の状態の変化を示す情報である環境コード602を生成する環境変化管理部1120と、概要ログおよび環境コードをログ収集装置200に送信するログ送信部1140とを備え、環境変化管理部1120は、アプリケーション実行部1110が概要ログを前回出力してから今回出力するまでのログ送信装置1100の状態の変化、すなわち環境変化を示す環境コード602を生成する。
ログ送信装置1100は、ログ送信装置1100は概要ログだけでなく、この概要ログが生成された際の環境を示す環境コード602を送信するので、これを受信したログ収集装置200は詳細な発生条件や再現手順を表現可能となる。環境コード602は、いわばログ送信装置1100の環境情報の差分情報なので、詳細な情報でありながら、環境情報そのものよりも記録に必要な記憶領域や通信量が削減される。
また、ログ送信装置1100は障害の検出に必要な概要ログと異常発生時の状態の再現に必要な環境コード602を提供できるので、ログ収集装置200は障害が発生したログ送信装置1100から詳細ログが得られない場合でも、異常発生時の状態が類似する他のログ送信装置1100のログを用いて障害原因の調査ができる。
【0050】
(2)ログ収集装置200から詳細ログ指令を受信すると、概要ログよりも詳細な情報を含む詳細ログを送信するログ要求受信部、すなわち通信部1104を備える。
そのため、平時は限られた通信帯域や少ない消費電力で処理可能な、情報量の少ない概要ログを送信し、ログ収集装置200からの要求に応じて、詳細を調査するための詳細ログを送信することができる。
【0051】
(3)環境コード602は、変化のあった状態の項目を示す項目コード、すなわち環境IDと、項目コードによりあらわされる項目の変化後の値を示す値コード、すなわち環境値とから構成される。
そのため、ログ送信装置1100の環境の変化を簡潔に表現できる。
【0052】
(4)ログ収集システム1は、ネットワーク500を介して接続されるログ送信装置1100、およびログ収集装置200を含む。ログ送信装置1100は、ログ送信装置1100は、ログを出力するアプリケーション実行部1110と、ログ送信装置1100の状態の変化を示す情報である環境コード602を生成する環境変化管理部1120と、概要ログおよび環境コードをログ収集装置200に送信するログ送信部1140とを備え、環境変化管理部1120は、アプリケーション実行部1110が概要ログを前回出力してから今回出力するまでのログ送信装置1100の状態の変化、すなわち環境変化を示す環境コード602を生成する。ログ収集装置200は、ログ送信装置1100から受信した概要ログを解析し障害を検知する障害検知部210と、ログ送信装置1100から受信した環境コード602を用いてログ送信装置1100の状態、すなわち環境情報を復元する環境情報復元部220と、環境情報復元部220を用いて、障害検知部210が障害を検知した概要ログを送信したログ送信装置1100である被異常検出装置と同一または類似する他のログ送信装置1100を判定する類似環境判定部230と、を備える。
ログ収集装置200は、受信した概要ログを解析して障害を検出し、被異常検出装置と同一または類似する他のログ送信装置1100を判定するので、それらの概要ログを比較することにより障害の原因を概要ログの範囲で調査できる。
【0053】
(5)ログ収集装置200は、障害検知部210が障害を検知した概要ログを送信したログ送信装置である被異常検出装置と環境が同一または類似である他のログ送信装置1100に詳細ログ指令を送信するログ要求部、すなわち障害検知部210を備える。ログ送信装置1100は、ログ収集装置200から詳細ログ要求を受信すると、概要ログよりも詳細な情報を含む詳細ログを送信するログ要求受信部1150を備える。
そのためログ収集装置200は、被異常検出装置と状態が同一または類似である他のログ送信装置1100の詳細ログを取得できる。これによりログ収集装置200は、環境の相違が障害へ与える影響を調査できる。
【0054】
(変形例1)
ログ送信装置1100は、詳細ログ要求を受信するとユーザへ詳細ログを送信することの承諾を求め、ユーザの承諾が得られた場合のみ詳細ログを送信してもよい。ユーザへ詳細ログを送信することの承諾を求める手段は、不図示の音声出力部を用いて音声による問い合わせを行ってもよいし、表示操作部1103を用いて表示による問い合わせを行ってもよい。さらに、詳細ログ要求とともに未送信の概要ログを併せて送信してもよい。
【0055】
図17は、表示操作部1103を用いて表示による問い合わせを行う例を示す図である。
図17に示す図において、ユーザにより「はい」が選択されると詳細ログが送信され、ユーザにより「いいえ」が選択されると詳細ログは送信されない。
図18は、変形例1におけるログ要求受信部1150の動作を表すフローチャートである。以下に説明する各ステップの実行主体は、ログ要求受信部1150、すなわちログ送信装置1100の不図示のCPUである。
【0056】
ステップS1151では、ログ送信装置1100のユーザに送信可否の確認、すなわち送信の承諾を求める問い合わせを行う。続くステップS1152では送信OKの応答、すなわち承諾が得られたか否かを判断する。肯定的な応答が得られたと判断する場合はステップS1153に進み概要ログDB610から概要セットを取得して送信する。そして、続いて詳細ログDB1155から詳細ログを取得して送信して
図18のフローチャートを終了する。ステップS1152で否定的な応答が得られたと判断する場合は、そのまま
図18のフローチャートを終了する。
【0057】
なお、ステップS1152で否定的な応答が得られたと判断する場合に、ログ送信装置1100がログ収集装置200にその旨を送信し、これを受信したログ収集装置200は、他のログ送信装置1100に詳細ログ要求を送信してもよい。
またログ送信装置1100は、詳細ログ要求を受信する前にあらかじめ詳細ログの送信可否の確認を行い、その結果を保存してもよい。この場合は、
図17に示す表示を行うことなく保存していた結果に基づき動作する。
【0058】
(変形例2)
上述した第1の実施の形態では、環境コード602は環境IDと環境値とから構成されたが、環境コード602がさらにベースIDを含んでもよい。ベースIDとは、基準となるログ送信装置1100の状態を示す基準コードであり、ログ送信装置1100のいくつかの環境IDについて対応する環境値の初期値を定めたものである。ベースIDの値とそれに対応する環境情報における環境IDごとの環境値の初期値は、ベースID定義表710により定義される。ベースID定義表710は、ログ収集装置200およびログ送信装置1100の両方に格納される。
図19は、ベースID定義表710の一例を示す図である。
図19に示すように、ベースID定義表710にはベースIDごとに環境IDと初期値としての環境値の組み合わせが規定される。なお
図19ではベースID定義表710に2つの環境IDしか含まれていないが、3以上の環境IDを含んでいてもよく、少なくとも1つの環境IDを含めばよい。
【0059】
変形例2における環境変化管理部1120は、環境コード602を初回に生成する場合は、基準コードが示すログ送信装置1100の環境情報と現在のログ送信装置1100の環境情報との差を示す環境IDおよび環境値を生成する。環境変化管理部1120は、環境コード602を2回目以降に生成する場合は、アプリケーション実行部1110が概要ログを前回出力してから今回出力するまでのログ送信装置1100の状態の変化を示す環境IDおよび環境値を生成する。
【0060】
たとえば、ログ送信装置1100が初回に環境コード602を生成する際の環境情報が「1−TypeA、2−101」である場合に、ベースIDとして「01」を使う場合は環境コード602として「01−2−101」を出力する。ベースID「01」によりあらわされる環境情報との相違点は、環境ID「2」の環境値だからである。そして次に環境コード602を生成する際の環境情報が「1−TypeB、2−100」である場合は、環境コード602として「01−1−TypeB」を出力する。前回の環境コード602の生成以降の環境情報の変化が「1−TypeB」だからである。
【0061】
環境情報復元部220は、ログ収集装置200に備えられるベースID定義表710と、受信する環境コード602とを用いてログ送信装置1100の環境情報を復元する。
この変形例2によれば、ログ送信装置1100の環境情報をベースIDにより表される環境情報との差分によって表現するので、ログとして記録する情報量を削減しつつ、詳細な環境情報を復元できる。
【0062】
(変形例3)
上述した第1の実施の形態では、ログ収集装置200の障害検知部210は、障害を検知すると被異常検出装置および代替装置に詳細ログ要求を送信した。しかし、被異常検出装置から詳細ログが得られない場合のみ代替装置に詳細ログ要求を送信してもよい。被異常検出装置から詳細ログが得られない場合とはたとえば、ログ収集装置200が障害を検出した時点で被異常検出装置の電源がオフになっている等の理由により、ログ収集装置200が被異常検出装置との通信を行うことができず、詳細ログ要求が送信できない場合である。また、ログ収集装置200が詳細ログ要求を送信できたが所定の時間内、たとえば10秒以内に詳細ログが被異常検出装置から送信されない場合も、詳細ログが得られない場合に含まれる。なお、詳細ログ要求が被異常検出装置に送信できなかった場合には、Wake On LAN等の技術を用いて遠隔地から電源をオンにしてもよい。
【0063】
(変形例4)
上述した第1の実施の形態では、障害の発生を検知するとログ送信装置1100に詳細ログ要求を送信したが、詳細ログ要求を送信せずに概要ログのみを用いて障害が発生する環境情報を特定してもよい。たとえば、代替装置の概要ログから被異常検出装置と同様の障害が発見されるか否かを判断し、複数の代替装置についてこの判断を行うことにより、障害が発生する環境情報を特定することができる。
【0064】
(変形例5)
上述した第1の実施の形態では、アプリケーション実行部1110が詳細ログおよび概要ログを出力した。しかし、アプリケーション実行部1110が出力する詳細ログに基づきログ出力部1130が概要ログを生成してもよい。たとえば、詳細ログに対応する概要ログのテンプレートをあらかじめ用意しておき、用意したパターンに該当する詳細ログが出力された場合のみログ出力部1130が概要ログを生成する。この場合は、環境変化管理部1120は、ログ出力部1130が概要ログを生成した場合のみ環境コード602を出力する。
【0065】
(変形例6)
上述した第1の実施の形態では、ログ送信装置1100の「環境」とは、ハードウエアおよびソフトウエアの少なくとも一方の構成を示すものであった。しかし、ログ送信装置1100の「環境」にログ送信装置1100のリソース、すなわち不図示のCPUの負荷率や、不図示の記憶領域の空き容量、不図示のRAMの使用量などを加えてもよい。さらにログ送信装置1100の温度や稼働時間など、障害発生の原因究明に資する可能性がある情報はさらにログ送信装置1100の「環境」に加えてよい。
【0066】
(第2の実施の形態)
図20〜
図22を参照して、ログ送信装置およびログ収集システムの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ログ収集装置200への直接の通信手段を備えるログ送信装置(以下、「ログ直接送信装置」と呼ぶ)と、ログ収集装置200への直接の通信手段を備えないログ送信装置(以下、「ログ間接送信装置」と呼ぶ)とを組み合わせて使用する点で、第1の実施の形態と異なる。
【0067】
図20は、第2の実施の形態におけるログ収集システム1Aの全体構成図である。ログ収集システム1Aは、1台のログ収集装置200と、複数のログ間接送信装置1200と、複数のログ直接送信装置1300とから構成される。ログ直接送信装置1300は、ネットワーク500を介してログ収集装置200と接続される。ログ間接送信装置1200は、ログ直接送信装置1300およびネットワーク500を介してログ収集装置200と接続される。ログ間接送信装置1200は、たとえば車両に搭載可能なカーナビである。ログ直接送信装置1300は、たとえば携帯電話、スマートフォン、または専用の通信モジュールである。
ログ収集装置200の構成、および動作は第1の実施の形態と同様なので説明を省略する。
【0068】
図21は、ログ間接送信装置1200およびログ直接送信装置1300の構成を示す図である。ログ間接送信装置1200およびログ直接送信装置1300の構成や動作は、特に説明しない点は第1の実施の形態におけるログ送信装置1100と同様である。すなわちログ間接送信装置1200は、第1の実施の形態で説明したように、あらかじめ定められた時間周期ごとに概要セット623を送信する。この概要セット623は、後述するようにログ直接送信装置1300の環境コード1632が付加されてログ収集装置200へ送信される。
【0069】
ログ間接送信装置1200は、第1の実施の形態におけるログ送信装置1100と比較して、通信部1204の通信先が限定される点が異なる。通信部1204は、ログ直接送信装置1300の近距離通信部1306と通信を行う。通信部1204および近距離通信部1306は、Bluetooth(登録商標)やWi−Fi(登録商標)などによる通信を行う。すなわちログ間接送信装置1200は、アプリケーション実行部1110が出力する概要ログと、環境変化管理部1220が出力する環境コード1622とをあわせて概要セット623としてログ直接送信装置1300に出力する。
【0070】
ログ直接送信装置1300は、第1の実施の形態のログ送信装置1100と比較して、近距離通信部1306をさらに備える点が異なる。またアプリケーション実行部1310が実行するアプリケーションは、後述する転送アプリを含む。さらに、通信部1304が複数の通信規格に対応し、使用する通信規格の変化が環境コード1632に反映される。たとえば、環境ID「2001」は通信部1304が使用する通信規格が変化したことを示し、その値が「ゼロ」の場合は3Gに切り替えられたことを示し、その値が「1」の場合はLTEに切り替えられたことを示す。
【0071】
近距離通信部1306は、Bluetooth(登録商標)やWi−Fi(登録商標)などによりログ間接送信装置1200と通信する。近距離通信部1306は、ユーザの指示などに基づき動作状態がオンとオフに切り替えられる。近距離通信部1306の動作状態がオフに切り替えられると、ログ間接送信装置1200との通信が不可能になるがログ直接送信装置1300の電力消費量が抑制される。近距離通信部1306の動作状態がオンに切り替えられると、ログ間接送信装置1200との通信が可能になるがログ直接送信装置1300の電力消費量が増加する。近距離通信部1306の動作状態の変化は、環境コード1632に反映される。たとえば、環境ID「2002」は近距離通信部1306の動作状態が変化したことを示し、その値が「ゼロ」の場合はオフに切り替えられたことを示し、その値が「1」の場合はオンに切り替えられたことを示す。
【0072】
転送アプリは、ログ間接送信装置1200が出力する概要セット623を取得し、その概要セット623の内容を当該アプリケーションの概要ログとしてログ出力部1330に出力する。ログ直接送信装置1300もログ間接送信装置1200と同様に、アプリケーション実行部1310が出力する概要ログに環境変化管理部1320が出力する環境コード1632を付して概要セットを生成する。すなわち、ログ間接送信装置1200のアプリケーション実行部1210が概要ログを出力すると、ログ間接送信装置1200の環境コード1622、およびログ直接送信装置1300の環境コード1632とが加えられて概要セット633となる。ただしアプリケーション実行部1310が実行するアプリケーションは概要セット623を処理する転送アプリに限定されないので、ログ直接送信装置1300が出力する概要セット633には、ログ間接送信装置1200の環境コード1622を含まないものもある。
【0073】
ログ要求受信部1350は、ログ収集装置200から詳細ログ要求を受信すると詳細ログDB620Bに格納された詳細ログをログ収集装置200に送信するだけでなく、ログ間接送信装置1200に詳細ログ要求を送信する。そしてこの要求に応じてログ間接送信装置1200から送信された詳細ログもログ収集装置200に送信する。ただし、近距離通信部1306の動作状態がオフである場合などログ間接送信装置1200との通信が行えない場合はログ間接送信装置1200へ詳細ログ要求を送信しない。
【0074】
図22は、概要ログDB610Bの構成および格納された情報を示す図である。
図22には、転送アプリの動作に基づくログ、すなわちログ間接送信装置1200が出力した概要セット623に基づくログを示している。
図22に示すように、ログ間接送信装置1200のアプリケーション実行部1210が出力した概要メッセージに、ログ間接送信装置1200が生成した環境コード1622と、ログ直接送信装置1300が生成した環境コード1632が付されている。たとえば、5行目のログからはHTTPレスポンスが得られてから画面遷移が行われるまでに、環境コード「2001−1」すなわちログ直接送信装置1300の通信部1304が使用する通信規格がLTEに切り替えられたことを示している。そのためログ収集装置200は、ログ間接送信装置1200だけでなくログ直接送信装置1300の環境情報も把握することができる。
【0075】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)ログ直接送信装置1300は、他の1つのログ送信装置、すなわちログ間接送信装置1200と通信を行う近距離通信部1306を備える。アプリケーション実行部1310は、ログ間接送信装置1200から受信した概要ログおよびログ間接送信装置1200から受信した環境コード1622を、概要ログとして出力する。
そのためログ直接送信装置1300は、ログ間接送信装置1200から受信した概要ログおよび環境コード1622に、環境変化管理部1320が出力する環境コード1632を加えた概要セット633をログ収集装置200に送信する。これによりログ収集装置200は、ログ間接送信装置1200だけでなくログ直接送信装置1300の環境情報も復元することができる。
【0076】
(2)ログ直接送信装置1300は、ログ収集装置200から詳細ログ指令を受信すると、ログ間接送信装置1200に詳細ログ指令を出力し、ログ間接送信装置1200から受信した詳細ログをログ収集装置200へ送信するログ要求受信部1350を備える。
そのためログ収集装置200は、ログ直接送信装置1300だけでなくログ間接送信装置1200の詳細ログを取得できる。
【0077】
(3)近距離通信部1306はオンまたはオフに動作状態が切り替え可能であり、環境変化管理部1320が出力する環境コード1632には、前記近距離通信部の動作状態の切り替えが反映される。そのため、近距離通信部1306の動作状態がオフに切り替えられていたことが原因で問題が生じていた場合に、原因の究明が容易となる。
【0078】
(第2の実施の形態の変形例1)
ログ間接送信装置1200は、詳細ログ要求を受信しなくても詳細ログをログ直接送信装置1300に送信してもよい。ログ間接送信装置1200が詳細ログをログ直接送信装置1300に送信するタイミングは、所定の時間周期毎でもよいしアプリケーション実行部1210から詳細ログが出力される毎でもよい。
ログ直接送信装置1300は、詳細ログ要求を受信しないタイミングでログ間接送信装置1200から詳細ログを受信すると、ログ収集装置200に送信せず詳細ログDB620Bに蓄積する。そしてログ収集装置200から詳細ログ要求を受信した際に、その詳細ログをログ収集装置200に送信する。
【0079】
この変形例によれば、ログ収集装置200が詳細ログ要求を送信した際に、ログ間接送信装置1200がログ直接送信装置1300と通信できない場合でも、ログ収集装置200はログ間接送信装置1200がログ直接送信装置1300に送信済みの詳細ログを取得できる。この変形例は、ログ間接送信装置1200とログ直接送信装置1300とが常には同一の場所で使われない場合や、ログ間接送信装置1200の電源がオフにされている機会が多い場合に特に有効である。具体的には、ログ間接送信装置1200が車両に搭載されるカーナビであり、ログ直接送信装置1300が携帯端末の場合に特に有効である。
【0080】
(第2の実施の形態の変形例2)
ログ間接送信装置1200は、詳細ログ要求を受信するとユーザへ詳細ログを送信することの承諾を求め、ユーザの承諾が得られた場合のみ詳細ログを送信してもよい。このとき、ユーザへ詳細ログを送信することの承諾を求めるために、ログ間接送信装置1200が備える表示操作部1203に問い合わせの表示を行ってもよいし、ログ直接送信装置1300が備える表示操作部1303に問い合わせの表示を行ってもよい。
さらに、詳細ログ要求を送信する際に未送信の概要ログも併せて送信してもよい。
【0081】
プログラムは不図示のROMに格納されるとしたが、プログラムは不図示の不揮発性メモリに格納されていてもよい。また、ログ送信装置1100が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとログ送信装置1100が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。