JP5152206B2 - パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法 - Google Patents

パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法 Download PDF

Info

Publication number
JP5152206B2
JP5152206B2 JP2009554174A JP2009554174A JP5152206B2 JP 5152206 B2 JP5152206 B2 JP 5152206B2 JP 2009554174 A JP2009554174 A JP 2009554174A JP 2009554174 A JP2009554174 A JP 2009554174A JP 5152206 B2 JP5152206 B2 JP 5152206B2
Authority
JP
Japan
Prior art keywords
patch
information
failure
computer
program
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.)
Expired - Fee Related
Application number
JP2009554174A
Other languages
English (en)
Other versions
JPWO2009104268A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009104268A1 publication Critical patent/JPWO2009104268A1/ja
Application granted granted Critical
Publication of JP5152206B2 publication Critical patent/JP5152206B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

この発明は、計算機に適用するパッチの候補を選択するパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法に関する。
従来、計算機に発生した障害を解消し、または計算機に障害が発生することを未然に防ぐために、計算機にインストールされた各プログラムの差分であるパッチの提供がおこなわれている。パッチの提供は、計算機にインストールされた各プログラムのメーカーが管理するサーバなどによって提供される。クライアント側の計算機は、パッチを提供するサーバからインターネットなどを介してパッチをダウンロードして、自装置に適用する。
パッチは、障害の大小を問わず膨大な数が提供されるため、個別の計算機に必要なパッチを選択することは困難である。このため、従来、サーバが提供可能なすべてのパッチをダウンロードして計算機に適用したり、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼したりしている。また、公開障害情報に基づいてパッチを特定する技術が開示されている(たとえば、下記特許文献1参照。)。
特開2003−233512号公報
しかしながら、すべてのパッチをダウンロードして計算機に適用する場合は、ダウンロードおよび適用処理に時間がかかり、計算機の運用を長時間停止しなければならないという問題がある。また、必要以上のパッチを適用することで、レベルダウン(適用済みパッチによる2次障害)の可能性が高まるという問題がある。また、すべてのパッチを適用している場合は、レベルダウンが発生した際に、膨大な数のパッチの中からレベルダウンを引き起こしたパッチを特定することは困難であるという問題がある。
また、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼する場合は、作業者のスキルによってはパッチの選択の精度が悪かったり、複数のパッチを組み合わせる必要がある場合などはスキルの高い作業者であってもパッチの選択が困難であったりするという問題がある。また、上記特許文献1には、具体的にどのような公開障害情報を用いてどのような処理によってパッチを特定するのかについて開示されていない。
この発明は、上述した従来技術による問題点を解消するため、必要最小限のパッチの候補を自動的に選択することができるパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、計算機の障害を検出し、検出された障害が発生したときの前記計算機の記録情報を取得し、取得された記録情報から前記障害を特定する情報を抽出し、パッチとその選択条件が記憶されたデータベースに基づいて、抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、特定された特定結果を出力することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報によって検索することで、計算機において発生した障害に応じたパッチの候補を自動的に選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のシステムログを取得し、取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、前記データベースに基づいて、抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのシステムログから抽出したエラーメッセージを抽出することで、障害に応じたパッチを精度よく選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のプログラムログを取得し、取得されたプログラムログから、前記障害を特定する情報を抽出することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのプログラムログから抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のダンプ情報を取得し、前記記録情報として取得されたダンプ情報から前記障害を特定する情報を抽出することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのダンプ情報から抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記計算機のシステム情報を取得し、取得されたシステム情報が前記選択条件と一致するパッチを特定することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報および計算機のシステム情報の両方によって検索することで、計算機において発生した障害に応じたパッチの候補を精度よく選択することができる。
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することを要件とする。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、必要最小限のパッチの候補を自動的に選択することができるという効果を奏する。
実施の形態にかかるパッチ候補選択装置の概要図である。 実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。 実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。 計算機のハードウエア構成の一例を示すブロック図である。 計算機のシステム情報の一例を示す説明図である。 公開パッチ情報の具体例1を示す説明図である。 公開障害情報の具体例1を示す説明図である。 パッチデータの具体例1を示す説明図である。 公開パッチ情報の具体例2を示す説明図である。 公開障害情報の具体例2を示す説明図である。 パッチデータの具体例2を示す説明図である。 公開パッチ情報の具体例3を示す説明図である。 公開障害情報の具体例3を示す説明図である。 パッチデータの具体例3を示す説明図である。 パッチ適用情報の具体例を示す説明図である。 パッチ候補選択装置の動作の一例を示すフローチャートである。 図16に示したシステムログ解析の具体例を示すフローチャートである。 図16に示したプログラムログ解析の具体例を示すフローチャートである。 プログラムログの一例を示す説明図である。 図16に示したダンプ情報解析の具体例を示すフローチャートである。 ダンプ情報の一例を示す説明図である。 図16に示したレベルダウン解析の具体例を示すフローチャートである。
以下に添付図面を参照して、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法の好適な実施の形態を詳細に説明する。
まず、この発明の実施の形態にかかるパッチ候補選択装置の概要について説明する。図1は、実施の形態にかかるパッチ候補選択装置の概要図である。図1に示すように、実施の形態にかかるパッチ候補選択装置100は、検出部110と、取得部120と、抽出部130と、データベース部140と、特定部150と、出力部160と、を備えている。
パッチ候補選択装置100は、たとえば、サーバからパッチの提供を受けるクライアント側の計算機10に適用される。検出部110は、計算機10で実行したプログラム停止などの、計算機10において発生した障害を検出する。取得部120は、検出部110によってプログラムの停止が検出されたときの計算機10の記録情報を取得する。
ここでは、取得部120は、プログラムの停止が検出されたときの計算機10の記録情報として、プログラムの停止の際に出力されたシステムログ121「…Error:xb…」と、プログラムの停止が検出されたときの計算機10のメモリのダンプ情報122「…code:yb,address:zb…」を取得する。
抽出部130は、取得部120によって取得されたシステムログ121およびダンプ情報122から障害を特定する情報を抽出する。ここでは、抽出部130は、取得部120によって取得されたメッセージからエラーメッセージ131「Error:xb」を抽出する。また、抽出部130は、取得部120によって取得されたダンプ情報122から特定のダンプ情報132「code:yb,address:zb」を抽出する。
データベース部140には、複数のパッチA,B,C,…と、パッチA,B,C,…のそれぞれの選択条件が記憶されたデータベースが格納されている。パッチの選択条件とは、パッチA,B,C,…の中から、計算機10の障害に応じたパッチを選択するための条件である。ここでは、各パッチの選択条件として、エラーメッセージおよび特定のダンプ情報が記憶されている。
データベース部140には、たとえば、パッチAの選択条件として、エラーメッセージ「Error:xa」および特定のダンプ情報「code:ya,address:za」が記憶されている。また、データベース部140には、パッチBの選択条件として、エラーメッセージ「Error:xb」および特定のダンプ情報「code:yb,address:zb」が記憶されている。また、データベース部140には、パッチCの選択条件として、エラーメッセージ「Error:xb」(パッチBと同じ)および特定のダンプ情報「code:yc,address:zc」が記憶されている。
特定部150は、データベース部140に格納されたデータベースに基づいて、抽出部130によって抽出されたエラーメッセージ131および特定のダンプ情報132が選択条件を満たすパッチをパッチA,B,C,…の中から特定する。ここでは、特定部150は、抽出部130によって抽出されたエラーメッセージ131「Error:xb」および特定のダンプ情報132「code:yb,address:zb」の両方が選択情報を満たすパッチBを特定する。
また、特定部150は、パッチA,B,C,…のうちの計算機10に適用済みのパッチを除いた残余のパッチの中からパッチを特定してもよい。この場合は、データベース部140に、各パッチの選択条件として、そのパッチが計算機10に適用されているか否かの情報を記憶させておく。
また、特定部150は、計算機10のシステム情報が選択条件と一致するパッチを特定してもよい。計算機10のシステム情報とは、計算機10が備えるハードウエア構成およびソフトウエア構成などに関する情報である。この場合は、データベース部140に、各パッチの選択条件としてシステム情報に関する選択条件を記憶させておく。
また、特定部150は、選択条件を満たすパッチを特定できなかった場合は、計算機10に適用済みのパッチのうちの、検出部110によって検出された障害の発生日時と適用日時が一致するパッチを特定してもよい。この場合は、データベース部140に、各パッチの選択条件としてそのパッチが計算機10に適用されているか否かの情報や、そのパッチが計算機10に適用されている場合はそのパッチの適用日時の情報を記憶させておく。
出力部160は、特定部150によって特定されたパッチBを適用パッチ候補として出力する。ここでは、符号161に示すように、計算機10の表示画面上にパッチBを適用パッチ候補として表示して、パッチBを適用するか否かの入力(Y/N)をユーザから受け付ける。パッチBを適用する旨の入力(Y)をユーザから受け付けると、計算機10は、パッチを提供するサーバからパッチBをダウンロードして自装置に適用する。
また、出力部160は、特定部150が、計算機10に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定した場合は、特定部150によって特定されたパッチをレベルダウンパッチ候補として出力する。たとえば、計算機10の表示画面上に、レベルダウンパッチ候補を表示して、そのパッチの適用を解除するか否かの入力(Y/N)をユーザから受け付ける。パッチの適用を解除する旨の入力(Y)をユーザから受け付けると、計算機10は、自装置に適用されたそのパッチを解除する。
(パッチ候補選択装置のハードウエア構成)
つぎに、本実施の形態にかかるパッチ候補選択装置のハードウエア構成について説明する。図2は、実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。図2において、パッチ候補選択装置100は、コンピュータ本体210と、入力装置220と、出力装置230と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク240に接続し、ネットワーク240を介してパッチの提供サーバへ接続可能である。
コンピュータ本体210は、CPU,メモリ,インターフェースを有する。CPUは、パッチ候補選択装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク211,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク211はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク211およびフラッシュメモリはコンピュータ本体210に対し着脱自在である。インターフェースは、入力装置220からの入力、出力装置230への出力、ネットワーク240に対する送受信の制御をおこなう。
また、入力装置220としては、キーボード221、マウス222、スキャナ223などがある。キーボード221は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス222は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ223は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体210内のメモリに格納される。
また、出力装置230としては、ディスプレイ231、スピーカ232、プリンタ233などがある。ディスプレイ231は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。スピーカ232は、効果音や読み上げ音などの音声を出力する。また、プリンタ233は、画像データや文書データを印刷する。
(パッチ候補選択装置の機能的構成)
つぎに、パッチ候補選択装置の機能的構成について説明する。図3は、実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。図3において、パッチ候補選択装置100は、公開パッチ情報取得部310と、障害情報取得部320と、パッチDBプラグイン330と、監視プログラム340と、システムログ取得部351と、プログラムログ取得部352と、ダンプ情報取得部353と、システムログ解析プラグイン361と、プログラムログ解析プラグイン362と、ダンプ情報解析プラグイン363と、パッチ適用情報取得部370と、システム情報取得部380と、を備えている。
これら各機能310〜380は、パッチ候補選択装置100の記憶部に記憶された当該機能310〜380に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。
また、各機能310〜380からの出力データは上記記憶部に保持される。また、図3中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、公開パッチ情報取得部310は、パッチを提供するサーバなどから公開パッチ情報を取得する。公開パッチ情報は、サーバが提供可能な各パッチと、パッチごとの説明の情報である。公開パッチ情報取得部310は、取得した公開パッチ情報をパッチDBプラグイン330へ出力する。
公開パッチ情報は、たとえば、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報からなる。パッチの適用条件は、たとえば、OSの種別および版数、プログラム名および版数、関連パッチ番号、その他の付帯条件からなる。障害検出情報は、通常暗号化されているが、公開パッチ情報取得部310は、このような障害検出情報を復号化して取得する。
障害情報取得部320は、公開障害情報管理DBおよびパッチ情報DBを取得する。公開障害情報管理DBおよびパッチ情報DBは、計算機10が備えるハードウエアやソフトウエアに関するトラブルやパッチの情報のデータベースである。障害情報取得部320は、公開障害情報管理DBおよびパッチ情報DBを、計算機10が備えるハードウエアやソフトウエアのメーカーが管理するサーバなどから取得する。
障害情報取得部320は、取得したデータベースをパッチDBプラグイン330へ出力する。公開障害情報管理DBは、障害を識別するトラブル管理番号、トラブルの現象の要約または詳細、トラブルの現象の発生条件、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などを含んでいる。
パッチ情報DBは、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要または詳細、パッチの適用が必要な現象の要約または詳細、パッチに対応した現象の発生条件、パッチに対応したトラブルへの対応方法、パッチに対応したトラブルの回避策、パッチを検索するためのキーワード、パッチに対応したトラブルの障害検出情報などを含んでいる。公開障害情報管理DBおよびパッチ情報DBの障害検出情報は、通常暗号化されているが、障害情報取得部320は、このような障害検出情報を復号化して取得する。
パッチDBプラグイン330は、公開パッチ情報取得部310から出力された公開パッチ情報と、障害情報取得部320から出力された公開障害情報管理DBおよびパッチ情報DBに基づいてデータベース331を作成する。データベース331は、図1のデータベース部140に相当する。データベース331には、それぞれ異なるパッチに対応したパッチデータが記憶されている。パッチデータには、対応するパッチに関する情報と、対応するパッチを選択するための選択条件とが含まれている。
また、パッチDBプラグイン330は、パッチ適用情報取得部370から出力されたパッチ適用情報に基づいて、データベース331の各パッチデータに対して、計算機10への適用に関する情報を追加してもよい。計算機10への適用に関する情報とは、そのパッチが計算機10に適用済みか否かの情報や、適用済みである場合の適用日時や、適用プログラムなどの情報である。
監視プログラム340は、図1に示した検出部110および特定部150の機能に相当する。監視プログラム340は、計算機10の障害を検出する。計算機10の障害とは、たとえば計算機10のシステムエラーや、計算機10にインストールされたプログラムの停止などである。監視プログラム340は、たとえばシステムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363から出力される公開障害情報に基づいて障害を検出する。
監視プログラム340は、計算機10の障害を検出すると、システムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363からそれぞれ出力された障害を特定する情報を取得して、取得した情報がデータベース331において選択条件を満たすパッチを特定する。これにより、計算機10において発生した障害に応じたパッチをデータベース331から自動的に選択することができる。
また、監視プログラム340は、障害を特定する情報がデータベース331において選択条件を満たすパッチを特定できない場合に、計算機10に適用済みのパッチの中で、計算機10への適用日時が、障害の発生日時と一致するパッチをレベルダウンの可能性のあるパッチとして特定してもよい。これにより、計算機10に適用済みのパッチの中から、レベルダウンの可能性があるパッチを自動的に選択することができる。
計算機10に適用済みのパッチおよびその適用日時の情報は、データベース331やパッチ適用情報取得部370から出力されたパッチ適用情報から取得することができる。監視プログラム340は、特定した適用パッチ候補またはレベルダウンの可能性のあるパッチの情報を出力部390へ出力する。
システムログ取得部351、プログラムログ取得部352およびダンプ情報取得部353は、図1に示した取得部120の機能に相当する。システムログ取得部351は、計算機10のシステムログを取得する。システムログとは、計算機10のシステムメッセージのログである。システムログ取得部351は、取得したシステムログをシステムログ解析プラグイン361へ出力する。
プログラムログ取得部352は、計算機10にインストールされた各プログラムのプログラムログを取得する。プログラムログとは、プログラムの動作のログである。プログラムログ取得部352は、計算機10上で動作するプログラムごとにプログラムログを取得する。システムログ取得部351は、取得したプログラムログをプログラムログ解析プラグイン362へ出力する。
ダンプ情報取得部353は、計算機10が備えるメモリのダンプ情報を蓄積する。ここでいうメモリとは、計算機10が備えるRAMなどの、プログラムを実行するためのワークエリアとして用いられるメモリである。計算機10がこのようなメモリを複数備える場合は、ダンプ情報取得部353は、メモリごとにダンプ情報を蓄積する。ダンプ情報取得部353は、取得したダンプ情報をダンプ情報解析プラグイン363へ出力する。
システムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363は、それぞれシステムログ取得部351、プログラムログ取得部352およびダンプ情報取得部353から出力された各情報に基づいて公開障害情報を監視プログラム340へ出力する。また、システムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363は、図1に示した抽出部130の機能に相当する。
システムログ解析プラグイン361は、システムログ取得部351から出力されたシステムログのうちの、監視プログラム340が計算機10の障害を検出したときのシステムログからエラーメッセージを抽出する。システムログ解析プラグイン361は、抽出したエラーメッセージを監視プログラム340へ出力する。
プログラムログ解析プラグイン362は、プログラムログ取得部352から出力されたシステムログのうちの、監視プログラム340が計算機10の障害を検出したときのプログラムログから障害検出情報を抽出する。プログラムログ解析プラグイン362は、抽出したプログラムログの障害検出情報を監視プログラム340へ出力する。
ダンプ情報解析プラグイン363は、ダンプ情報取得部353から出力されたダンプ情報のうちの、監視プログラム340が計算機10の障害を検出したときのダンプ情報から障害検出情報を抽出する。ダンプ情報解析プラグイン363は、抽出したダンプ情報の障害検出情報を監視プログラム340へ出力する。
パッチ適用情報取得部370は、計算機10のパッチ適用情報を取得する。パッチ適用情報とは、計算機10に適用済みのパッチに関する情報である。パッチ適用情報には、計算機10に適用済みのパッチを識別するパッチ番号や、そのパッチの適用日時や、そのパッチの適用プログラムなどの情報が含まれている。パッチ適用情報取得部370は、計算機10にパッチが適用されるごとにパッチ適用情報を更新して、更新したパッチ適用情報をパッチDBプラグイン330へ出力する。
システム情報取得部380は、計算機10のシステム情報を取得する。システム情報とは、計算機10が備えるハードウエアに関する情報や、計算機10にインストールされたソフトウエアに関する情報である。システム情報取得部380は、取得したシステム情報を監視プログラム340へ出力する。
出力部390は、図1に示した出力部160の機能に相当する。出力部390は、監視プログラム340によって特定された適用パッチ候補を、たとえば図2に示したディスプレイ231に表示(図1符号161参照)する。また、出力部390は、監視プログラム340によって特定されたレベルダウンパッチ候補をディスプレイ231に表示する。出力部390が表示する適用パッチ候補またはレベルダウンパッチ候補は複数でもよい。
出力部390によって適用パッチ候補が表示されると、ユーザは、たとえば図2に示したキーボード221やマウス222などによって、表示された適用パッチ候補を計算機10に適用するか否かの指示を入力する。適用パッチ候補を適用する旨の入力をユーザから受け付けると、計算機10は、パッチを提供するサーバから、適用する旨の入力を受け付けた適用パッチ候補をダウンロードして自装置に適用する。
出力部390によってレベルダウンパッチ候補が表示されると、ユーザは、たとえば図2に示したキーボード221やマウス222などによって、表示されたレベルダウンパッチ候補の適用を解除するか否かの指示を入力する。レベルダウンパッチ候補の適用を解除する旨の入力をユーザから受け付けると、計算機10は、適用する旨の入力を受け付けたレベルダウンパッチ候補を自装置から解除する。
出力部390によって適用パッチ候補が複数表示されている場合は、ユーザは、複数の適用パッチ候補の中から選択的に、適用パッチ候補を適用する旨の入力をおこなうことができる。また、出力部390によってレベルダウンパッチ候補が複数表示されている場合は、ユーザは、複数のレベルダウンパッチ候補の中から選択的に、レベルダウンパッチ候補の適用を解除する旨の入力をおこなうことができる。
また、出力部390は、適用パッチ候補またはレベルダウンパッチ候補をユーザに対して表示するのではなく、適用パッチ候補を適用すべき旨の指示またはレベルダウンパッチ候補を解除すべき旨の指示を計算機10へ出力してもよい。計算機10は、出力部390から適用パッチ候補を適用すべき旨の指示が出力されると、パッチを提供するサーバから適用パッチ候補をダウンロードして自装置に適用する。
また、計算機10は、出力部390からレベルダウンパッチ候補を解除すべき旨の指示が出力されると、レベルダウンパッチ候補を自装置から解除する。この場合は、ユーザによる判断によらず、監視プログラム340によって特定された適用パッチ候補の適用、またはレベルダウンパッチ候補の解除を自動的におこなうことができる。
図4は、計算機のハードウエア構成の一例を示すブロック図である。図4に示すように、計算機10は、SCSIカード41(識別名:「SCSIA001」)およびRAID42(識別名:「RAIDA001」)を備えている。RAID42は、計算機10の本体の外部に設けられている。RAID42は、計算機10の本体に設けられたSCSIカード41を介して接続されている。以下の説明では、計算機10がSCSIカード41およびRAID42を備えているものとする。
図5は、計算機のシステム情報の一例を示す説明図である。システム情報取得部380は、図5の符号500に示すようなシステム情報を取得する。システム情報500には、システム情報500の更新日時、計算機10のハードウエアおよびソフトウエアに関する情報などが含まれている。ここでは、システム情報500には、計算機10のOS種別「Solaris」およびその版数「V10」が含まれている。
また、システム情報500には、計算機10のハードウエアに関する情報として、図4に示したSCSIカード41の識別名「SCSIA001」およびRAID42の識別名「RAIDA001」の情報が含まれている。また、システム情報500には、計算機10のソフトウエアに関する情報として、SCSIカード41のドライバのプログラム名「SCSIドライバ」およびその版数「V1.0L00」が含まれている。
図6は、公開パッチ情報の具体例1を示す説明図である。図6の公開パッチ情報600は、公開パッチ情報取得部310が取得する公開パッチ情報の具体例1を示している。公開パッチ情報600には、パッチ番号としての「2007001」、障害番号としての「N2007−01−0001」の他に、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報などが含まれている。
図7は、公開障害情報の具体例1を示す説明図である。図7の公開障害情報700は、障害情報取得部320が取得する公開障害情報の具体例1を示している。公開障害情報700には、トラブル管理番号としての「N2007−01−0001」の他に、トラブルの現象の要約または詳細、トラブルの現象の発生条件、現象の詳細、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などが含まれている。
図8は、パッチデータの具体例1を示す説明図である。図8のパッチデータ800は、データベース331に記憶されたパッチデータの具体例1を示している。図6に示した公開パッチ情報600に含まれる障害番号としての「N2007−01−0001」と、図7に示した公開障害情報700に含まれるトラブル管理番号としての「N2007−01−0001」とが一致しているため、パッチDBプラグイン330は、公開パッチ情報600および公開障害情報700を対応付けてパッチデータ800を作成する。
ここでは、障害番号とトラブル管理番号とに基づいて公開パッチ情報600および公開障害情報700を対応付ける場合について説明したが、障害番号とトラブル管理番号に限らず、公開障害情報700に含まれる対応方法としての「2007001を適用する」と、公開パッチ情報600に含まれるパッチ番号としての「2007001」とに基づいて公開パッチ情報600および公開障害情報700を対応付けてもよい。
図9は、公開パッチ情報の具体例2を示す説明図である。図9の公開パッチ情報900は、公開パッチ情報取得部310が取得する公開パッチ情報の具体例2を示している。公開パッチ情報900には公開パッチ情報600と同様の情報が含まれている。公開パッチ情報900のパッチ番号は「2007002」であり、障害番号は「N2007−01−0002」となっている。
図10は、公開障害情報の具体例2を示す説明図である。図10の公開障害情報1000は、障害情報取得部320が取得する公開障害情報の具体例2を示している。公開障害情報1000には公開障害情報700と同様の情報が含まれている。公開障害情報1000のトラブル管理番号は「N2007−01−0002」である。また、公開障害情報1000には、プログラムログの障害検出情報としての「SCSIドライバV1.0L00」などが含まれている。
図11は、パッチデータの具体例2を示す説明図である。図11のパッチデータ1100は、データベース331に記憶されたパッチデータの具体例2を示している。図9に示した公開パッチ情報900に含まれる障害番号としての「N2007−01−0002」と、図10に示した公開障害情報1000に含まれるトラブル管理番号としての「N2007−01−0002」とが一致しているため、パッチDBプラグイン330は、公開パッチ情報900および公開障害情報1000を対応付けてパッチデータ1100を作成する。
図12は、公開パッチ情報の具体例3を示す説明図である。図12の公開パッチ情報1200は、公開パッチ情報取得部310が取得する公開パッチ情報の具体例3を示している。公開パッチ情報1200には公開パッチ情報600と同様の情報が含まれている。公開パッチ情報1200のパッチ番号は「2007003」であり、障害番号は「N2007−01−0003」となっている。
図13は、公開障害情報の具体例3を示す説明図である。図13の公開障害情報1300は、障害情報取得部320が取得する公開障害情報の具体例3を示している。公開障害情報1300には公開障害情報700と同様の情報が含まれている。公開障害情報1300のトラブル管理番号は「N2007−01−0003」である。また、公開障害情報1300には、ダンプ情報の障害検出情報としての「address abcd000000001234」および「down code 100」などが含まれている。
図14は、パッチデータの具体例3を示す説明図である。図14のパッチデータ1400は、データベース331に記憶されたパッチデータの具体例3を示している。図12に示した公開パッチ情報1200に含まれる障害番号としての「N2007−01−0003」と、図13に示した公開障害情報1300に含まれるトラブル管理番号としての「N2007−01−0003」とが一致しているため、パッチDBプラグイン330は、公開パッチ情報1200と公開障害情報1300を対応付けてパッチデータ1400を作成する。
図15は、パッチ適用情報の具体例を示す説明図である。図15のパッチ適用情報1500は、パッチ適用情報取得部370が取得するパッチ適用情報の具体例を示している。パッチ適用情報1500には、たとえば、パッチ番号「2006001」のパッチを2006年1月10日8時に適用した旨の情報や、そのパッチの適用プログラムのプログラム名や版数に関する情報などが含まれている。
図16は、パッチ候補選択装置の動作の一例を示すフローチャートである。図16に示すように、まず、監視プログラム340が、システムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363から出力される各解析情報に基づいて、計算機10に障害が発生したか否かを判断する(ステップS1601)。障害が発生していない場合には障害が発生するまで待つ(ステップS1601:Noのループ)。
ステップS1601において、障害が発生した場合(ステップS1601:Yes)は、システムログ解析プラグイン361および監視プログラム340が、システムログ取得部351から出力されたシステムログに基づいてシステムログ解析をおこなう(ステップS1602,図17参照)。つぎに、ステップS1602のシステムログ解析によって適用パッチ候補が特定されたか否かを判断する(ステップS1603)。
ステップS1603において、適用パッチ候補が特定された場合(ステップS1603:Yes)は、ステップS1614へ進んで処理を続行する。適用パッチ候補が特定されていない場合(ステップS1603:No)は、障害の発生原因のプログラムが特定されているか否かを判断する(ステップS1604)。障害の発生原因のプログラムは、たとえばステップS1602によって取得したシステムログに基づいて特定する。
ステップS1604において、障害の発生原因のプログラムが特定されている場合(ステップS1604:Yes)には、プログラムログ解析プラグイン362および監視プログラム340が、障害の発生原因のプログラムのプログラムログ解析をおこなう(ステップS1605,図18参照)。
プログラム解析は、プログラムログ取得部352から出力されたプログラムログに基づいてプログラムログ解析プラグイン362および監視プログラム340がおこなう。つぎに、ステップS1605のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する(ステップS1606)。適用パッチ候補が特定された場合(ステップS1606:Yes)は、ステップS1614へ進んで処理を続行する。
ステップS1604において、プログラムが特定されていない場合(ステップS1604:No)と、ステップS1606において適用パッチ候補が特定されていない場合(ステップS1606:No)は、計算機10にインストールされた各プログラムのうちの一つのプログラムログ解析をおこなう(ステップS1607,図18参照)。
ステップS1607において、プログラム解析は、プログラムログ取得部352から出力されたプログラムログに基づいてプログラムログ解析プラグイン362および監視プログラム340がおこなう。つぎに、ステップS1607のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する(ステップS1608)。
ステップS1608において、適用パッチ候補が特定された場合(ステップS1608:Yes)は、ステップS1614へ進んで処理を続行する。適用パッチ候補が特定されていない場合(ステップS1608:No)は、ステップS1607によって、計算機10にインストールされた各プログラムのすべてのプログラムログ解析をおこなったか否かを判断する(ステップS1609)。
ステップS1609において、すべてのプログラムログ解析をおこなっていない場合(ステップS1609:No)は、ステップS1607に戻り、まだプログラムログ解析をおこなっていないプログラムのプログラムログ解析をおこなう。ステップS1609において、すべてのプログラムログ解析をおこなった場合(ステップS1609:Yes)は、ダンプ情報解析プラグイン363および監視プログラム340がダンプ情報解析をおこなう(ステップS1610)。
つぎに、ステップS1610のダンプ情報解析によって適用パッチ候補が特定されたか否かを判断する(ステップS1611)。適用パッチ候補が特定された場合(ステップS1611:Yes)は、ステップS1614へ進んで処理を続行する。適用パッチ候補が特定されていない場合(ステップS1611:No)は、監視プログラム340が、パッチ適用情報に基づいてレベルダウン解析をおこなう(ステップS1612)。
つぎに、ステップS1612のレベルダウン解析によって特定されたパッチをレベルダウンの可能性があるパッチとして表示して(ステップS1613)、一連の動作を終了する。ステップS1603,S1606,S1608またはS1611によって適用パッチ候補が特定された場合は、特定された適用パッチ候補を表示して(ステップS1614)、一連の動作を終了する。
図17は、図16に示したシステムログ解析の具体例を示すフローチャートである。図16のステップS1602においては、システムログ取得部351から出力されたシステムログに基づいて、図17に示すようなシステムログ解析をおこなう。まず、システムログ解析プラグイン361が、システムログ取得部351から出力されたシステムログからエラーメッセージを抽出する(ステップS1701)。
つぎに、監視プログラム340が、データベース331において、選択条件に含まれているエラーメッセージが、ステップS1701によって抽出したエラーメッセージと一致するパッチがあるか否かを判断する(ステップS1702)。エラーメッセージが一致するパッチがない場合(ステップS1702:No)はシステムログ解析を終了する。
ステップS1702において、エラーメッセージが一致するパッチがある場合(ステップS1702:Yes)は、エラーメッセージが一致するパッチのうちの一つについて、そのパッチが計算機10に適用済みであるか否かを判断する(ステップS1703)。ステップS1703においては、パッチ適用情報取得部370からパッチDBプラグイン330を介して取得したパッチ適用情報を参照して、そのパッチが計算機10に適用済みであるか否かを判断する。
ステップS1703において、パッチが計算機10に適用済みである場合(ステップS1703:Yes)は、ステップS1706へ進んで処理を続行する。パッチが計算機10に適用済みでない場合(ステップS1703:No)は、データベースにおいて、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致しているか否かを判断する(ステップS1704)。ステップS1704においては、システム情報取得部380から出力されるシステム情報に基づいて、システム情報が一致しているか否かを判断する。
ステップS1704において、システム情報が一致していない場合(ステップS1704:No)は、ステップS1706へ進んで処理を続行する。システム情報が一致している場合(ステップS1704:Yes)は、このパッチを適用パッチ候補として特定する(ステップS1705)。つぎに、ステップS1702においてエラーメッセージが一致すると判断したすべてのパッチをステップS1703によって処理したか否かを判断する(ステップS1706)。
ステップS1706において、すべてのパッチを処理していない場合(ステップS1706:No)は、ステップS1703に戻り、ステップS1702においてエラーメッセージが一致すると判断したパッチのうちのまだステップS1703によって処理していないパッチを処理する。すべてのパッチを処理した場合(ステップS1706:Yes)は、システムログ解析を終了する。
以上に示したステップにおいて、システムログ取得部351から出力されたシステムログが「…ERR1234…」であった場合は、ステップS1701によってエラーメッセージ「ERR1234」が抽出される。エラーメッセージ「ERR1234」は、たとえば図8に示したパッチデータ800の選択条件に含まれているエラーメッセージと一致するため、パッチデータ800に対応するパッチがステップS1702により検出される。
また、パッチデータ800に示すように、このパッチのパッチ番号は「2007001」である。図15に示したパッチ適用情報1500において、パッチ番号が「2007001」のパッチが計算機10に適用された旨の情報がないため、ステップS1703において、このパッチは計算機10に適用済みのパッチではないと判断される。
また、パッチデータ800に示すように、このパッチのシステム情報には、「SCSIA001 RAIDA001」が含まれている。図5に示したシステム情報500には、「SCSIA001」および「RAIDA001」がそれぞれ含まれているため、ステップS1704において、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致していると判断される。
このため、ステップS1705によって、パッチデータ800に対応するパッチ(パッチ番号:2007001)が適用パッチ候補として特定される。この場合は、図16のステップS1603において、ステップS1602のシステムログ解析によって適用パッチ候補が特定されたと判断され、ステップS1614によって、パッチデータ800に対応するパッチ(パッチ番号:2007001)が表示される。
図18は、図16に示したプログラムログ解析の具体例を示すフローチャートである。図16のステップS1605およびステップS1607においては、一つの解析対象のプログラムについて、図18に示すようなプログラム解析をおこなう。まず、データベース331において、選択条件に含まれているプログラムが、解析対象のプログラムと一致しているパッチがあるか否かを判断する(ステップS1801)。
プログラムが一致するパッチがない場合(ステップS1801:No)は、プログラムログ解析を終了する。プログラムが一致するパッチがある場合(ステップS1801:Yes)は、プログラムログ取得部352から出力されたプログラムログから、プログラムログの障害検出情報を抽出する(ステップS1802)。
つぎに、ステップS1801によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機10に適用済みであるか否かを判断する(ステップS1803)。ステップS1803においては、パッチ適用情報取得部370から出力されるパッチ適用情報を参照してパッチが適用済みであるか否かを判断する。
ステップS1803において、パッチが計算機10に適用済みである場合(ステップS1803:Yes)は、ステップS1807へ進んで処理を続行する。パッチが計算機10に適用済みでない場合(ステップS1803:No)は、データベース331において、このパッチのプログラムログの障害検出情報が、ステップS1802によって抽出された障害検出情報と一致しているか否かを判断する(ステップS1804)。
ステップS1804において、プログラムログの障害検出情報が一致していない場合(ステップS1804:No)は、ステップS1807へ進んで処理を続行する。プログラムログの障害検出情報が一致している場合(ステップS1804:Yes)は、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致しているか否かを判断する(ステップS1805)。
ステップS1805において、システム情報が一致していない場合(ステップS1805:No)は、ステップS1807へ進んで処理を続行する。システム情報が一致している場合(ステップS1805:Yes)は、このパッチを適用パッチ候補として特定する(ステップS1806)。つぎに、ステップS1801においてプログラムが一致していると判断されたすべてのパッチをステップS1803によって処理したか否かを判断する(ステップS1807)。
ステップS1807において、すべてのパッチを処理していない場合(ステップS1807:No)は、ステップS1803に戻り、ステップS1801においてプログラムが一致すると判断したパッチのうちのまだステップS1803によって処理していないパッチを処理する。すべてのパッチを処理した場合(ステップS1807:Yes)は、プログラムログ解析を終了する。
以上に示したステップにおいて、解析対象のプログラムが「SCSIドライバV1.0L00」であるとする。プログラム「SCSIドライバV1.0L00」は、たとえば図11に示したパッチデータ1100の選択条件に含まれているプログラムと一致するため、パッチデータ1100に対応するパッチがステップS1801によって検出される。
図19は、プログラムログの一例を示す説明図である。プログラムログ取得部352は、図19の符号1900に示すようなプログラムログを出力する。プログラム取得部361が出力したプログラムが、プログラムログ1900のように「…10 (program−1)/状態1,10 (program−2)/状態2…」であった場合は、図18のステップS1802によってプログラムログの障害検出情報「状態1=10,状態2=10」が抽出される。
また、パッチデータ1100のパッチ番号は「2007002」である。図15に示したパッチ適用情報1500において、パッチ番号が「2007002」のパッチが計算機10に適用された旨の情報がないため、図18のステップS1803において、このパッチは計算機10に適用済みのパッチではないと判断される。
また、パッチデータ1100の選択条件に含まれる障害検出情報には、プログラムログの障害検出情報「状態1=10,状態2=10」が含まれている。図18のステップS1802によって抽出されたプログラムログの障害検出情報も「状態1=10,状態2=10」であるため、図18のステップS1804において、プログラムログの障害検出情報が一致していると判断される。
また、パッチデータ1100の選択条件に含まれているシステム情報には、「SCSIA001 RAIDA001」が含まれている。図5に示したシステム情報500には、「SCSIA001」および「RAIDA001」が含まれているため、ステップS1804において、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致していると判断される。
このため、ステップS1806によって、パッチデータ1100に対応するパッチ(パッチ番号:2007002)が適用パッチ候補として特定される。この場合は、図16のステップS1606(またはS1608)において、ステップS1605(またはS1607)のプログラムログ解析によって適用パッチ候補が特定されたと判断され、ステップS1614によって、パッチデータ1100に対応するパッチ(パッチ番号:2007002)が表示される。
図20は、図16に示したダンプ情報解析の具体例を示すフローチャートである。図16のステップS1610においては、図20に示すようなダンプ情報解析をおこなう。まず、計算機10に障害が発生したときにダンプ情報取得部353によって取得されたダンプ情報があるか否かを判断する(ステップS2001)。ダンプ情報がない場合(ステップS2001:No)はダンプ情報解析を終了する。
ステップS2001において、ダンプ情報がある場合(ステップS2001:Yes)は、そのダンプ情報に基づいて、計算機10に発生した障害の原因のプログラムを特定する(ステップS2002)。つぎに、データベース331において、選択条件に含まれているプログラムが、ステップS2002によって特定されたプログラムと一致しているパッチがあるか否かを判断する(ステップS2003)。
ステップS2003において、プログラムが一致するパッチがない場合(ステップS2003:No)はダンプ情報解析を終了する。プログラムが一致するパッチがある場合(ステップS2003:Yes)は、ダンプ情報解析プラグイン363が、ダンプ情報取得部353から出力されたダンプ情報から、ダンプ情報の障害検出情報を抽出する(ステップS2004)。
つぎに、ステップS2003によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機10に適用済みのパッチか否かを判断する(ステップS2005)。パッチが計算機10に適用済みである場合(ステップS2005:Yes)は、ステップS2009へ進んで処理を続行する。
ステップS2005において、パッチが計算機10に適用済みのパッチでない場合(ステップS2005:No)は、このパッチの選択条件に含まれる障害検出情報が、ステップS2004によって抽出されたダンプ情報の障害検出情報と一致しているか否かを判断する(ステップS2006)。
ステップS2006において、ダンプ情報の障害検出情報が一致していない場合(ステップS2006:No)は、ステップS2009へ進んで処理を続行する。ダンプ情報の障害検出情報が一致している場合(ステップS2006:Yes)は、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致しているか否かを判断する(ステップS2007)。
ステップS2007において、システム情報が一致していない場合(ステップS2007:No)は、ステップS2009へ進んで処理を続行する。システム情報が一致している場合(ステップS2007:Yes)は、このパッチを適用パッチ候補として特定する(ステップS2008)。つぎに、ステップS2003においてプログラムが一致していると判断されたすべてのパッチをステップS2005によって処理したか否かを判断する(ステップS2009)。
すべてのパッチを処理していない場合(ステップS2009:No)は、ステップS2005に戻り、ステップS2003においてプログラムが一致すると判断したパッチのうちのまだステップS2005によって処理していないパッチを処理する。すべてのパッチを処理した場合(ステップS2009:Yes)は、ダンプ情報解析を終了する。
以上に示したステップにおいて、たとえば、ステップS2002によって特定されたプログラムが「SCSIドライバV1.0L00」であるとする。プログラム「SCSIドライバV1.0L00」は、たとえば図14に示したパッチデータ1400の選択条件に含まれているプログラムと一致するため、パッチデータ1400に対応するパッチがステップS2003によって検出される。
図21は、ダンプ情報の一例を示す説明図である。ダンプ情報取得部353は、図21の符号2100に示すようなダンプ情報を出力する。ダンプ情報取得部353が出力したダンプ情報が、ダンプ情報2100のように「…,address abcd000000001234,down code 100,…」であった場合は、図20のステップS2004によってダンプ情報の障害検出情報「address abcd000000001234,down code 100」が抽出される。
また、パッチデータ1400に対応するパッチのパッチ番号は「2007003」である。図15に示したパッチ適用情報1500において、パッチ番号が「2007003」のパッチが計算機10に適用された旨の情報がないため、図20のステップS2005において、このパッチは計算機10に適用済みのパッチではないと判断される。
また、パッチデータ1400の選択条件に含まれる障害検出情報には、ダンプ情報の障害検出情報「address abcd000000001234」および「down code 100」が含まれている。図20のステップS2004によって抽出されたダンプ情報の障害検出情報も「address abcd000000001234,down code 100」であるため、図20のステップS2006において、ダンプ情報の障害検出情報が一致していると判断される。
また、パッチデータ1400の選択条件に含まれているシステム情報には、「SCSIA001 RAIDA001」が含まれている。図5に示したシステム情報500には、「SCSIA001」および「RAIDA001」がそれぞれ含まれているため、ステップS2007において、このパッチの選択条件に含まれるシステム情報が、計算機10のシステム情報と一致していると判断される。
このため、ステップS2008によって、パッチデータ1400に対応するパッチ(パッチ番号:2007003)が適用パッチ候補として特定される。この場合は、図16のステップS1611において、ステップS1610のダンプ情報解析によって適用パッチ候補が特定されたと判断され、ステップS1614によって、パッチデータ1400に対応するパッチ(パッチ番号:2007003)が表示される。
図22は、図16に示したレベルダウン解析の具体例を示すフローチャートである。図22に示すように、まず、システムログ解析プラグイン361、プログラムログ解析プラグイン362およびダンプ情報解析プラグイン363から出力される各解析情報に基づいて、計算機10に障害が発生した日時を特定する(ステップS2201)。
つぎに、上記の公開障害情報に基づいて、障害の原因となったプログラムを特定する(ステップS2202)。つぎに、パッチ適用情報取得部370から出力されるパッチ適用情報に基づいて、計算機10に適用した日時が、ステップS2201によって特定した日時と一致する適用済みのパッチがあるか否かを判断する(ステップS2203)。
ステップS2203において、日時が一致するパッチがない場合(ステップS2203:No)はレベルダウン解析を終了する。日時が一致するパッチがある場合(ステップS2203:Yes)は、日時が一致すると判断されたパッチのうちの一つについて、データベース331においてそのパッチの選択条件に含まれるプログラムが、ステップS2202により特定されたプログラムと一致するか否かを判断する(ステップS2204)。
ステップS2204において、プログラムが一致しない場合(ステップS2204:No)は、ステップS2206へ進んで処理を続行する。プログラムが一致する場合(ステップS2204:Yes)は、その適用済みパッチをレベルダウンの可能性があるレベルダウンパッチ候補として特定する(ステップS2205)。
つぎに、ステップS2303において日時が一致していると判断されたすべての適用済みのパッチをステップS2203によって処理したか否かを判断する(ステップS2206)。すべての適用済みのパッチについて判断していない場合(ステップS2206:No)は、ステップS2204に戻り、まだ処理していない適用済みのパッチについて処理する。すべてのパッチについて処理した場合(ステップS2206:Yes)は、一連のレベルダウン解析の処理を終了する。
以上説明したように、本実施の形態によれば、パッチとその選択条件が記憶されたデータベース331を予め作成しておき、障害が発生したときの計算機10の記録情報から抽出した障害を特定する情報によって検索することで、計算機10において発生した障害に応じたパッチの候補を自動的に選択することができる。
これにより、必要最小限のパッチの候補を自動的に選択することができる。このため、パッチのダウンロードおよび適用処理を短縮し、計算機10の長時間の運用停止を回避することができる。また、必要以上のパッチを適用しないことで、レベルダウンの可能性を低減することができる。
また、障害を特定する情報として、障害が発生したときのシステムログから抽出したエラーメッセージや、障害が発生したときの特定のプログラムログや、障害が発生したときの特定のダンプ情報などを用いることで、障害に応じたパッチを精度よく選択することができる。また、データベース331の各パッチのうちの、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。
また、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機10の記録情報から抽出した障害を特定する情報および計算機10のシステム情報の両方によって検索することで、障害に応じたパッチの候補を精度よく選択することができる。また、選択条件を満たすパッチを特定できなかった場合に、計算機10に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。
なお、本実施の形態においては、パッチ候補選択装置100が、サーバからパッチの提供を受けるクライアント側の計算機10に適用される場合について説明したが、パッチ候補選択装置100を、たとえば、サーバからパッチの提供を受けるクライアント側の計算機10を監視可能な別の計算機に適用してもよい。
また、本実施の形態で説明したパッチ候補選択方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明したパッチ候補選択装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称する。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したパッチ候補選択装置100の機能をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、パッチ候補選択装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)計算機の障害を検出する検出手段と、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段と、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段と、
前記特定手段によって特定された特定結果を出力する出力手段と、
を備えることを特徴とするパッチ候補選択装置。
(付記2)前記取得手段は、
前記記録情報として前記計算機のシステムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、
前記特定手段は、
前記データベースに基づいて、前記抽出手段によって抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを特徴とする付記1に記載のパッチ候補選択装置。
(付記3)前記取得手段は、
前記記録情報として前記計算機のプログラムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたプログラムログから、前記障害を特定する情報を抽出することを特徴とする付記1または2に記載のパッチ候補選択装置。
(付記4)前記取得手段は、
前記記録情報として前記計算機のダンプ情報を取得し、
前記抽出手段は、
前記記録情報として前記取得手段によって取得されたダンプ情報から前記障害を特定する情報を抽出することを特徴とする付記1に記載のパッチ候補選択装置。
(付記5)前記特定手段は、
さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを特徴とする付記1に記載のパッチ候補選択装置。
(付記6)前記計算機のシステム情報を取得するシステム情報取得手段を備え、
前記特定手段は、
さらに、前記システム情報取得手段によって取得されたシステム情報が前記選択条件と一致するパッチを特定することを特徴とする付記1に記載のパッチ候補選択装置。
(付記7)前記特定手段は、
さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定することを特徴とする付記1に記載のパッチ候補選択装置。
(付記8)コンピュータを、
計算機の障害を検出する検出手段、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段、
前記特定手段によって特定された特定結果を出力する出力手段、
として機能させることを特徴とするパッチ候補選択プログラム。
(付記9)計算機の障害を検出する検出工程と、
前記検出工程によって検出された障害が発生したときの前記計算機の記録情報を取得する取得工程と、
前記取得工程によって取得された記録情報から前記障害を特定する情報を抽出する抽出工程と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出工程によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定工程と、
前記特定工程によって特定された特定結果を出力する出力工程と、
を含んだことを特徴とするパッチ候補選択方法。
10 計算機
41 SCSIカード
42 RAID
121 システムログ
131 エラーメッセージ
122,2100 ダンプ情報
500 システム情報
600,900,1200 公開パッチ情報
700,1000,1300 公開障害情報
800,1100,1400 パッチデータ
1500 パッチ適用情報
1900 プログラムログ

