JPWO2018042584A1 - 問合せ対応システム及び方法 - Google Patents

問合せ対応システム及び方法 Download PDF

Info

Publication number
JPWO2018042584A1
JPWO2018042584A1 JP2018536608A JP2018536608A JPWO2018042584A1 JP WO2018042584 A1 JPWO2018042584 A1 JP WO2018042584A1 JP 2018536608 A JP2018536608 A JP 2018536608A JP 2018536608 A JP2018536608 A JP 2018536608A JP WO2018042584 A1 JPWO2018042584 A1 JP WO2018042584A1
Authority
JP
Japan
Prior art keywords
log
issue
message group
information
team
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018536608A
Other languages
English (en)
Other versions
JP6561212B2 (ja
Inventor
貴志 爲重
貴志 爲重
水野 潤
潤 水野
順史 木下
順史 木下
田口 雄一
雄一 田口
立川 茂
茂 立川
雄二 広瀬
雄二 広瀬
充弘 長田
充弘 長田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018042584A1 publication Critical patent/JPWO2018042584A1/ja
Application granted granted Critical
Publication of JP6561212B2 publication Critical patent/JP6561212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

管理システムが、開発対象プログラムについて第1チームに関する処理により出力されたログ情報及びイシュー情報を管理する第1システムから抽出されたログチャンクとイシューチャンクとが紐付いた管理情報を構築する。管理システムは、問題に関する1以上のログメッセージである指定ログメッセージ群が関連付いた問合せを、サービスシステムについて第2チームに関するシステムである第2システムから受信した場合、指定ログメッセージ群を用いたログパターンマッチングにより、指定ログメッセージ群に適合するログメッセージ群を管理情報から検索する。管理システムは、見つかったログメッセージ群に対応した対処方法情報が表す対処方法を含んだ応答を第2システムに表示する。

Description

本発明は、概して、問合せに対する対応に関し、典型的には、障害に関する問合せに対する対応に関する。
例えば、特許文献1には、複数のアプリケーションのログを解析して異常事象を検知する技術が開示されている。
特開2016-24786号公報
ところで、一般に、開発チームが、サービスシステムの開発過程において、サービスシステムの構成変更(例えばソースコードの書き換え)を行い、構成変更後のサービスシステムをビルドし、ビルドされたサービスシステムの稼働をテストする。なお、本明細書では、「チーム」は、メンバが1人であっても複数人であってもよい。つまり、個人単独での開発であっても複数人共同での開発であっても、便宜上、開発の主体は「チーム」である。また、「サービスシステム」は、開発対象の総称である。サービスシステムは、典型的には、ソフトウェア(コンピュータプログラム)でよく、その一例としては、アプリケーションプログラム(例えばウェブサービスを提供するアプリケーションプログラム)又はミドルウェアでよい。
開発過程において、少なくとも障害が発生した場合にログメッセージが出力され蓄積される。開発過程においてログメッセージが出力されるケースは、典型的には、以下の3種類である。
(1)正常ケース(正しい値に対して処理がされた。)
(2)正常ケース(異常値に対して異常が通知されるという正常の処理がされた。)
(3)異常ケース(予期しない値によって処理が異常終了した。)
一方、サービスシステムの運用過程(例えば、利用者(エンドユーザ)によりサービスシステムが利用されている間)においても、少なくとも障害が発生した場合にログメッセージが出力される。
特許文献1に開示の技術を利用すれば、運用チーム(例えば、運用者又は利用者)がログメッセージを解析することで障害を検知することが期待できる。
しかし、通常、ログメッセージからは、障害の対処方法はわからない。
DevOpsという方法論、すなわち、開発チーム(例えば開発担当者)と運用チーム(例えば運用担当者)が連携して協力する開発及び運用の方法論が知られている。この手法によれば、運用過程でのログメッセージを開発過程において利用することが考えられる。しかし、運用過程において発生した障害の対処方法を知ることはできない。
この種の問題は、開発チーム及び運用チームのように異種の複数のチームが存在する環境に限らず、同種の複数のチームが存在する環境(例えば、複数の開発チームが1つのサービスシステムを開発する環境)においてもあり得る。
管理システムが、開発対象プログラムについて第1チームに関する処理により出力されたログ情報及びイシュー情報を管理する第1システムから抽出されたログチャンクとイシューチャンクとが紐付いた管理情報を構築する。管理システムは、問題に関する1以上のログメッセージである指定ログメッセージ群が関連付いた問合せを、サービスシステムについて第2チームに関するシステムである第2システムから受信した場合、指定ログメッセージ群を用いたログパターンマッチングにより、指定ログメッセージ群に適合するログメッセージ群を管理情報から検索する。管理システムは、見つかったログメッセージ群に対応した対処方法情報が表す対処方法を含んだ応答を第2システムに表示する。
異なるチームについて発生した問題に対する対応を特定することができる。
実施例に係る計算機システムの構成を示す。 管理システムの構成を示す。 サーバの構成を示す。 本実施例の概要を示す。 ログ管理テーブルの構成を示す。 イシュー管理テーブルの構成を示す。 ログイシュー管理テーブルの構成を示す。 辞書管理テーブルの構成を示す。 クエリ管理テーブルの構成を示す。 ログ格納処理の流れを示す。 紐付け処理の流れを示す。 クエリ処理の流れを示す。 一致が得られた場合の結果画面の一例を示す。 一致が得られなかった場合の結果画面の一例を示す。
発明を実行するための形態
以下、図面を参照して、異種の複数のチームが存在する環境に適用された本発明の一実施例を説明する。以下の実施例では、異種の複数のチームは、開発チームと運用チームである。なお、本発明は、そのような環境に加えて、同種の複数のチームが存在する環境にも適用である。
以下の説明では、「インタフェース部」は、1以上のインタフェースを含む。1以上のインタフェースは、1以上の同種のインタフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインタフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「記憶部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、1以上のメモリに加えて、1以上のPDEVを含んでもよい。「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインタフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、「サーバストレージシステム」は、サーバシステム及びストレージシステムのうちの少なくとも1つを含んだシステムである。「サーバシステム」は、1以上の物理的なサーバ(例えばサーバのクラスタ)であってもよいし、少なくとも1つの仮想的なサーバ(例えばVM(Virtual Machine))を含んでもよい。「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばSDS(Software Defined Storage))を含んでもよい。
また、以下の説明では、表示用情報を表示する一つ以上の計算機の集合が「管理システム」と呼ばれてよい。管理計算機が管理計算機の表示デバイスに情報を表示する場合は管理計算機が管理システムでよいし、管理計算機と表示用計算機の組み合わせが管理システムでもよい。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理が実現されてもよく、この場合は、それら複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムでよい。管理計算機による「表示用情報を表示する」とは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が遠隔の表示用計算機に表示用情報を送信することであってもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合は、その要素の参照符号を使用し、同種の要素を区別して説明する場合は、その要素に割り振られた識別情報を使用することがある。例えば、サーバを特に区別しないで説明する場合には、サーバ102と記載し、個々のサーバを区別して説明する場合には、サーバ#1、サーバ#2のように記載することがある。
図1は、実施例に係る計算機システムの構成を示す。
計算機システムは、開発プラットフォーム160、開発者端末180、運用者端末170、管理システム101及びサーバストレージシステム100を含む。サーバストレージシステム100は、複数のサーバ(物理サーバ)102を含んだサーバシステムと、複数のLU(Logical Unit)を提供するストレージシステムとを含む。LUは、論理ボリュームと呼ばれてもよい。
開発プラットフォーム160は、1以上の計算機であり、サービスシステムの開発のためのプラットフォームである。
開発者端末180は、開発者の情報処理端末(例えばパーソナルコンピュータ)である。複数(又は1つ)の開発者端末180(開発者)が存在する。開発者は、少なくとも1つの開発チームのメンバである。開発チームは、開発プラットフォーム160を利用してサービスシステムを開発するチームである。
運用者端末170は、運用者の情報処理端末である。複数(又は1つ)の運用者端末170(運用者)が存在する。運用者は、少なくとも1つの運用チームのメンバである。運用チームは、サービスシステムを運用するチームである。運用者は、例えば、サービスシステムの管理者であってもよいし、サービスシステムの利用者であってもよい。
管理システム101は、1以上の計算機であり、問合せ対応システムの一例である。管理システム101は、NW−SW(管理用ネットワークの一例)103及びNW−SW(業務用ネットワークの一例)104、の管理インタフェース114に接続されている。管理システム101は、NW−SW103及び104の各々にVLAN(Virtual LAN)を設定することが可能である。「NW−SW」は、ネットワークスイッチの略語である。NW−SW103は、管理システム101が複数のサーバ102で稼動するOS(Operating System)やアプリケーションの配布や電源制御等の運用管理をするためのネットワークである。NW−SW104は、サーバ102上で実行されるアプリケーションが使用するネットワークである。なお、NW−SW104は、WAN(Wide Area Network)等に接続されてサーバシステムのクライアント計算機と通信を行う。
管理システム101は、FC−SW(ファイバーチャネル・スイッチ)108にも接続される。FC−SW511は、I/O(Input/Output)用ネットワークの一例である。管理システム101は、FC−SW108を介してストレージシステム105に接続される。
管理システム101は、サーバストレージシステム100を管理する。管理システム101は、制御プログラム110を実行し、管理テーブル群111を管理する。
サーバストレージシステム100において、各サーバ102は、後述するようにVM(仮想マシン)を実行できる。複数のサーバ102は、PCIe(PCI-Express)−SW107と複数のNIC(Network Interface Card)112Fを介してNW−SW103に接続され、PCIe−SW107と複数のNIC112Fを介して、NW−SW104に接続され、PCIe(PCI-Express)−SW107と複数のHBA(Host Bus Adapter)を介して、FC−SW108に接続される。NIC及びHBAは、I/Oデバイスの一例である。
計算機システムにおいて、管理用ネットワーク、業務用ネットワーク及びI/O用ネットワークは一体であってもよい。
図2は、管理システム101の構成を示す。
管理システム101は、インタフェース部、記憶部及びそれらに接続されたプロセッサ部を有する。インタフェース部は、例えば、ストレージサブシステム105へアクセスするためのディスクインタフェース203、NW−SW103及び104を介した通信のためのネットワークインタフェース204、及び、PCIe−SW107を介した通信のためのPCIeインタフェース205である。プロセッサ部は、例えば、CPU201である。記憶部は、例えば、メモリ202である。メモリ202が、制御プログラム110、OS216、及び管理テーブル群111を記憶する。制御プログラム110及びOS216がCPU201により実行される。管理テーブル群111の少なくとも一部が、メモリ202以外の図示しない記憶デバイス、又は、ストレージシステム105に格納されてもよい。
管理テーブル群111は、1以上のテーブルである。管理テーブル群111は、ログ管理テーブル221、イシュー管理テーブル222、ログイシュー管理テーブル223、辞書管理テーブル224及びクエリ管理テーブル225を含む。ログ管理テーブル221、イシュー管理テーブル222及びログイシュー管理テーブル223が、本実施例で言う「ノウハウDB」を構成する。「DB」は、データベースの略語である。管理テーブル群111に登録されている情報は、管理プログラム110により収集された情報(生情報)であってもよいし、その情報の加工後の情報であってもよいし、管理システム101の図示しないコンソールからシステム管理者に入力された情報であってもよい。
図3は、サーバ102の構成を示す。
サーバ102は、ディスクインタフェース303、ネットワークインタフェース304、PCIeインタフェース305、メモリ302、それらに接続されたCPU301を有する。インタフェース303〜305は、インタフェース203〜205とそれぞれ同じ機能を有する。メモリ302は、OS316及びハイパバイザ315を実行する。ハイパバイザ315は、VM314の生成、起動、終了及び削除を制御する。VM314が、業務アプリケーション(プログラム)341、OS(例えばゲストOS)331及び監視プログラム342を実行する。監視プログラム342が、業務アプリ341及びOS331等の構成要素の状況を監視し、その状況を表すログメッセージを出力する。
例えば、サーバストレージシステム100は、LPAR(Logical Partitioning)により複数のサブシステムに分割されてよい。それら複数のサブシステムが、開発系としてのサブシステムと、本番系としてのサブシステムとを含んでよい。
開発VM(開発系に配置されたVM)314に、開発プラットフォーム160からデプロイされた業務アプリケーションである開発業務アプリケーション341が、開発対象のサービスシステムとしてビルドされてよい。開発業務アプリケーション341は、テストにおいて、ビルド、起動及び終了等の制御がされる。開発VM314内の監視プログラム342が、開発業務アプリケーション341の稼働状況に関するログメッセージを、開発プラットフォーム160に送信する。開発系からのログメッセージは、開発プラットフォーム160に蓄積される。
本番VM(本番系に配置されたVM)314により、運用対象のサービスシステムとしての業務アプリケーションである運用業務アプリケーション341が実行されてよい。運用VM314内の監視プログラム342が、運用業務アプリケーション341の稼働状況に関するログメッセージを、運用者端末170(又は、利用者の情報処理端末である利用者端末(図示せず))に送信してよい。
図4は、本実施例の概要を示す。図4において、実線矢印は、開発過程での処理を意味し、破線矢印は、運用過程での処理を意味する。
本実施例では、大きく、開発過程と運用過程とに分かれているが、開発過程の結果を運用過程において利用することができ、運用過程の結果を将来の開発過程(例えばパッチの開発)に利用することができるようになっている。
<開発過程>
開発プラットフォーム160では、一例として、バージョン管理プログラム421、ビルド支援プログラム422、テストプログラム423及びコードレビュープログラム426が、開発プラットフォーム160における図示しないプロセッサ部により実行される。また、開発プラットフォーム160により、ログDB425及びイシューDB424が管理される。ログDB425及びイシューDB424は、開発プラットフォーム160にあってもよいし、開発プラットフォーム160の外部ストレージにあってもよい。
バージョン管理プログラム421は、開発対象であるサービスシステム(例えば業務アプリケーション341)のバージョンを管理する。バージョン管理プログラム421の一例として、git、すなわち、プログラムソース等の変更履歴を管理する分散型のバージョン管理システムを採用できる。バージョン管理プログラム421は、例えば、誰がいつ新しいコードをコミットしたかを管理する。バージョン管理プログラム421に対するコード変更は、例えば、そのプログラム421でサポートされているリクエスト、例えば、プッシュを用いて実行される。開発過程では、例えば、以下の処理が実行される。その処理において、適宜、ログメッセージがログDB425に格納されたり、イシューメッセージがイシューDBに格納されたりする。
(S1)バージョン管理プログラム421に対するコード変更が、プッシュされる。
(S2)プッシュされたコードに従うプログラム(サービスシステム)がビルドされる。
(S3)ビルドされたプログラム(サービスシステム)がテストされる。
(S4)(S3)の結果がOKであれば、マージリクエストが発行(プルリクエスト)される。マージは例えば人手で実行される。
(S5)マージされたコードが、プッシュされる。マージされたコードについて(S2)及び(S3)が実行される。その(S3)の結果がOKであれば、終了する。
ビルド支援プログラム422は、バージョン管理プログラム421における更新後プログラムコードに従うプログラム(サービスシステム)をビルドしたり、ビルドしたプログラムをサーバストレージシステム100にデプロイしたり、デプロイしたプログラムのテストをテストプログラム423に依頼したりする。ビルド支援プログラム422の一例として、Jenkinsを採用できる。
テストプログラム423は、デプロイされたプログラム(業務アプリケーション341)をテストする。
コードレビュープログラム426は、開発対象のプログラムのコード(例えば、更新前後のコード(更新前後の差分を含む))を開発者端末180に表示する。表示対象のコードは、バージョン管理プログラム421により管理されているプログラムコードでよい。コードレビュープログラム426の一例として、gerritを採用することができる。
バージョン管理プログラム421、ビルド支援プログラム422及びテストプログラム423のうちの少なくとも1つにより、少なくとも障害が生じた場合にログメッセージが出力され、出力されたログメッセージが、ログDB425に格納される。本実施例では、正常か障害かに関わらずテストプログラム423によりログメッセージが出力されログDB423に格納される。
バージョン管理プログラム421、ビルド支援プログラム422及びテストプログラム423のうちの少なくとも1つにより、何らかのイシューが生じた場合にイシューメッセージが出力され、出力されたイシューメッセージが、イシューDB424に格納される。「イシュー」は、障害を意味してもよいし、障害よりも軽い異常を意味してもよい。本実施例では、ビルド支援プログラム422及びテストプログラム423によりイシューメッセージがイシューDB423に格納される。イシューメッセージは、ログメッセージを含む。つまり、障害のようなイシューが生じた場合、ログメッセージに加えて、ログメッセージを含んだイシューメッセージが出力される。
ログメッセージは、事象といった所定の単位で管理される。本実施例では、ログメッセージは、事象毎に管理される。1つの事象に関連付いた1以上のログメッセージを、「ログメッセージ群」と呼ぶことができる。ログメッセージ群を含んだ1つのチャンクを、「ログチャンク」と呼ぶことができる。なお、「事象」とは、本実施例では、テストに相当するが、ビルドやデプロイといったジョブであってもよい。「ジョブ」は、ビルド支援プログラム422のようなプログラムの実行単位であってよい。
イシューメッセージは、イシュー毎に管理される。イシューメッセージは、テストやジョブ等においてfailとなった場合に出力される。イシューメッセージは1以上のログメッセージを含む。イシューメッセージを含んだ1つのチャンクを、「イシューチャンク」と呼ぶことができる。イシューチャンクには、イシューに対する対処方法を表す情報が含まれている。
制御プログラム110は、ログメッセージを例えばログチャンク単位でログDB425から読み出す。また、制御プログラム110が、イシューメッセージを例えばイシューチャンク単位でイシューDB424から読み出す。制御プログラム110は、1つ以上のログチャンク内のログメッセージ群と、1つ以上のイシューチャンク内のログメッセージ群との比較、すなわち、ログパターンマッチングを行う。制御プログラム110は、適合したログチャンク及びイシューチャンクを互いに紐付ける。例えば、1つ以上のログチャンク内のログメッセージ群及び1つ以上のイシューチャンク内のログメッセージ群から、それぞれ、grep等により検索キーとなる単語(例えばユニークな単語)が抽出され、抽出された単語が一致した場合に、ログチャンク及びイシューチャンクが互いに紐付けられる。ログチャンクとイシューチャンクの紐付けが、ノウハウDB433に格納される。なお、ログチャンクとイシューチャンクの紐付け(ノウハウDB433の更新)は、定期的に行われてもよいし、コードのプッシュ(そのプッシュが原因で発生するプルリクエスト)が行われた場合に行われてもよい。
なお、本実施例では、ログチャンクは、事象毎に存在し、イシューチャンクは、イシュー毎に存在する。1つの事象に1以上のイシューが関連していることもあれば、1つのイシューが複数の事象を引き起こすこともある。このため、事象:イシューは、1:1であってもよいし、N:1であってもよいし、1:Mであってもよいし、N:Mであってもよい(N及びMは、2以上の整数)。
また、本実施例では、制御プログラム110は、読み出されたログチャンク及びイシューチャンクの各々におけるログメッセージのうちノイズに該当するメッセージ項目をマスクするマスク処理を実行する。制御プログラム110は、マスク処理後のログメッセージ群を用いてログパターンマッチングを行う。これにより、ログパターンマッチングの精度を高めること、言い換えれば、ログチャンクとイシューチャンクとの紐付けの精度を高めることができる。本実施例において「ノイズ」とは、ログパターンマッチングの精度を低下する原因と定義されたメッセージ項目、言い換えれば、ログパターンマッチングの目的に関与する度合いが低いと定義されたメッセージ項目である。本実施例では、ノイズに該当するメッセージ項目は、環境依存のメッセージ項目である。「環境依存のメッセージ項目」とは、同一のメッセージ項目であっても環境が異なると値が異なるメッセージ項目であって、例えば、ホスト名、IPアドレス及び時刻等がある。制御プログラム110は、ログメッセージ中のいずれの項目が環境依存のメッセージ項目であるかを、辞書管理テーブル224を参照することにより特定する。なお、本実施例では、マスク処理後のログメッセージは、ログ管理テーブル221とイシュー管理テーブル222のいずれにも格納されるが、ログ管理テーブル221のみに格納されてもよい。その場合、運用過程において、マスク処理が必要なログメッセージが関連付けられたクエリの処理においては、そのログメッセージのマスク処理後のログメッセージ(又はそれのハッシュ値)をキーにログ管理テーブル221から検索がされてよい。ヒットしたハッシュ値があれば、そのハッシュ値に対応した事象IDに対応するイシューIDをキーに、イシュー管理テーブル222から検索がされてよい。一方、マスク処理が不要なログメッセージ(例えばエラーコードのみ)が関連付けられたクエリの処理においては、そのログメッセージ(又はそれのハッシュ値)をキーに、ログ管理テーブル221ではなくイシュー管理テーブル222から検索がされてよい。
<運用過程>
開発が完了しリリースされたプログラム(業務アプリケーション341)の運用が開始された以降、その運用において何らかの障害が発生したとする。その場合、制御プログラム110は、運用者端末170のような外部システムから、発生した障害のログメッセージ群が関連付いたクエリを受信する。外部システムは、運用者端末170に代えて又は加えて、障害の根本原因を分析するRCA(Root Cause Analysis)システムのような分析システムであってもよい。
制御プログラム110は、クエリに関連付いているログメッセージ群をキーに、ノウハウDB433から、そのログメッセージ群に適合するログメッセージ群を探す。キーにされるログメッセージ群は、辞書管理テーブル224を参照することによりログメッセージ群(クエリに関連付いたログメッセージ群)に対してマスク処理が施された後のログメッセージ群である。
制御プログラム110は、検索結果に従うクエリ応答を、クエリの発行元(運用者端末170のような外部システム)に応答する。
適合するログメッセージ群(完全一致したログメッセージ群、又は、類似度が所定値以上のログメッセージ群)が見つかった場合、クエリ応答には、その適合するログメッセージ群に関連付いている対処方法等の情報が含まれている。運用者は、その対処方法等を基に、発生した障害の対処方法等を知ることができる。
適合するログメッセージ群が見つからなかった場合、運用者端末170のような外部システム(又は、制御プログラム110)は、クエリに関連付けられたログメッセージ群を所定のシステムに転送する。「所定のシステム」は、開発プラットフォーム160であってもよいし、開発プラットフォーム160へ情報を転送する中間システムであってもよい。いずれにしても、適合するログメッセージ群が見つからなかった場合、クエリに関連付けられたログメッセージ群が開発プラットフォーム160に入力されることになる。この場合、入力されたログメッセージ群と、そのログメッセージ群が開発過程において出力されなかったことを意味する情報とが、コードレビュープログラム426により、いずれかの開発者端末180に表示される。開発者は、その表示を見て、開発されたプログラム(業務アプリケーション341)のパッチを開発する等の対策を講じることができる。
以下、各管理テーブルの構成を説明する。
図5は、ログ管理テーブル221の構成を示す。
ログ管理テーブル221は、ログメッセージ群の構成及びログメッセージ順序等の情報を保持する。具体的には、ログ管理テーブル221は、事象毎にエントリを有する。各エントリに、事象ID501、テナントID502、ハッシュ値503、メッセージ群504及びメッセージ内容505といった情報が保持される。
事象ID501は、事象のID(識別情報)である。事象IDは、開発プラットフォーム600内のテストプログラム423により割り振られたIDであってもよいし、制御プログラム110により割り振られたIDであってもよい。テナントID502は、テナント(チーム又はチーム内のメンバ)のIDである。ハッシュ値503は、マスク処理されたログメッセージ群のハッシュ値である。メッセージ群504は、ログメッセージ群を構成する1以上のログメッセージにそれぞれ対応した1以上のメッセージIDである。メッセージ群504において、メッセージIDの順序は、ログメッセージ群におけるログメッセージの順序と同じである。メッセージIDは、ログメッセージの発生元により割り振られたIDであってもよいし、ログメッセージの正規化処理において制御プログラム110により割り振られたIDであってもよい。メッセージ内容505は、ログメッセージ群を構成する1以上のログメッセージ(生データ、又は、生データに対してフォーマット変換等の所定の正規化処理が施されたログメッセージ)と、その1以上のログメッセージにそれぞれ対応した1以上のマスクログメッセージとを含む。「マスクログメッセージ」とは、マスク処理が施されたログメッセージである。
図6は、イシュー管理テーブル222の構成を示す。
イシュー管理テーブル222は、発生したイシューと対処方法(解決策)とを表す情報を保持する。具体的には、イシュー管理テーブル222は、イシュー毎にエントリを有する。各エントリに、イシューID601、対処方法602、ハッシュ値609、メッセージ群603、メッセージ内容604、ジョブID605、担当者ID606,時刻607及びバグID608といった情報が保持される。
イシューID601は、イシューのIDである。イシューIDは、開発プラットフォーム600内のビルド支援プログラム42やテストプログラム423により割り振られたIDであってもよいし、制御プログラム110により割り振られたIDであってもよい。対処方法602は、イシューを解決するために施した処置である対処方法を表す。ハッシュ値609は、マスク処理されたログメッセージ群のハッシュ値である。メッセージ群603は、イシューに伴い発生した1以上のログメッセージにそれぞれ対応した1以上のメッセージIDである。メッセージ内容604は、メッセージ群603における1以上のログメッセージ(生データ、又は、生データに対して正規化処理が施されたログメッセージ)と、その1以上のログメッセージにそれぞれ対応した1以上のマスクログメッセージとを含む。ジョブID605は、イシューが発生した原因となったジョブ(例えば、ビルド支援プログラム42やテストプログラム423の実行単位)のIDである。担当者ID606は、ジョブを実行させた開発担当者のIDである。時刻607は、イシューが発生した時刻を表す。バグID608は、イシューとして発したバグのIDである。バグIDに、バグの内容(実体)が関連付けられていてよい。
メッセージ内容604内のログメッセージと、ログ管理テーブル221におけるメッセージ内容505内のログメッセージは、同一メッセージであっても、完全には一致しないことがあり得る。具体的には、例えば、イシューDB424に格納されるログメッセージには、イシューが発生した契機で人手または簡易自動(例えば、時刻などで機械的に切り取る)で情報が入力されるためである。例えば、ログDB425に格納されるログメッセージにはノイズが相対的に少なく(例えばノイズが無く)、イシューDB424に格納されるログメッセージにはノイズが相対的に多くてよい。このため、単純に、ログDB425内のログメッセージ群とイシューDB424内のログメッセージ群とを比較するログパターンマッチングを行っても、適合が得られるべきであっても適合が得られないことがある。本実施例では、上述したマスク処理をログメッセージ群に施した後にログパターンマッチングが行われるため、適合が得られるべきであっても適合が得られないといったことが生じる可能性を軽減できる。
図7は、ログイシュー管理テーブル223の構成を示す。
ログイシュー管理テーブル223は、ログチャンクとイシューチャンクとの紐付け、すなわち、事象とイシューとの紐付けを表す情報を保持する。具体的には、ログインシュー管理テーブル223は、事象毎にエントリを有する。各エントリに、事象ID701及びイシューID702といった情報が保持される。事象ID701は、事象のIDである。イシューID702は、イシューのIDである。1つのエントリにおいて、1つの事象IDと1つのイシューID、1つの事象IDとM個のイシューID、N個の事象IDと1つのイシューID、又は、N個の事象IDとM個のイシューIDが登録される。すなわち、事象ID:イシューIDは、1:1であってもよいし、N:1であってもよいし、1:Mであってもよいし、N:Mであってもよい(N及びMは、2以上の整数)。
図8は、辞書管理テーブル224の構成を示す。
辞書管理テーブル224は、ログメッセージのフォーマットに関する情報や環境依存のメッセージ項目に関する情報(例えば、定型文)を保持する。環境依存のメッセージ項目ではない非環境依存のメッセージ項目は、本実施例では、「特定」のメッセージ項目である。特定のメッセージ項目については、フォーマットが決まっている場合に、そのメッセージ項目の値を使って特徴点を計算することができる。特に、メッセージIDを抜き出せれば、メッセージ群504及び603を容易に作成可能である。
辞書管理テーブル224は、メッセージ項目毎にエントリを有する。各エントリには、辞書ID801、テナントID802、分類803、項目804及び特徴805といった情報が保持される。
辞書ID801は、辞書ID(例えばエントリの通し番号)である。テナントIDは、テナントのIDである。例えば、項目804が同じであってもテナントが異なっていれば特徴805(例えば項目のフォーマットや特徴(情報の取り方))が異なっていてもよい。分類803は、「環境依存」又は「特定」といったメッセージ項目種別を表す。項目804は、メッセージ項目の項目名を表す。特徴805は、メッセージ項目805のフォーマットや特徴を表す。
図9は、クエリ管理テーブル225の構成を示す。
クエリ管理テーブル225は、クエリに関する情報を保持する。具体的には、クエリ管理テーブル225は、クエリ毎にエントリを有する。各エントリには、クエリID901、テナントID902、処理方式903及び曖昧検索904といった情報が保持される。
クエリID901は、クエリのIDである。テナントID902は、クエリを発行したテナント(例えば、運用者、又は、運用者が属する運用チーム)のIDである。処理方式903は、クエリ(クエリに関連付いた1以上のログメッセージ)の処理方式(例えば「リアルタイム」又は「バッチ」)を表す。処理方式は、運用者等により手動で指定されてよい。曖昧検索904は、曖昧検索の有無を表す。
処理方式「リアルタイム」によれば、クエリに関連付いている1以上のログメッセージで構成されたログメッセージ群をキーとした検索が、クエリに応答してリアルタイムで実行され、検索結果に従うクエリ応答が返される。一方、処理方式「バッチ」によれば、クエリに関連付いている1以上のログメッセージで構成されたログメッセージ群をキーとした検索が、クエリに応答してバッチで実行され、検索結果に従うクエリ応答が返される。クエリに関連付けられるログメッセージ群の量が比較的小さい場合には、処理方式「リアルタイム」が好ましい。クエリに関連付けられるログメッセージ群の量が比較的多い場合やログメッセージ群を並列処理したい場合には、処理方式「バッチ」が好ましい。
曖昧検索「無し」は、完全一致が得られた場合に適合となる。曖昧検索「有り」は、部分一致が得られた場合に適合となる。なお、メッセージ群504に含まれるメッセージの1つ1つを完全一致で検索する方法と曖昧検索する方法がある。曖昧検索の場合、メッセージの順序入れ替えやメッセージの欠落が発生した入力に対して、部分一致で結果を返す方法だけでなく、一致度を数値化して検索結果を返す方法でもよい。
以下、開発過程と運用過程とに分けて、本実施例で行われる処理を説明する。
<開発過程>
図10は、ログ格納処理の流れを示す。
ログ格納処理は、ログメッセージ群のハッシュ値をノウハウDBに格納する処理である。以下、ログメッセージ群の読出し元を、ログDB425とイシューDB424とに分けて説明する。ログ格納処理は、ログDB425とイシューDB424のいずれかに事象単位又はイシュー単位のログメッセージが格納される都度に行われてもよいし、一定時間毎に行われてもよい。
<<ログメッセージ群の読出し元がログDB425>>
制御プログラム110は、ログDB425からログメッセージをログチャンク単位(事象単位)で読み出しメモリ302に格納する(S1001)。制御プログラム110は、辞書管理テーブル224を参照して、読み出されたログメッセージにマスク処理を施す(S1002)。具体的には、制御プログラム110は、ログメッセージのうち、辞書管理テーブル224を基に環境依存のメッセージ項目と特定された項目をマスクする。制御プログラム110は、事象に関連付いたマスクログメッセージ群のハッシュ値を算出する。制御プログラム110は、下記を、ログ管理テーブル221に登録する(S1004)。
・事象ID501:事象のID、
・テナントID502:テナントのID、
・ハッシュ値503:算出されたハッシュ値、
・メッセージ群504:事象に関連付いたログメッセージ群を構成する1以上のログメッセージにそれぞれ対応した1以上のメッセージID、
・メッセージ内容505:事象に関連付いたログメッセージ群の内容、及び、事象に関連付いたマスクログメッセージ群の内容。
<<ログメッセージ群の読出し元がイシューDB424>>
制御プログラム110は、イシューDB424からログメッセージをイシューチャンク単位(イシュー単位)で読み出しメモリ302に格納する(S1001)。制御プログラム110は、辞書管理テーブル224を参照して、読み出されたログメッセージにマスク処理を施す(S1002)。制御プログラム110は、事象に関連付いたマスクログメッセージ群のハッシュ値を算出する。制御プログラム110は、下記を、イシュー管理テーブル222に登録する(S1004)。
・イシューID601:イシューのID、
・対処方法602:対処方法(例えば、イシューチャンクに含まれており開発者等により手動で入力された情報)、
・ハッシュ値609:算出されたハッシュ値、
・メッセージ群603:イシューに関連付いたログメッセージ群を構成する1以上のログメッセージにそれぞれ対応した1以上のメッセージID、
・メッセージ内容604:イシューに関連付いたログメッセージ群の内容、及び、イシューに関連付いたマスクログメッセージ群の内容、
・ジョブID605:イシューに関連付いたジョブのID、
・担当者ID606:ジョブを実行させた開発担当者のID、
・時刻607:イシューが発生した時刻(イシューチャンクに含まれている時刻)、
・バグID608:イシューに関連付いているバグのID。
図11は、紐付け処理の流れを示す。
紐付け処理は、事象とイシューとの紐付けを行う処理である。紐付け処理は、ログ管理テーブル221又はイシュー管理テーブル222に情報が追加される都度に行われてもよいし、一定時間毎に行われてもよい。
制御プログラム110は、対象イシューIDに対応したハッシュ値609及びメッセージ群603を読み出す(S1101)。「対象イシューID」とは、所定の条件に該当するイシューのイシューIDである。「所定の条件に該当するイシュー」とは、例えば、時刻607が所定の時間帯(例えば現在時刻から一定時間過去)に属し、紐付けがされていないイシューである。
制御プログラム110は、読み出されたハッシュ値609に一致するハッシュ値503、又は、読み出されたメッセージ群603に完全一致(又は類似度が所定値以上の部分一致)するメッセージ群504を探す(S1102)。
制御プログラム110は、ハッシュ値503又はメッセージ群504が見つかった場合、見つかったハッシュ値503又はメッセージ群504に対応する事象IDと、対象イシューIDとを、ログイシュー管理テーブル223に登録する。
紐付け処理では、1つのイシューIDについて、1又は複数の事象がS1102の検索範囲とされてもよいし、複数のイシューIDについて、1又は複数の事象がS1102の検索範囲とされてもよい。これにより、ログイシュー管理テーブル223に登録される事象ID及びイシューIDが、1:1、N:1、1:M又はN:Mになる。
また、事象について、S1102の検索範囲は、対象イシューIDに対応した時刻607を基準とした所定の時間帯に属する時刻に発行されたログメッセージを含んだログメッセージ群のみであってもよい。この場合、ログ管理テーブル221に、時刻カラムが設けられ、エントリが、時刻の昇順又は降順で並んでいてよい。
<運用過程>
図12は、クエリ処理の流れを示す。クエリ処理は、ログメッセージ群(例えば、発生した障害に対応したログメッセージ群)が関連付けられたクエリを受信した場合に開始される。
制御プログラム110は、受信したクエリを解釈し、解釈結果を、クエリ管理テーブル225に登録する(S1201)。クエリ管理テーブル225には、クエリID901、テナントID902、処理方式903及び曖昧検索904が登録される。登録される情報902〜904は、受信したクエリに関連付いている情報である。また、S1201の解釈により、メッセージ群(受信したクエリに関連付いているログメッセージ群の1以上のメッセージID)が特定される。
制御プログラム110は、受信したクエリに対応した処理方式が「リアルタイム」か「バッチ」かを判断する(S1202)。
受信したクエリに対応した処理方式が「リアルタイム」の場合、制御プログラム110は、受信したクエリに関連付いているログメッセージ群における各ログメッセージにマスク処理を施す(S1203)。制御プログラム110は、そのマスク処理後のログメッセージ群のハッシュ値を算出する(S1204)。制御プログラム110は、(x1)算出されたハッシュ値に一致するハッシュ値503、(x2)S1201の解釈により特定されたメッセージ群(1以上のメッセージID)と完全一致する1以上のメッセージ群504、及び、(x3)S1201の解釈により特定されたメッセージ群(1以上のメッセージID)と部分一致(例えば類似度は所定値以上)するメッセージ群504、を検索する(S1205)。曖昧検索「無し」の場合、(x3)の検索は実行されない。
(x1)〜(x3)のうちの少なくとも1つが見つかった場合(S1206:Yes)、制御プログラム110は、S1207を実行する。すなわち、制御プログラム110は、見つかった情報に対応した事象IDに紐付いているイシューIDをログイシュー管理テーブル223から特定する。制御プログラム110は、特定されたイシューIDに対応した情報601〜608のうちの少なくとも対処方法603をイシュー管理テーブル222から特定し、特定した対処方法603等を含んだクエリ応答を、クエリの発行元に返却する。クエリ応答に含まれている情報が、クエリの発行元(例えば運用者端末170)に表示される。表示画面の一例を図13に示す。これにより、クエリの発行元(例えば運用者)が、障害の対処方法を知ることができる。
(x1)〜(x3)のうちのいずれも見つからなかった場合(S1206:No)、制御プログラム110は、該当無しを含んだクエリ応答を、クエリの発行元に返却する(S1215)。そのクエリ応答に含まれている情報が、クエリの発行元(例えば運用者端末170)に表示される。表示画面の一例を図14に示す。図4に示したように、運用者(又は、該当無しを検知した制御プログラム110)は、クエリに関連付けられているログメッセージ群を所定のシステム(例えばコードレビュープログラム426)に転送してよい。そのログメッセージ群は、いずれかの開発者端末180を通じて開発者向けに表示される。開発者は、そのログメッセージ群を基に、パッチのような対策を講じることができる。
受信したクエリに対応した処理方式が「バッチ」の場合、制御プログラム110は、受信したクエリに関連付いているログメッセージ群を基に障害箇所を特定する(S1211)。制御プログラム110は、受信したクエリに関連付いているログメッセージ群である指定ログメッセージ群と、特定された障害箇所に関連するログメッセージ群である関連ログメッセージ群とを特定し、その各ログメッセージ群についてS1212〜S1214を実行する(ループ(A))。「関連ログメッセージ群」は、例えば、バージョン管理プログラム421により管理されているツリー構造の更新履歴を参照することで、特定可能である。すなわち、「関連ログメッセージ群」は、障害ログメッセージ群に対応したノードの上位ノード(例えば親ノード)又は下位ノード(例えば子ノード)に対応したログメッセージ群でよい。
ループ(A)において、各ログメッセージ群について、S1212〜S1214は、S1203〜S1205とそれぞれ同様である。
ループ(A)の終了後、少なくとも1つのログメッセージ群について(x1)〜(x3)の少なくとも1つが見つかった場合、S1207が実行される。ループ(A)の終了後、いずれのログメッセージ群についても(x1)〜(x3)のいずれも見つからなかった場合、S1215が実行される。
本実施例によれば、開発過程において発生した2種類のログ情報(事象に関するログ情報とイシューに関するログ情報)を紐付けたノウハウDB433が構築される。これにより、開発過程とは別の運用過程(開発チームとは別種のチームである運用チーム)において障害等の問題が発生しても、その問題に関する情報をキーにノウハウDB433を参照することで、運用過程よりも前の開発過程において得られた知識としての対処方法を取得することができる。言い換えれば、その問題が運用過程において初めて発生した問題であったとしても、開発過程において発生した問題であれば、対処方法を知ることができる。
また、一般に、運用者が単にログメッセージ群を見ても障害の対処方法を予測することは困難であるが、本実施例によれば、運用過程で発生したログメッセージ群を関連付けたクエリを出すことによって、そのログメッセージ群のログパターンマッチングが行われ、そのマッチングの結果として、開発過程で得られた対処方法を知ることができる。これにより、ログメッセージ群に基づいて対処方法を知ることは容易である。
また、開発過程と運用過程のように、異種の複数のチーム間では、問題の定義が異なることがある。例えば、開発過程では、コードKが入力されたらエラーが出力されることが正常であり、運用過程では、コードKが入力されることによってエラーが出力されることが異常(問題)であることがある(言い換えればコードKが入力されることが問題)。このように、問題の定義の違いがあっても、上述したログメッセージ群のマッチングの結果として、クエリに対する応答が返されるので、利便性が高い。
そして、ログメッセージ群のマッチングは、マスクログメッセージ群を用いたログパターンマッチングである。すなわち、環境依存のメッセージ項目というノイズがマスクされ、マスクされた後のログメッセージ群を用いてパターンマッチングが行われる。このため、マッチングの精度を高めることができる。
また、本実施例によれば、例えば、アプリケーション開発において、アプリケーションのトラブルシューティングを容易にすることができる。つまり、トラブルシューティングが対処方法として開発過程において準備されていればよい。
また、本実施例によれば、例えば、本番運用時のトラブルシューティングを容易にすることもできる。
以上、一実施例を説明したが、本発明の範囲をその実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。例えば、以下の少なくとも1つが可能である。
例えば、大規模アプリケーション開発におけるシステムのトラブルシューティングを容易にすることができる。つまり、同種の複数のチームの一例である複数の開発チームでアプリケーションを開発する環境において、いずれかの開発チームで得られた問題とその対処方法を他の開発チームで利用することができる。
また、例えば、ノウハウDB433が複数バージョン用意されてよい。それらのバージョンと、バージョン管理プログラム421により管理されているバージョンとが紐付けられてよい。バージョン管理プログラム421により管理されているバージョンであって指定されたバージョンに紐付いたバージョンのノウハウDBが、参照対象のノウハウDBであってよい。
101:管理システム

Claims (10)

  1. 開発対象プログラムであるサービスシステムについて第1チームに関する処理により出力されたログ情報及びイシュー情報を管理するシステムである第1システムと、前記サービスシステムについて第2チームに関するシステムである第2システムとに接続されたインタフェース部と、
    前記インタフェース部に接続されたプロセッサ部と
    を有し、
    前記プロセッサ部が、
    (A)前記第1システムから抽出された1以上のログチャンクと1以上のイシューチャンクとが紐付いた情報である管理情報を構築し、
    ログチャンクは、事象毎の情報であって、事象に関連付いた1以上のログメッセージである事象ログメッセージ群を含み、
    イシューチャンクは、イシュー毎の情報であって、イシューに関連付いた1以上のログメッセージであるイシューログメッセージ群と、そのイシューの対処方法を表す情報である対処方法情報とを含み、
    (B)問題に関する1以上のログメッセージである指定ログメッセージ群が関連付いた問合せを前記第2システムから受信した場合、前記指定ログメッセージ群を用いたログパターンマッチングにより、前記指定ログメッセージ群に適合するログメッセージ群を前記管理情報から検索し、
    (C)見つかったログメッセージ群に対応した対処方法情報が表す対処方法を含んだ応答を前記第2システムに表示する、
    問合せ対応システム。
  2. 前記管理情報において紐付いている1以上のログチャンクと1以上のイシューチャンクは、その1以上のログチャンク内の1以上の事象ログメッセージ群と、その1以上のイシューチャンク内の1以上のイシューログメッセージ群とのログパターンマッチングの結果として適合が得られたチャンクである、
    請求項1記載の問合せ対応システム。
  3. 前記プロセッサ部は、(A)の紐付けのログパターンマッチングと(B)のログパターンマッチングのいずれも、マスクログメッセージ群のログパターンマッチングであり、
    前記マスクログメッセージ群は、ログメッセージのうち環境依存のメッセージ項目がマスクされたログメッセージ群である、
    請求項2記載の問合せ対応システム。
  4. (B)の検索の結果としてログメッセージ群が見つからなかった場合、前記プロセッサ部は、前記指定ログメッセージ群を前記第1チームに転送することを提示した応答を前記第2システムに表示する、
    請求項1記載の問合せ対応システム。
  5. 前記第1チーム及び前記第2チームは、異種のチームである、
    請求項1記載の問合せ対応システム。
  6. 前記第1チームは、開発のチームであり、
    前記第2チームは、運用のチームである、
    請求項5記載の問合せ対応システム。
  7. 前記第1チーム及び前記第2チームは、同種のチームである、
    請求項1記載の問合せ対応システム。
  8. 前記第1チーム及び前記第2チームは、開発のチームである、
    請求項7記載の問合せ対応システム。
  9. (A)開発対象プログラムであるサービスシステムについて第1チームに関する処理により出力されたログ情報及びイシュー情報を管理するシステムである第1システムから抽出された1以上のログチャンクと1以上のイシューチャンクとが紐付いた情報である管理情報を構築し、
    ログチャンクは、事象毎の情報であって、事象に関連付いた1以上のログメッセージである事象ログメッセージ群を含み、
    イシューチャンクは、イシュー毎の情報であって、イシューに関連付いた1以上のログメッセージであるイシューログメッセージ群と、そのイシューの対処方法を表す情報である対処方法情報とを含み、
    (B)問題に関する1以上のログメッセージである指定ログメッセージ群が関連付いた問合せを、前記サービスシステムについて第2チームに関するシステムである第2システムから受信した場合、前記指定ログメッセージ群を用いたログパターンマッチングにより、前記指定ログメッセージ群に適合するログメッセージ群を前記管理情報から検索し、
    (C)見つかったログメッセージ群に対応した対処方法情報が表す対処方法を含んだ応答を前記第2システムに表示する、
    問合せ対応方法。
  10. (A)開発対象プログラムであるサービスシステムについて第1チームに関する処理により出力されたログ情報及びイシュー情報を管理するシステムである第1システムから抽出された1以上のログチャンクと1以上のイシューチャンクとが紐付いた情報である管理情報を構築し、
    ログチャンクは、事象毎の情報であって、事象に関連付いた1以上のログメッセージである事象ログメッセージ群を含み、
    イシューチャンクは、イシュー毎の情報であって、イシューに関連付いた1以上のログメッセージであるイシューログメッセージ群と、そのイシューの対処方法を表す情報である対処方法情報とを含み、
    (B)問題に関する1以上のログメッセージである指定ログメッセージ群が関連付いた問合せを、前記サービスシステムについて第2チームに関するシステムである第2システムから受信した場合、前記指定ログメッセージ群を用いたログパターンマッチングにより、前記指定ログメッセージ群に適合するログメッセージ群を前記管理情報から検索し、
    (C)見つかったログメッセージ群に対応した対処方法情報が表す対処方法を含んだ応答を前記第2システムに表示する、
    ことをコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