Claims (6)

  1. 計算機の障害を検出する検出手段と、
    前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段と、
    前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段と、
    パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定する特定手段と、
    前記特定手段によって特定された特定結果を出力する出力手段と、
    を備えることを特徴とするパッチ候補選択装置。
  2. 前記取得手段は、
    前記記録情報として前記計算機のシステムログを取得し、
    前記抽出手段は、
    前記取得手段によって取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、
    前記特定手段は、
    前記データベースに基づいて、前記抽出手段によって抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを特定することを特徴とする請求項1に記載のパッチ候補選択装置。
  3. 前記取得手段は、
    前記記録情報として前記計算機のプログラムログを取得し、
    前記抽出手段は、
    前記取得手段によって取得されたプログラムログから、前記障害を特定する情報を抽出することを特徴とする請求項1または2に記載のパッチ候補選択装置。
  4. 前記特定手段は、
    さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを特徴とする請求項1に記載のパッチ候補選択装置。
  5. コンピュータを、
    計算機の障害を検出する検出手段、
    前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段、
    前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段、
    パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定する特定手段、
    前記特定手段によって特定された特定結果を出力する出力手段、
    として機能させることを特徴とするパッチ候補選択プログラム。
  6. 計算機の障害を検出する検出工程と、
    前記検出工程によって検出された障害が発生したときの前記計算機の記録情報を取得する取得工程と、
    前記取得工程によって取得された記録情報から前記障害を特定する情報を抽出する抽出工程と、
    パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出工程によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出工程によって検出された障害の発生日時と適用日時が一致するパッチを特定する特定工程と、
    前記特定工程によって特定された特定結果を出力する出力工程と、
    を含んだことを特徴とするパッチ候補選択方法。