JP2018536608A 2016-09-01 2016-09-01 問合せ対応システム及び方法 Active JP6561212B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/075598 WO2018042584A1 (ja) 2016-09-01 2016-09-01 問合せ対応システム及び方法

Publications (2)

Publication Number Publication Date
JPWO2018042584A1 true JPWO2018042584A1 (ja) 2018-12-06
JP6561212B2 JP6561212B2 (ja) 2019-08-14

Family

ID=61300282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018536608A Active JP6561212B2 (ja) 2016-09-01 2016-09-01 問合せ対応システム及び方法

Country Status (3)

Country Link
US (1) US10503500B2 (ja)
JP (1) JP6561212B2 (ja)
WO (1) WO2018042584A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048429B2 (en) * 2018-04-19 2021-06-29 Oracle International Corporation Optimized logging module
JP2020013300A (ja) * 2018-07-18 2020-01-23 Zホールディングス株式会社 監視装置、監視方法、およびプログラム
US11061800B2 (en) * 2019-05-31 2021-07-13 Microsoft Technology Licensing, Llc Object model based issue triage
US11587095B2 (en) * 2019-10-15 2023-02-21 Microsoft Technology Licensing, Llc Semantic sweeping of metadata enriched service data
CN112799649B (zh) * 2020-06-15 2023-09-12 中兴通讯股份有限公司 代码构建方法、装置、设备和存储介质
CN113176978B (zh) * 2021-04-30 2023-07-21 平安壹钱包电子商务有限公司 基于日志文件的监控方法、系统、设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085003A (ja) * 2001-09-06 2003-03-20 Matsushita Electric Ind Co Ltd 障害復旧援助方法、及び、障害復旧援助システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001527B1 (en) * 2004-12-21 2011-08-16 Zenprise, Inc. Automated root cause analysis of problems associated with software application deployments
JP2012190219A (ja) * 2011-03-10 2012-10-04 Fujitsu Ltd 情報処理装置、およびトレースログ取得方法
JP2016024786A (ja) 2014-07-24 2016-02-08 富士通フロンテック株式会社 ログ解析装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085003A (ja) * 2001-09-06 2003-03-20 Matsushita Electric Ind Co Ltd 障害復旧援助方法、及び、障害復旧援助システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
塩塚 大 ほか: "「dcNavi:デバッグを支援する関心事指向推薦システム」", 情報処理学会論文誌, vol. 第53巻, 第2号, JPN6016042192, 15 February 2012 (2012-02-15), pages 631 - 643, ISSN: 0004072991 *

Also Published As

Publication number Publication date
US20190205129A1 (en) 2019-07-04
US10503500B2 (en) 2019-12-10
WO2018042584A1 (ja) 2018-03-08
JP6561212B2 (ja) 2019-08-14

Similar Documents

Publication Publication Date Title
JP6561212B2 (ja) 問合せ対応システム及び方法
JP5684946B2 (ja) イベントの根本原因の解析を支援する方法及びシステム
US8140907B2 (en) Accelerated virtual environments deployment troubleshooting based on two level file system signature
JP6048038B2 (ja) 情報処理装置,プログラム,情報処理方法
US7421490B2 (en) Uniquely identifying a crashed application and its environment
US9311176B1 (en) Evaluating a set of storage devices and providing recommended activities
US11010238B2 (en) Management system of storage system
US8656126B2 (en) Managing snapshots of virtual server
US6351752B1 (en) Method and apparatus for detecting changes to a collection of objects
EP1955235A2 (en) System and method of managing data protection resources
WO2012053104A1 (ja) 管理システム、及び管理方法
US20200073781A1 (en) Systems and methods of injecting fault tree analysis data into distributed tracing visualizations
US11762833B2 (en) Data discovery of personal data in relational databases
US20150370619A1 (en) Management system for managing computer system and management method thereof
US9021078B2 (en) Management method and management system
JP5417264B2 (ja) 分析情報提供方法
US20150012622A1 (en) Information system management apparatus, information system management method, and program
US9367380B2 (en) Dynamically altering error logging activities in a computing system
US12067387B2 (en) Software modification error resolution and management
US11762729B2 (en) Apparatus and method for anomaly countermeasure decision, execution and evaluation
WO2018070211A1 (ja) 管理サーバ、管理方法及びそのプログラム
WO2015019488A1 (ja) 管理システム及びその管理システムによるイベント解析方法
US12073295B2 (en) Machine learning model operation management system and method
JP2018063518A5 (ja)
US20220405183A1 (en) Management system and management method for managing information system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190722

R150 Certificate of patent or registration of utility model

Ref document number: 6561212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150