JP2009554174A 2008-02-21 2008-02-21 パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法 Expired - Fee Related JP5152206B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/052995 WO2009104268A1 (ja) 2008-02-21 2008-02-21 パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法

Publications (2)

Publication Number Publication Date
JPWO2009104268A1 JPWO2009104268A1 (ja) 2011-06-16
JP5152206B2 true JP5152206B2 (ja) 2013-02-27

Family

ID=40985163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009554174A Expired - Fee Related JP5152206B2 (ja) 2008-02-21 2008-02-21 パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法

Country Status (3)

Country Link
US (1) US8327190B2 (ja)
JP (1) JP5152206B2 (ja)
WO (1) WO2009104268A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086364A (ja) * 2008-10-01 2010-04-15 Fujitsu Ltd 情報処理装置、動作状態監視装置および方法
JP5621913B2 (ja) * 2011-03-18 2014-11-12 富士通株式会社 再現支援装置、再現支援方法、および再現支援プログラム
WO2013076798A1 (ja) * 2011-11-21 2013-05-30 富士通株式会社 障害発生防止装置、障害発生防止方法、障害発生防止プログラム及び媒体
US9021312B1 (en) * 2013-01-22 2015-04-28 Intuit Inc. Method and apparatus for visual pattern analysis to solve product crashes
RU2573783C1 (ru) 2014-08-01 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ изменения функционала приложения
US10484256B2 (en) * 2014-08-12 2019-11-19 Arista Networks, Inc. Method and system for monitoring and correcting defects of a network device
US10133657B2 (en) * 2016-02-23 2018-11-20 Fujitsu Limited Textual similarity based software program repair
US10001984B2 (en) * 2016-08-17 2018-06-19 International Business Machines Corporation Identification of software updates using source code execution paths
US10601939B2 (en) * 2017-09-05 2020-03-24 Bank Of America Corporation Desktop error repair tool
JP7169973B2 (ja) * 2017-09-21 2022-11-11 オラクル・インターナショナル・コーポレイション 多層クラウドベースアプリケーションスタックをアップデートするためのシステムおよび方法
US10846211B2 (en) * 2018-03-21 2020-11-24 Microsoft Technology Licensing, Llc Testing kernel mode computer code by executing the computer code in user mode
WO2020209863A1 (en) * 2019-04-12 2020-10-15 Holberton School Correction of software coding projects
US11636778B2 (en) 2019-04-12 2023-04-25 Holberton, Inc. Correction of software coding projects
US11244058B2 (en) * 2019-09-18 2022-02-08 Bank Of America Corporation Security tool
KR102592995B1 (ko) * 2021-10-27 2023-10-24 경북대학교 산학협력단 소프트웨어의 오동작 패치정보 생성시스템 및 소프트웨어의 오동작 패치정보 생성방법
CN116225770B (zh) * 2023-04-26 2023-10-20 阿里云计算有限公司 补丁匹配方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0239251A (ja) * 1988-07-28 1990-02-08 Nec Corp トラブル情報収集表示方式
JPH032925A (ja) * 1989-05-30 1991-01-09 Nec Corp プログラム修正履歴管理方式
JP2001229013A (ja) * 2000-02-14 2001-08-24 Ntt Comware Corp パッチ投入装置およびその記録媒体
JP2002197170A (ja) * 2000-12-25 2002-07-12 Nec Fielding Ltd 運用支援システム
JP2003233512A (ja) * 2002-02-13 2003-08-22 Nec Corp 保守機能付きクライアント監視システム及び監視サーバ及びプログラム並びにクライアント監視・保守方法
JP2005099967A (ja) * 2003-09-24 2005-04-14 Hitachi Ltd 予防保守方法
JP2005332068A (ja) * 2004-05-18 2005-12-02 Mitsubishi Electric Corp プログラム障害解析システムおよびプログラム障害解析方法
JP2006113651A (ja) * 2004-10-12 2006-04-27 Nec Corp パッチ適用情報管理システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5957349A (ja) * 1982-09-27 1984-04-02 Hitachi Ltd 分散処理システムにおけるソフトウェア障害修復方式
US6763517B2 (en) * 2001-02-12 2004-07-13 Sun Microsystems, Inc. Automated analysis of kernel and user core files including searching, ranking, and recommending patch files
US7293201B2 (en) * 2003-01-17 2007-11-06 Microsoft Corporation System and method for active diagnosis and self healing of software systems
US7296189B2 (en) * 2003-09-19 2007-11-13 International Business Machines Corporation Method, apparatus and computer program product for implementing autonomic testing and verification of software fix programs
US7475286B2 (en) * 2005-01-10 2009-01-06 International Business Machines Corporation System and method for updating end user error reports using programmer defect logs
US20070050678A1 (en) * 2005-08-25 2007-03-01 Motorola, Inc. Apparatus for self-diagnosis and treatment of critical software flaws
CN101401072B (zh) * 2006-03-10 2010-12-15 富士通株式会社 应用补丁筛选装置以及应用补丁筛选方法
US8296605B2 (en) * 2008-12-10 2012-10-23 Sap Ag Systems and methods for correcting software errors

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0239251A (ja) * 1988-07-28 1990-02-08 Nec Corp トラブル情報収集表示方式
JPH032925A (ja) * 1989-05-30 1991-01-09 Nec Corp プログラム修正履歴管理方式
JP2001229013A (ja) * 2000-02-14 2001-08-24 Ntt Comware Corp パッチ投入装置およびその記録媒体
JP2002197170A (ja) * 2000-12-25 2002-07-12 Nec Fielding Ltd 運用支援システム
JP2003233512A (ja) * 2002-02-13 2003-08-22 Nec Corp 保守機能付きクライアント監視システム及び監視サーバ及びプログラム並びにクライアント監視・保守方法
JP2005099967A (ja) * 2003-09-24 2005-04-14 Hitachi Ltd 予防保守方法
JP2005332068A (ja) * 2004-05-18 2005-12-02 Mitsubishi Electric Corp プログラム障害解析システムおよびプログラム障害解析方法
JP2006113651A (ja) * 2004-10-12 2006-04-27 Nec Corp パッチ適用情報管理システム

Also Published As

Publication number Publication date
WO2009104268A1 (ja) 2009-08-27
US8327190B2 (en) 2012-12-04
JPWO2009104268A1 (ja) 2011-06-16
US20100306600A1 (en) 2010-12-02

Similar Documents

Publication Publication Date Title
JP5152206B2 (ja) パッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法
US8244792B2 (en) Apparatus and method for information recovery quality assessment in a computer system
US10621212B2 (en) Language tag management on international data storage
CN105893259B (zh) 代码检测系统、方法及装置
JP5542859B2 (ja) ログ管理装置、ログ蓄積方法、ログ検索方法、およびプログラム
JP5463780B2 (ja) 情報処理装置
US20150095356A1 (en) Automatic keyword tracking and association
JP5102650B2 (ja) 情報検索システム、情報検索方法、情報検索プログラム及び記録媒体
CN101211361A (zh) 信息处理装置、信息处理系统和信息处理方法
JP4259588B2 (ja) 情報処理システム及び情報処理プログラム
JP7492839B2 (ja) 構成管理装置、構成管理方法、及び、構成管理プログラム
KR20190020363A (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
US10698884B2 (en) Dynamic lineage validation system
US11144592B2 (en) Extendable JSON configuration architecture
US11354081B2 (en) Information processing apparatus with concealed information
JP5670156B2 (ja) テスト結果照合システム、方法、及びプログラム
JP2009252167A (ja) テスト項目生成装置、テスト項目生成システム、テスト項目生成方法、およびテスト項目生成プログラム
JP2009205484A (ja) 障害原因解析支援装置、方法及びプログラム
JP2008052347A (ja) 文書処理装置および文書処理プログラム
CN107741956B (zh) 一种基于web容器配置文件的日志搜索方法
JP2007199800A (ja) デグレート防止支援プログラムおよびデグレート防止支援方法
JP6217231B2 (ja) ソフトウェア構成管理システム
JP2010102570A (ja) 情報解析システム、端末装置、サーバ装置、情報解析方法、及びプログラム
JP4212539B2 (ja) ファイル格納位置情報管理システムと方法およびそのプログラム
JP2008090759A (ja) 情報処理システムおよび情報処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121012

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: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees