ログ管理プログラム、ログ管理サーバ、ログ管理システムおよびログ変換方法
【課題】 画像形成装置等の機器から収集したログデータを、できるだけ管理者等の手間をかけずに様々な形式に変換して出力することができるログ管理プログラム等を提供する。
【解決手段】 ログ管理プログラム11aは、変換情報が記述されたスクリプト11bに基づいて、ローカル機器ログ11dやネットワーク機器ログ11eやネットワーク機器メンテナンスログ11fやネットワーク機器一覧ファイル11gを読み込み、データベースへの登録用ファイル11cを出力する。このため、スクリプト11bを登録先のデータベースに合わせて用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル11cが得られる。
【解決手段】 ログ管理プログラム11aは、変換情報が記述されたスクリプト11bに基づいて、ローカル機器ログ11dやネットワーク機器ログ11eやネットワーク機器メンテナンスログ11fやネットワーク機器一覧ファイル11gを読み込み、データベースへの登録用ファイル11cを出力する。このため、スクリプト11bを登録先のデータベースに合わせて用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル11cが得られる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複写機や複合機等の機器から収集したログデータに対して所定の処理を施すログ管理プログラム等に関する。
【背景技術】
【0002】
従来、複写機等の端末装置に故障等の異常が生じた場合、それらの端末装置を遠隔管理する管理装置には故障の回数のみが表示されるようになっていた。このため、サービスマンが故障部位の認識やその状態の認識を行うことができず、部品交換の要否等の判断を正確に行うことができなかった。そこでこのような問題を解決するために、特許文献1に記載の技術が提案された。この技術では、複写機に接続された通信ユニットがその複写機に関する様々な情報(コピー枚数、感光電圧、バイアス電圧、ヒートローラ温度、トラブルの発生有無、トラブルのコード、部品交換情報等)を、異常発生時等の所定のタイミングでセンタ装置に送信する。そして、センタ装置はその情報を受信すると所定のフォーマットに変換してファイルとして記憶し、表示要求に応じてそのファイルのデータを加工して表示部に表示させる。このため、サービスマンは表示部に表示された情報から異常の発生状況や履歴等を知ることができ、部品交換の要否等の判断を正確に行うことができる。
【特許文献1】特開平3−161763号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで近年、ネットワークの普及により、遠隔地から任意のタイミングで端末装置から情報(ログデータ)を取得できるようになった。このため、異常の兆候をつかみトラブルを未然に防いだり、運用状況を管理する等の目的のため、端末装置から取得したログデータをデータベースに登録させ、分析ツールを用いてその登録させたログデータを様々な角度から分析したいという要望が高まってきた。このような要望に応えるためには画像形成装置等の端末装置から送られてくるログデータをSQLファイルのような形式に変換して出力できるようになっているとデータベースへの登録には都合がよい。
【0004】
しかし、データベース管理システム(DBMS)が扱うSQLファイルにはベンダー毎に仕様上の若干の差違がある上、分析ツールが利用するテーブル名や項目名等も分析ツールによって異なる場合が多い。このため、それらに合わせてログデータを変換してSQLファイルを出力する必要があり、データベースの数だけSQLファイルを用意する必要がある。したがって一般的にはSQLファイルを生成するプログラムをデータベースの数だけ個別に用意する必要がある。しかし、このことはプログラムの作成に手間を要することを意味し、テーブル名の変更等に対しても柔軟に対応することが難しいことを意味する。
【0005】
そして、このような問題は、プリンタ、スキャナ、ファクシミリ、カメラ、またはこれらの機能を併せ持った複合機、画像形成装置等の端末装置から送られてくるログデータをデータベースに登録させるような場合に限らず、様々な機器(例えば、自動販売機、空調装置、カメラ、AV機器、ストレージ機器、またはこれらの機能を併せ持った複合機等)から送られてくるログデータをデータベースに登録させる場合の全てに言えることである。
【0006】
本発明は上述した問題に鑑みなされたものであり、画像形成装置等の機器から収集したログデータを、できるだけ管理者等の手間をかけずに様々な形式に変換して出力することができるログ管理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するためになされた請求項1に記載のログ管理プログラムは、機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段からログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得したスクリプトに基づいてログファイルのログデータを変換して標準化言語の仕様にしたがった登録用ファイルを出力する変換手順を備えることを特徴とする。なお、ここで言う「変換情報」というのは、例えば、ログデータのうちのどのデータをどのような形式で登録用ファイルに出力するかという情報である。また、ここで言う「標準化言語」というのは、データベースに対する操作を行うために広く用いられる言語、例えばSQLを意味する。
【0008】
このようなログ管理プログラムによれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。つまり、登録用ファイルが生成されるプログラムに比較して簡易に作成できるスクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルが生成されるプログラムを個別に用意する場合と比較して、本発明のログ管理プログラムを利用する場合の方が管理者等の手間を軽減することができる。
【0009】
また、スクリプトファイルに対応テーブル名や対応項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【0010】
ところで、ログファイル記憶手段が記憶するログファイルは、単一のフォーマットからなるログファイルのみを扱うようになっていてもよいが、ログデータを出力する機器が複数ある場合は、各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからログファイルが構成されている場合も考えられる。そのため、フォーマットの種別に対応させて変換情報をスクリプトに記述しておき、ログ管理プログラムの変換手順においては、各々のログデータのフォーマットに対応するスクリプトの変換情報に基づいて前述した変換を行い、登録用ファイルを出力するようになっているとよい(請求項2)。なお、ログファイル記憶手段が記憶するログファイルは、異なるフォーマットからなる複数のログデータが単一のファイルによって構成されていてもよいし、フォーマット毎に個別のファイルに分けられて構成されていてもよい。
【0011】
このようになっていれば、ログファイル記憶手段が記憶するログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【0012】
なお、上述した「各機器の提供情報の種類」というのは、例えば、各機器のログデータの記憶方法や提供方法の違いによるものが考えられる(請求項3)。具体的には、機器がネットワークに直接接続されておりログデータがネットワーク上に直接送出されるようになっている場合や、機器がパーソナルコンピュータに接続されておりログデータがパーソナルコンピュータによって収集されてネットワーク上に送出されるようになっている場合のように、機器からのログデータの提供方法が異なることにより、ログデータのフォーマットに違い生ずる場合がある。また、機器自身の記憶装置に記憶されたログデータと、機器から必要な情報を集めて管理プログラムが生成するログデータとでも、フォーマットに違いが生ずる場合がある。
【0013】
また、上述した「各機器の提供方法の種類」というのは、例えば、各機器の機種の違いによるものであることも考えられる(請求項4)。具体的には、機器のグレードの差異による違いや、機器自体の目的の違いや、発売時期の違い等により、提供できる情報の量や質が異なり、フォーマットの違いにつながっている。
【0014】
これらのような「各機器の提供方法の種類」に対応した複数のフォーマットのログデータがログファイルにおいて許容されるようになっていれば、よりログ管理プログラムの適用範囲が広がる。
【0015】
次に登録用ファイルについて言及する。一般的に、プログラムの管理上の問題から、ログデータの種類毎に登録用ファイルが生成されることが多いが、登録先のテーブルが一つである場合には、登録用ファイルに記述されるテーブルもその一つだけである方が都合がよい。したがって、各ログデータに対応するテーブル項目やテーブル構造に関する情報をスクリプトに予め記述しておき(例えば、ログデータAの要素a1はテーブルCの項目c1に対応し、ログデータBの要素b1はa1と同じ情報を示すものであればテーブルCの項目c1に、違うものであればテーブルCの項目c2に対応するというように)、ログ管理プログラムの変換手順における変換の際には、登録用ファイルが単一のテーブルに登録可能なファイルになるように変換して出力するようになっていてもよい(請求項5)。
【0016】
このようになっていれば、フォーマットの異なる複数のログデータを1つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。
【0017】
また、複数のテーブルに登録するための情報(例えば、ログデータAの要素a1はテーブルBの項目b1に対応し、同じログデータAの要素a1はテーブルCの項目c1にも対応するというような情報)をスクリプトに予め記述しておき、ログ管理プログラムの変換手順における変換の際には、同じログデータの情報が複数のテーブルに登録可能となるように変換して出力するようになっていてもよい(請求項6)。
【0018】
このようになっていれば、複数のテーブルで必要とされる同じログデータをそれぞれに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。
【0019】
ところで、上述した「機器」というのは、どのようなものであってもよいが、特に画像形成装置であるとよい(請求項7)。
一般的に画像形成装置は、感光ローラ、紙送り機構等の可動部が多い上、トナーカードリッジをトナーの残量に応じて交換する必要があり、他の機器に比較してメンテナンスに手間を要する。このためログデータを解析して故障の発生の予測を行いたい、トナーカードリッジの交換時期を予測したい等の要望が他の機器に比較して多い。したがって、画像形成装置においては、上述したようなログ管理プログラムの利用価値が特に高い。
【0020】
なお、ログ管理プログラムは、さらに、機器からログデータまたはログデータを有するログファイルを取得してログファイル記憶手段に記憶させるログデータ取得手順を備えていてもよい(請求項8)。
【0021】
このようになっていれば、別途、機器からログデータを収集してログファイル記憶手段に記憶させる仕組みを用意する必要がなくなる。
また、ログ管理プログラムは、さらに、表示手段に表示されたGUI(グラフィカルユーザーインターフェース)によって入力された情報に基づいてスクリプトを生成してスクリプト記憶手段に記憶させるスクリプト生成手順を備えていてもよい(請求項9)。
【0022】
このようになっていれば、スクリプトを容易に生成することができるため、管理者の手間が軽減され、ログ管理プログラムの利用性が高まる。
ところで、プログラムを実行可能なサーバに上述したログ管理プログラムを実行させてログ管理サーバを構成してもよい(請求項10)。
【0023】
このようにログ管理サーバを構成すれば、このサーバを利用することにより上述した効果を得ることができる。
また、ログデータを出力する機器と、プログラムを実行可能なサーバであって、機器が出力したログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項1〜請求項9の何れかに記載のログ管理プログラムを実行するログ管理サーバと、によってログ管理システムを構成してもよい(請求項11)。
【0024】
このようにログ管理システムを構成すれば、このシステムを利用することにより上述した効果を得ることができる。
また、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法(請求項12)によっても、上述した課題を解決することができる。
【0025】
そして、このようなログ変換方法によれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。したがって、スクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られ、管理者等の手間を軽減することができる。また、スクリプトファイルにテーブル名や項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルを修正するだけで対応することができ、管理者等の手間を軽減することができる。
【0026】
なお、上述した請求項2〜請求項9の何れかに記載のログ管理プログラムが有する変換手順によって実現される方法を実行することによっても上述した各ログ管理プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明が適用された実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【0028】
1.構成の説明
図1は、実施形態のログ管理システムの概略構成を示す構成図である。ログ管理システムは、主に、LAN25に接続されたサーバPC11と、LAN25に接続されたクライアントPC13と、そのクライアントPC13にパラレルケーブルによって接続されたプリンタ15と、LAN25に接続されたプリンタ21と、LAN25に接続された複合機23と、LAN25に接続されたクライアントPC19と、そのクライアントPC19とUSBケーブルによって接続された複合機17とから構成される。
【0029】
サーバPC11は、ログ管理プログラム11aを記憶しており、そのログ管理プログラム11aを実行可能なパーソナルコンピュータである。ここでサーバPC11の構成について、図2のブロック図を用いて詳細に説明する。サーバPC11は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM111と、基本的なプログラム等が記憶されたROM112と、プログラムを実行するCPU113と、液晶ディスプレイ等からなり画像を表示可能な表示部114と、パラレルケーブルやUSBケーブルを介して外部の機器と通信可能なローカルI/F115と、イーサネット(登録商標)等のネットワークを介して外部の機器と通信可能なネットワークI/F116と、アプリケーションプログラムやログファイル等を記憶するHDD117と、キーボードやマウス等からなる入力部118と、これらを結ぶバス119とから構成される。なお、表示部114や入力部118は、ネットワークI/F116を介して接続された外部の別の端末装置によってまかなわれていてもよい。また、HDD117が記憶する具体的なものとしては、ログ管理プログラム11aと、ログ管理プログラム11aが実行時に読み込むスクリプト11bと、後述する各ログファイルをもとにログ管理プログラム11aによって出力される登録用ファイル11cと、ログ管理プログラム11aによって収集されて出力されるローカル機器ログ11d(ローカル接続されたプリンタおよび複合機のログファイルを接続PCから収集して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器ログ11e(ネットワークに直接接続されたプリンタおよび複合機が蓄積しているログファイルを収集して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器メンテナンスログ11f(ネットワークに直接接続されたプリンタおよび複合機からメンテナンス用の情報を直接取得して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器一覧ファイル(ネットワークに直接接続されたプリンタおよび複合機に関する一覧情報によって構成されるファイル)とが存在する。なお、スクリプト11bおよび登録用ファイル11cはテキスト形式のファイルであり、ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gはいずれもcsv形式のファイルである。また、登録用ファイル11cはSQLの記述規則に従って記述されている。
【0030】
説明を図1に戻し、クライアントPC13は、監視プログラム13aを記憶しており、その監視プログラム13aを実行可能なパーソナルコンピュータである。ここでクライアントPC13の構成について、図3のブロック図を用いて詳細に説明する。クライアントPC13は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM131と、基本的なプログラム等が記憶されたROM132と、プログラムを実行するCPU133と、液晶ディスプレイ等からなり画像を表示可能な表示部134と、パラレルケーブルやUSBケーブルを介して外部の機器と通信可能なローカルI/F135と、イーサネット(登録商標)等のネットワークを介して外部の機器と通信可能なネットワークI/F136と、アプリケーションプログラムやログファイル等を記憶するHDD137と、キーボードやマウス等からなる入力部138と、これら各部を結ぶバス139とから構成される。なお、HDD137が記憶する具体的なものとしては、ローカル接続されたプリンタや複合機を監視する監視プログラム13aと、監視プログラム13aによりプリンタや複合機から収集した情報(ログデータ)をファイル化したログファイル13bとが存在する。
【0031】
説明を図1に戻し、プリンタ15は、クライアントPC13とパラレルケーブルによって接続され、主にクライアントPC13からの指令に基づいて機能するプリンタである。プリンタ15の構成について図4のブロック図を用いて詳細に説明する。プリンタ15は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM151と、各種のプログラムが記憶されたROM152と、プログラムを実行するCPU153と、液晶ディスプレイ等からなり画像を表示可能な表示部154と、印刷媒体に印刷を行う印刷部155と、パラレルケーブルやUSBケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークI/F156と、自身の状態等を外部に知らせるための情報(ログデータ)であるMIB(Management Information Base)15bを記憶する不揮発性RAM157と、メモリカードのインターフェースを備えたスロットであるカードスロット158と、これら各部を結ぶバス160とから構成される。また、カードスロット158には、プリンタ15に関する情報(ログデータ)が蓄積されて構成されたログファイル15aを記憶するメモリカード159がセットされている。
【0032】
説明を図1に戻し、複合機17は、クライアントPC19とUSBケーブルによって接続され、クライアントPC19からの指令に基づいて機能することも可能な複合機17である。複合機17の構成について図5のブロック図を用いて詳細に説明する。複合機17は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM171と、各種のプログラムが記憶されたROM172と、プログラムを実行するCPU173と、液晶ディスプレイ等からなり画像を表示可能な表示部174と、印刷媒体に印刷を行う印刷部175と、CCD等からなり画像を読み取り可能なスキャナ部176と、パラレルケーブルやUSBケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークI/F177と、ファクシミリ送受信時に通信機能を担う電話回線I/F178と、自身の状態等を外部に知らせるための情報(ログデータ)であるMIB17bを記憶する不揮発性RAM179と、メモリカードのインターフェースを備えたスロットであるカードスロット180と、これら各部を結ぶバス182とから構成される。また、カードスロット180には、複合機17に関する情報(ログデータ)が蓄積されて構成されたログファイル17aを記憶するメモリカード181がセットされている。
【0033】
説明を図1に戻し、プリンタ21は、LAN25に接続され、LAN25上の機器から直接指令を受け取って機能するプリンタである。プリンタ21の構成は、上述したプリンタ15と基本的に同じであるため、説明を省略する。
【0034】
複合機23は、LAN25に接続され、LAN25上の機器から指令を受け取って機能する複合機である。複合機23の構成は上述した複合機17と基本的に同じであるため、説明を省略する。
【0035】
2.動作の説明
次に、本実施形態のログ管理システムの特徴部分であるサーバPC11に記憶されたログ管理プログラム11aを中心にして、ログ管理システムの動作について説明する。まず、概要について説明する。
【0036】
プリンタ15,21および複合機17,23は、自身の状態や印刷履歴等の情報(ログデータ)をログファイル(例えばログファイル15a,17a)として記憶しており、外部からの指令によってそのログファイルを出力することができるようになっている。また、外部からの要求によって、要求に応じたログデータを直接出力することもできるようになっている。
【0037】
クライアントPC13に記憶されている監視プログラム13aは、定期的または実行が指示された際にプリンタ15からログデータ(MIB15b)やログファイル15aを取得し、これらをログファイル(ログファイル13b)としてクライアントPC13内に記憶する。また、監視プログラム13aは、サーバPC11に記憶されているログ管理プログラム11aからログファイル13bを要求された際には、その要求されたログファイル13bをサーバPC11に送信するようになっている。
【0038】
クライアントPC19に記憶されている監視プログラム19aも上述した監視プログラム13aと同様に、定期的または実行が指示された際に複合機17からログデータ(MIB17b)やログファイル17aを取得し、これらをログファイルとしてクライアントPC19内に記憶する。また、監視プログラム19aは、サーバPC11に記憶されているログ管理プログラム11aからログファイルを要求された際には、その要求されたログファイルをサーバPC11に送信するようになっている。
【0039】
次に、サーバPC11に記憶されているログ管理プログラム11aについて詳細に説明する。ログ管理プログラム11aは、CPU113によってHDD117から読み出されて実行される。また、ログ管理プログラム11aは、主に3つの機能を有する。つまり、ログデータまたはログファイルを収集し、それらをログファイルとしてHDD117に記憶させる「ログ収集機能」、HDD117に記憶されているログファイルをデータベース登録用ファイルに変換する「ログ変換機能」、この変換の際に用いるスクリプトを生成する「スクリプト生成機能」の3つである。
【0040】
このうち「ログ収集機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際、利用者がネットワークI/F116を介して別の端末装置から指示を入力した際、または予め設定された日時になった際に実行される機能である。具体的には、クライアントPC13,19からログファイル13b等や、プリンタ21,複合機23からログファイル15a等やMIB15b等を収集し、ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gを生成してHDD117に記憶させる機能である。
【0041】
ここで、ネットワーク機器メンテナンスログ11fを取り上げ、具体的な形式について説明する。図12に示すリストのように、ネットワーク機器メンテナンスログ11fは、1行目にはログデータの名前「View Maintenance Information」が記述され、2行目にはデータ項目名がカンマ区切りで記述され、、3行目以降には2行目のデータ項目名の順にデータがカンマ区切りで記述されている。具体的な各項目の内容について説明する。1番目の「Name」はプリンタや複合機等の名称であり、例えば「PRN_355618」(3行目)や「PRN_224156」(4行目)というデータである。2番目の「Device_Type」は当該機器の種別であり、例えば「Br H-57N series」(3行目)や「Br H-65D_DN series」(4行目)というデータである。3番目の「IP_Address」は当該機器に割り当てられたIPアドレスである。3番目の「Location」は当該機器の設置場所であり、例えば「5F」(3行目)や「3F」(4行目)というデータである。4番目の「Contact」は連絡先の電話番号であり、例えば「123-2345」(3行目)や「123-5432」(4行目)というデータである。5番目の「Serial_Number」は機器のシリアル番号であり、例えば「A00000001」(3行目)や「B00000001」(4行目)というデータである。6番目の「MAC_Address」は、当該機器のネットワークインターフェースに設定されたMACアドレスである。7番目の「Date」は当該データの発生日付である。8番目の「Page_Count」は総出力ページ枚数である。9番目の「Drum_Unit_Remaining_Life」はドラムユニットの出力可能な残りページ枚数である。10番目の「Black_Coverage」は用紙に対するトナーが定着している印刷面積の割合である。11番目の「Black_Toner_Replace_Count」はブラックトナーの交換回数である。12番目の「Drum_Unit_Replace_Count」はドラムユニットの交換回数である。13番目の「Total_Pages_Printed_TRAY_1」は用紙トレー1の総出力枚数である。14番目の「Total_Pages_Printed_MP_TRAY」は多目的トレー(任意のサイズの用紙がセットできるトレイ)が用いられて出力された総枚数である。15番目の「Jam_Total」は紙詰まり回数である。16番目の「PrintPageCount_A4_Letter」はA4あるいはレターサイズの出力枚数である。17番目の「PrintPageCount_Legal」はリーガルサイズの出力枚数である。18番目の「PrintPageCount_B5_Exe」はB5あるいはエグゼキューティブサイズの出力枚数である。19番目の「PrintPageCount_Envelopes」は封筒サイズの出力枚数である。220番目の「PrintPageCount_Others」はその他のサイズの出力枚数である。
【0042】
また、これらの各項目のデータは、3行目以降において、文字列型であればダブルクォーテーションで囲まれており、数値型であればそのまま記述されている。なお、これらのログデータの名前(1行目)、データ項目名(2行目)、データ(3行目〜)の組み合わせは、ネットワーク機器メンテナンスログ11f内に複数あってもよい。
【0043】
次に「スクリプト生成機能」について説明する。「スクリプト生成機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際に実行される機能である。具体的には、サーバPC11の表示部114に図13に示す入力画面401が表示され、利用者が入力部118を操作して入力画面401に必要な情報を入力することにより、スクリプト11bが生成される。以下、入力画面401について説明し、続いてスクリプト11bについて説明する。
【0044】
入力画面401は、入力ファイルを指定するテキストボックス402(<InFile>タグに対応するテキストボックス)と、出力ファイルを指定するテキストボックス403(<OutFile>タグに対応するテキストボックス)と、フィールドテーブル(フィールド名の対応関係を有するテーブル)の内容を記述するテキストボックス404(<FieldTable>タグに対応するテキストボックス)と、複合型フィールド(データ行の中にフィールド名が含まれているもの)に関する情報を記述するテキストボックス405(<MultiField>タグに対応するテキストボックス)と、データベース名を記述するテキストボックス406(<DatabaseName>タグに対応するテキストボックス)と、データベースに関する記述を記すテキストボックス407(<DatabaseDescription>タグに対応するテキストボックス)と、テーブル名を記述するテキストボックス408(<TableName>タグに対応するテキストボックス)と、テーブルに関する記述を記すテキストボックス409(<TableDescription>タグに対応するテキストボックス)と、レコードの先頭記述を記すテキストボック410(<RecordsHeader>タグに対応するテキストボックス)と、レコードに記述するフィールド名とデータ型のリストを記述するテキストボックス411(<FieldName>タグに対応するテキストボックス)と、レコードの終端記述を記すテキストボックス412(<RecordsFooter>タグに対応するテキストボックス)と、スクリプト11bを出力せずに入力画面401を閉じるためのコマンドボタン413と、スクリプト11bを出力して入力画面401を閉じるためのコマンドボタン414とから構成される。
【0045】
一方、スクリプト11bは、例えば図14および図15(図15は図14)の続きである)に記されたリストのような記述内容である(各行「:」以前は行番号である)。図14および図15に示すように、リスト全体は<Template>タグと</Template>タグによって囲まれ、その間に各タグが記述され、各タグの直後にそれぞれのタグに関連する事項が記述されるといった形式になっている。なお、図14および図15に示すリストには、<Template>タグと</Template>タグによって記述された部分が1つしか記されていないが、同様の部分がスクリプト11b中に複数回記されていてもよい。
【0046】
次に、「ログ変換機能」について説明する。「ログ変換機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際、または予め設定された日時になった際に実行される機能である。以下、ログ変換機能の具体的処理であるログ変換処理およびそのログ変換処理から呼び出されるSQL変換出力処理について説明する。
【0047】
(1)ログ変換処理
まず、ログ変換処理について、図6のフローチャートを用いて説明する。CPU113は、ログ変換処理の実行を開始すると、まず、HDD117に記憶されているスクリプト11bのファイルをオープンし、読み込み行を先頭に設定する(S110)。続いて、スクリプト11bから、読み込み行として設定されている行を1行読み込み、次の読み込み行を1行進める(S120)。
【0048】
続いて、S120で読み込んだ1行に<Template>タグが記述されているか否かによって処理を分岐する(S130)。<Template>タグが記述されている場合にはS140に進み、<Template>タグが記述されていない場合にはS160に進む。
【0049】
S140では、SQL変換出力処理(HDD117に記憶されている各ログファイルを読み込み、スクリプト11bに基づいて登録用ファイル11c(SQLファイル)を出力する処理)を実行する。このSQL変換出力処理の詳細については後述する。SQL変換出力処理の実行を完了するとS150に進む。
【0050】
S150では、SQL変換出力処理が正常に終了したか否かによって処理を分岐する。具体的には、後述するエラーフラグを参照して判断する。SQL変換出力処理が正常に終了した場合にはS160に進み、SQL変換出力処理が正常に終了しなかった場合には、その旨を表示部114に表示させ、本処理(ログ変換処理)を終了する。
【0051】
S160では、読み込み行として設定されている行がスクリプト11bにおける最終行であるか否かによって処理を分岐する。読み込み行として設定されている行がスクリプト11bにおける最終行である場合には本処理(ログ変換処理)を終了し、読み込み行として設定されている行がスクリプト11bにおける最終行でない場合はS120に処理を戻す。
【0052】
(2)SQL変換出力処理
次に、SQL変換出力処理について図7のフローチャートを用いて説明する。CPU113は、SQL変換出力処理の実行を開始すると、まず、上述したログ変換処理のS120で検出した<Template>タグからそれに対応するスクリプト11b内の</Template>タグの間(以下、「スクリプト11bの対象範囲内」と言う。)に<InFile>タグが記述されているか否かによって処理を分岐する(S201)。<InFile>タグが記述されている場合にはS203に進み、<InFile>タグが記述されていない場合にはS218に進み、その進んだS218ではエラーフラグを立て、本処理(SQL変換出力処理)を終了し、呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0053】
<InFile>タグが記述されている場合に進むS203では、<InFile>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている名前のファイル(ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gの何れか)を入力ファイルとして開く。
【0054】
続くS205では、スクリプト11bの対象範囲内に<OutFile>タグが記述されているか否かによって処理を分岐する。<OutFile>タグが記述されている場合にはS207に進み、<OutFile>タグが記述されていない場合にはS218に進み、その進んだS218ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0055】
<OutFile>タグが記述されている場合に進むS207では、<OutFile>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている名前のファイルを出力ファイルとして用意する(登録用ファイル11cに対応)。
【0056】
続くS209では、スクリプト11bの対象範囲内に<DatabaseName>タグが記述されているか否かによって処理を分岐する。<DatabaseName>タグが記述されている場合にはS211に進み、<DatabaseName>タグが記述されていない場合にはS213に進む。
【0057】
<DatabaseName>タグが記述されている場合に進むS211では、<DatabaseName>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている文字列をデータベース名として記憶し、S213に進む。
【0058】
S213では、スクリプト11bの対象範囲内に<DatabaseDescription>タグが記述されているか否かによって処理を分岐する。<DatabaseDescription>タグが記述されている場合にはS215に進み、<DatabaseDescription>タグが記述されていない場合にはS217に進む。
【0059】
<DatabaseDescription>タグが記述されている場合に進むS215では、<DatabaseDescription>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、その中に含まれる「%s」を、記憶しておいたデータベース名に置換しながら、出力ファイルに書き出す。なお、上述したS211でデータベース名を記憶していない場合には行中に「%s」が含まれることはない。<DatabaseDescription>タグから次のタグまでの間の行を全て書き出すとS217に進む。
【0060】
S217では、スクリプト11bの対象範囲内に<TableName>タグが記述されているか否かによって処理を分岐する。<TableName>タグが記述されている場合にはS219に進み、<TableName>タグが記述されていない場合には結合子1に従い、S221(図8参照)に進む。
【0061】
<TableName>タグが記述されている場合に進むS219では、<TableName>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている文字列をテーブル名として記憶して結合子1に従い、S221(図8参照)に進む。
【0062】
説明を図8のフローチャートに移し、結合子1に続くS221では、スクリプト11bの対象範囲内に<TableDescription>タグが記述されているか否かによって処理を分岐する。<TableDescription>タグが記述されている場合にはS223に進み、<TableDescription>タグが記述されていない場合にはS225に進む。
【0063】
<TableDescription>タグが記述されている場合に進むS223では、<TableDescription>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、その行中に含まれる「%s」を、記憶しておいたテーブル名に置換しながら、出力ファイルに書き出す。なお、上述したS219でテーブル名を記憶していない場合には行中に「%s」が含まれることはない。<TableDescription>タグから次のタグまでの間の行を全て書き出すとS225に進む。
【0064】
S225では、スクリプト11bの対象範囲内に<TableData>タグが記述されているか否かによって処理を分岐する。<TableData>タグが記述されている場合にはS227に進み、<TableData>タグが記述されていない場合にはS233に進む。
【0065】
<TableData>タグが記述されていない場合に進むS233では、入力ファイルの読み出し開始位置を先頭にして記憶し、S235に進む。
一方、<TableData>タグが記述されている場合に進むS227では、<TableData>タグの次の行に記述されている文字列と入力ファイル中の各行とで一致するものがあるかどうか検索する。そして、一致するものがあるか否かによって処理を分岐する(S229)。一致するものがある場合にはS231に進み、一致するものがない場合にはS230に進み、その進んだS230ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0066】
S231では、入力ファイル中の一致した行の位置を読み出し開始位置として記憶し、S235に進む。
S235では、スクリプト11bの対象範囲内に<FieldTable>タグが記述されているか否かによって処理を分岐する。<FieldTable>タグが記述されている場合にはS237に進み、<FieldTable>タグが記述されていない場合には結合子2に従い、S243(図9参照)に進む。
【0067】
<FieldTable>タグが記述されている場合に進むS237では、<FieldTable>タグの次の行をスクリプト11bから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する(S239)。読み込んだ行にタグが記述されている場合は結合子2に従い、S243(図9参照)に進み、読み込んだ行にタグが記述されていない場合にはS241に進む。
【0068】
S241では、読み込んだ行のうち、カンマの前までの文字列をCSV項目名、カンマの後ろからの文字列をフィールド名とし、これらをセットにして変換テーブルに記憶し、S237に処理を戻す。
【0069】
説明を図9のフローチャートに移し、結合子2に続くS243では、スクリプト11bの対象範囲内に<FieldName>タグが記述されているか否かによって処理を分岐する。<FieldName>タグが記述されている場合にはS245に進み、<FieldName>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0070】
<FieldName>タグが記述されている場合に進むS245では、<FieldName>タグの次の行をスクリプト11bから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する(S247)。読み込んだ行にタグが記述されている場合にはS255に進み、読み込んだ行にタグが記述されていなければS249に進む。
【0071】
S249では、読み込んだ行のうち、カンマの直後の数値が「1」であるか否かによって処理を分岐する。カンマの直後の数値が「1」である場合はS251に進み、カンマの直後の数値が「1」でない場合はS253に進む。
【0072】
カンマの直後の数値が「1」である場合に進むS251では、読み込んだ行のうち、カンマの前までの文字列を文字列型フィールドとし、その情報と文字列とをセットにしてフィールドテーブルに記憶し、S245に処理を戻す。
【0073】
一方、 カンマの直後の数値が「1」でない場合に進むS253では、読み込んだ行のうち、カンマの前までの文字列を数値型フィールドとし、その情報と文字列とをセットにして(1レコードとして)フィールドテーブルに記憶し、S245に処理を戻す。
【0074】
読み込んだ行にタグが記述されている場合に進むS255では、スクリプト11bの対象範囲内に<RecordsHeader>タグが記述されているか否かによって処理を分岐する。<RecordsHeader>タグが記述されている場合にはS257に進み、<RecordsHeader>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0075】
<RecordsHeader>タグが記述されている場合に進むS257では、<RecordsHeader>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、レコード開始記述として記憶する。
【0076】
続くS259では、スクリプト11bの対象範囲内に<RecordsFooter>タグが記述されているか否かによって処理を分岐する。<RecordsFooter>タグが記述されている場合にはS261に進み、<RecordsFooter>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0077】
<RecordsFooter>タグが記述されている場合に進むS261では、<RecordsFooter>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、レコード終了記述として記憶する。
【0078】
続くS263では、入力ファイルから項目名の行を読み出す。そして、変数であるカラム位置番号に0を代入し(S265)、結合子3に従い、S267(図10参照)に進む。
【0079】
説明を図10のフローチャートに移し、結合子3に続くS267では、カラム位置番号を1増やす。そして、入力ファイルから入力した項目名の行から未処理のカンマまでの文字列を切り出す(S269)。
【0080】
続くS271では、変換テーブルの項目名の中にS269で切り出した文字列があるか否かによって処理を分岐する。変換テーブルの項目名の中にS269で切り出した文字列がある場合にはS273に進み、変換テーブルの項目名の中にS269で切り出した文字列がない場合にはS275に進む。
【0081】
変換テーブルのCSV項目名の中にS269で切り出した文字列がある場合に進むS273では、切り出した文字列を変換テーブルのフィールド名に置換して記憶し、S275に進む。
【0082】
S275では、S269で切り出し文字列、または、S273で置換した文字列(フィールド名)がフィールドテーブルの中にあるか否かによって処理を分岐する(S275)。フィールドテーブルの中に該当文字列がある場合にはS277に進み、フィールドテーブルの中に該当文字列がない場合にはS279に進む。
【0083】
フィールドテーブルの中に該当文字列がある場合に進むS277では、その文字列に対応づけてカラム位置番号をフィールドテーブルに登録(その文字列のレコードにカラム位置番号を追加)し、S279に進む。
【0084】
S279では、S269で切り出した文字列の後が改行であるか否かによって処理を分岐する。S269で切り出した文字列の後が改行である場合にはS281に進み、S269で切り出した文字列の後が改行でない場合にはS267に処理を戻す。
【0085】
S269で切り出した文字列の後が改行である場合に進むS281では、入力ファイルから次行を読み込む。そして、その読み込んだ行の中にカンマがあるか否かによって処理を分岐する(S283)。読み込んだ行の中にカンマがある場合にはS285に進み、読み込んだ行にカンマがない場合にはS292に進み、その進んだS292ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0086】
S285では、S281で読み込んだ行をカンマによって切り分け、切り分けた文字列を順に配列に格納する(S287)。
続く、S291では、記憶しておいたレコード開始記述を出力ファイルに書き出し、結合子4に従い、S293に(図11参照)に進む。
【0087】
説明を図11のフローチャートに移し、結合子4に続くS293では、フィールドテーブルの中からまだ読み出していないレコードを順に読み出す。なお、結合子4に続いて進んできた際には読み出し済みのレコードであるか否かの情報を初期化する。
【0088】
続くS295では、S293で読み出したレコードにカラム位置が登録されているか否かによって処理を分岐する。S293で読み出したレコードにカラム位置が登録されている場合にはS297に進み、S293で読み出したレコードにカラム位置が登録されていない場合にはS307に進む。
【0089】
S297では、S293で読み出したレコード内のフィールド名にイコール(=)を付けて出力ファイルに書き出す。
続くS299では、S293で読み出したレコード内のカラム位置の番号をインデックスとして配列から文字列を取得する。
【0090】
続くS301では、S293で読み出したレコード内の型情報に基づいてフィールドが文字列型であるか否かによって処理を分岐する。フィールドが文字列型である場合にはS303に進み、フィールドが文字列型でない場合にはS305に進む。
【0091】
フィールドが文字列型である場合に進むS303では、S299で取得した文字列をシングルクォートで囲み、S305に進む。
S305では、文字列に改行コードを付けて出力ファイルに書き出し、S307に進む。
【0092】
S307では、フィールドテーブルからまだ読み出していないレコードがあるか否かによって処理を分岐する。フィールドテーブルからまだ読み出していないレコードがある場合にはS293に処理を戻し、フィールドテーブルからまだ読み出していないレコードがない場合にはS309に進む。
【0093】
S309では、記憶しておいたレコード終了記述を出力ファイルに書き出し、S311に進む。
S311では、入力ファイルに次行があるか否かによって処理を分岐する。入力ファイルに次行がある場合には結合子5に従ってS281(図10参照)に処理を戻し、入力ファイルに次行がない場合には本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0094】
(3)実例
ここまでで、ログ変換処理およびそのログ変換処理から呼び出されるSQL変換出力処理について説明したが、ここで、図14および図15のスクリプト11bが用いられて図12のネットワーク機器メンテナンスログ11fから図16および図17の登録用ファイル11cが出力される様子を説明する。なお、登録用ファイル11cの登録先であるデータベースは、図18のデータベース構造図に示すように、データベースの名称は「WBA_DB」であり、そのデーターベースにはテーブルとして「WBA_NP_Maintenance」、「WBA_NetworkPrinterList」、「WBA_LocalPrinter」の3つが存在する。
【0095】
ログ変換処理の実行が開始されると、まず、図14および図15のスクリプト11bが開かれ、1行目が読み込まれる(図6のS120)。ここで、1行目が<Template>タグであるため、SQL変換出力処理に移行する(図6のS130:Y、S140)。
【0096】
続いて、図14のスクリプト11bの2行目が<InFile>タグであるため、<InFile>タグの次行である3行目の「pintlog.csv」(ネットワーク機器メンテナンスログ11fに相当)が開かれる(図7のS201:Y、S203)。
【0097】
続いて、図14のスクリプト11bの4行目が<OutFile>タグであるため、<OutFile>タグの次行である5行目の「sql\printlog.sql」(登録用ファイル11cに相当)が開かれる(図7のS205:Y、S207)。
【0098】
続いて、図14のスクリプト11bの6行目が<DatabaseName>タグであるため、<DatabaseName>タグの次行である7行目の「WBA_DB」がデータベース名として記憶される(図7のS209:Y、S211)。
【0099】
続いて、図14のスクリプト11bの8行目が<DatabaseDescription>タグであるため、<DatabaseDescription>タグの次行である9行目から、次のタグの直前の行である12行目までが、%sをデータベース名に置換されながら、図16の登録用ファイル11c(1行目〜4行目)に出力される(図7のS213:Y、S215)。
【0100】
続いて、図14のスクリプト11bの13行目が<TableName>タグであるため、<TableName>タグの次行である14行目の「WBS_NTP_Maintenance」がテーブル名として記憶される(図7のS217:Y、S219)。
【0101】
続いて、図14のスクリプト11bの15行目が<TableDescription>タグであるため、<TableDescription>タグの次行である16行目から、次のタグの直前の行である41行目までが、%sをテーブ名に置換されながら、図16の登録用ファイル11c(5行目〜30行目)に出力される(図8のS221:Y、S223)。
【0102】
続いて、図14のスクリプト11bの42行目が<TableData>タグであるため、<TableData>タグの次行である43行目の「View Maintenance Information」と同じ文字列の行がネットワーク機器メンテナンスログ11f内にあるか検索する(図8のS225:Y、S227)。
【0103】
続いて、同文字列がネットワーク機器メンテナンスログ11f内にあるため(図12の1行目)、その行がネットワーク機器メンテナンスログ11fの読み出し開始位置として記憶される(図8のS229:Y、S231)。
【0104】
続いて、図14のスクリプト11bの44行目が<FieldTable>タグであるため、<FieldTable>タグの次行である45行目から、次のタグの直前の行である46行目までが、変換テーブルにセットされる(図8のS237〜S241)。具体的には、変換前「Printed Pages A4/LETTER」と変換後「PrintPageCount_A4_Letter」とが対として、変換前「Printed Pages OTHER」と変換後「PrintPageCount_Others」とが対として変換テーブルにセットされる。
【0105】
続いて、図15のスクリプト11bの47行目が<FieldName>タグであるため、<FieldTalbe>タグの次行である48行目から、次のタグの直前の行である68行目までが、各行、カンマの前までの文字列が、カンマの後ろの数値に応じて文字列型または数値型の何れかとしてフィールドテーブルにセットされる(図9のS243:Y〜S253)。具体的には、例えば、「Name」フィールドは文字列型フィールド、「Page_count」フィールドは数値型フィールドとしてフィールドテーブルにセットされる。
【0106】
続いて、図15のスクリプト11bの69行目が<RecordsHeader>タグであるため、<RecordsHeader>タグの次行である70行目と、次のタグの直前の行である71行目とがレコード開始記述として記憶される(図9のS255:Y、S257)。
【0107】
続いて、図15のスクリプト11bの72行目が<RecordsFooter>であるため、<RecordsFooter>タグの次行であり、次のタグの直前の行でもある73行目がレコード終了記述として記憶される(図9のS259:Y、S261)。
【0108】
続いて、図12のネットワーク機器メンテナンスログ11fから項目名の行(2行目)が読み出される(図9のS263)。
続いて、読み出された行からカンマを区切り文字として順に文字列が取り出され(図10のS269)、その取り出された文字列が変換テーブルにしたがって変換され(図10のS271,S273)、さらに、フィールドテーブルにその文字列が存在する場合(図10のS275:Y)は、フィールドテーブルにカラム位置番号が登録される(図10のS277)。
【0109】
続いて、図12のネットワーク機器メンテナンスログ11fからデータ行(3行目)が読み出され、読み出された行がさらにカンマを区切り文字として文字列毎に配列に格納される(図10のS287)。
【0110】
続いて、図16の登録用ファイル11c(31行目〜32行目)にレコード開始記述が出力される(図10のS291)。
続いて、図11のS293〜S305に従って、上述したフィールドテーブルと配列とから出力用の文字列行が生成されて、図16の登録用ファイル11c(32行目〜52行目)に順に出力される。
【0111】
フィールドテーブルからすべてのレコードが出力されると、レコード終了記述が図16の登録用ファイル11c(52行目)に出力される(図11のS309)。
続いて、図12のネットワーク機器メンテナンスログ11fの4行目が読み出され、上述した処理が繰り返され、各行が図17の登録用ファイル11c(53行目から74行目)に出力される。
【0112】
続いて、図13のネットワーク機器メンテナンスログ11fの5行目が読み出され、上述した処理が繰り返され、各行が図17の登録用ファイル11c(75行目から96行目)に出力される。
【0113】
図13のネットワーク機器メンテナンスログ11fのすべてのデータ行が処理されると、SQL変換出力処理が終了し、ログ変換処理のS150:Y、S160:Yと進みログ変換処理が終了する。
【0114】
3.効果
以上、実施形態のログ管理システムの構成および動作について説明したが、本実施形態のログ管理プログラム11aによれば、登録するデータベースの形式に合わせて適切なスクリプト11bを用意することにより、様々なデータベースに登録可能な登録用ファイル11cを得ることができる。つまり、登録用ファイルを生成するプログラムに比較して簡易に作成できるスクリプト11bを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル(登録用ファイル11c)が得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルを生成するプログラムを個別に用意する場合と比較して、本実施形態のログ管理プログラム11aを利用する場合の方が管理者等の手間を軽減することができる。
【0115】
また、スクリプト11bに対応テーブル名や対応項目名を記述することができるようになっているため、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプト11bの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【0116】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<DatabaseName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述)すれば、ログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【0117】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述)すれば、フォーマットの異なる複数のログデータを1つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。また、<DatabaseName>タグの次行を異なるように記載すれば、異なるデータベースに登録することができる。この点の一例について、図19(a)の説明図を用いて説明する。ログ管理プログラム11aがネットワーク機器ログ11eとローカル機器ログ11dとを読み込んで登録用ファイル11cを出力し、その登録用ファイル11cをプリンタデータベースに登録させることにより、ネットワーク機器ログ11eに含まれていたA4 PageCount(Network)という項目のデータと、ローカル機器ログ11dに含まれていたA4 PageCount(Local)という項目のデータとがプリンタデータベースのプリンタメンテナンステーブル1つに登録される。
【0118】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を異なるように記述)すれば、複数のテーブルで必要とされる同じログデータをそれぞれのテーブルに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。この点の一例について、図19(b)の説明図を用いて説明する。ログ管理プログラム11aがネットワーク機器ログ11eを読み込んで登録用ファイル11cを出力し、その登録用ファイル11cをプリンタデータベースと消耗品データベースに登録させることにより、ネットワーク機器ログ11eに含まれていたA4 PageCount(Network)という項目のデータがプリンタデータベースのプリンタメンテナンステーブルと消耗品データベースの用紙消費量テーブルという2つのテーブルに登録される。
【0119】
最後に、実施形態のログ管理システムの各部と特許請求の範囲に記載の用語との対応を示す。サーバPC11のHDD117がログファイル記憶手段およびスクリプト記憶手段に相当し、登録用ファイル11cの記述規則であるSQLが「標準化言語」に相当する。
【図面の簡単な説明】
【0120】
【図1】ログ管理システムの概略構成を示す説明図である。
【図2】サーバPCの概略構成を示すブロック図である。
【図3】クライアントPCの概略構成を示すブロック図である。
【図4】プリンタの概略構成を示すブロック図である。
【図5】複合機の概略構成を示すブロック図である。
【図6】ログ変換処理を説明するためのフローチャートである。
【図7】SQL変換出力処理を説明するためのフローチャートである(1/5)。
【図8】SQL変換出力処理を説明するためのフローチャートである(2/5)。
【図9】SQL変換出力処理を説明するためのフローチャートである(3/5)。
【図10】SQL変換出力処理を説明するためのフローチャートである(4/5)。
【図11】SQL変換出力処理を説明するためのフローチャートである(5/5)。
【図12】ネットワーク機器メンテナンスログの具体例である。
【図13】スクリプトを生成する際に必要な情報を入力するための入力画面の一例である。
【図14】スクリプトの具体例である(1/2)。
【図15】スクリプトの具体例である(2/2)。
【図16】登録用ファイルの具体例である(1/2)。
【図17】登録用ファイルの具体例である(2/2)。
【図18】登録先のデータベースの構造を説明するための説明図である。
【図19】効果を説明するための説明図である。
【符号の説明】
【0121】
11…サーバPC、11a…ログ管理プログラム、11b…スクリプト、11c…登録用ファイル、11d…ローカル機器ログ、11e…ネットワーク機器ログ、11f…ネットワーク機器メンテナンスログ、11g…ネットワーク機器一覧ファイル、13…クライアントPC、13a…監視プログラム、13b…ログファイル、15…プリンタ、15a…ログファイル、15b…MIB、17…複合機、17a…ログファイル、17b…MIB、19…クライアントPC、19a…監視プログラム、21…プリンタ、23…複合機、25…LAN、111…RAM、112…ROM、113…CPU、114…表示部、115…ローカルI/F、116…ネットワークI/F、117…HDD、118…入力部、119…バス、131…RAM、132…ROM、133…CPU、134…表示部、135…ローカルI/F、136…ネットワークI/F、137…HDD、138…入力部、139…バス、151…RAM、152…ROM、153…CPU、154…表示部、155…印刷部、156…ネットワークI/F、157…不揮発性RAM、158…カードスロット、159…メモリカード、160…バス、171…RAM、172…ROM、173…CPU、174…表示部、175…印刷部、176…スキャナ部、177…ネットワークI/F、178…電話回線I/F、179…不揮発性RAM、180…カードスロット、181…メモリカード、182…バス。
【技術分野】
【0001】
本発明は、複写機や複合機等の機器から収集したログデータに対して所定の処理を施すログ管理プログラム等に関する。
【背景技術】
【0002】
従来、複写機等の端末装置に故障等の異常が生じた場合、それらの端末装置を遠隔管理する管理装置には故障の回数のみが表示されるようになっていた。このため、サービスマンが故障部位の認識やその状態の認識を行うことができず、部品交換の要否等の判断を正確に行うことができなかった。そこでこのような問題を解決するために、特許文献1に記載の技術が提案された。この技術では、複写機に接続された通信ユニットがその複写機に関する様々な情報(コピー枚数、感光電圧、バイアス電圧、ヒートローラ温度、トラブルの発生有無、トラブルのコード、部品交換情報等)を、異常発生時等の所定のタイミングでセンタ装置に送信する。そして、センタ装置はその情報を受信すると所定のフォーマットに変換してファイルとして記憶し、表示要求に応じてそのファイルのデータを加工して表示部に表示させる。このため、サービスマンは表示部に表示された情報から異常の発生状況や履歴等を知ることができ、部品交換の要否等の判断を正確に行うことができる。
【特許文献1】特開平3−161763号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで近年、ネットワークの普及により、遠隔地から任意のタイミングで端末装置から情報(ログデータ)を取得できるようになった。このため、異常の兆候をつかみトラブルを未然に防いだり、運用状況を管理する等の目的のため、端末装置から取得したログデータをデータベースに登録させ、分析ツールを用いてその登録させたログデータを様々な角度から分析したいという要望が高まってきた。このような要望に応えるためには画像形成装置等の端末装置から送られてくるログデータをSQLファイルのような形式に変換して出力できるようになっているとデータベースへの登録には都合がよい。
【0004】
しかし、データベース管理システム(DBMS)が扱うSQLファイルにはベンダー毎に仕様上の若干の差違がある上、分析ツールが利用するテーブル名や項目名等も分析ツールによって異なる場合が多い。このため、それらに合わせてログデータを変換してSQLファイルを出力する必要があり、データベースの数だけSQLファイルを用意する必要がある。したがって一般的にはSQLファイルを生成するプログラムをデータベースの数だけ個別に用意する必要がある。しかし、このことはプログラムの作成に手間を要することを意味し、テーブル名の変更等に対しても柔軟に対応することが難しいことを意味する。
【0005】
そして、このような問題は、プリンタ、スキャナ、ファクシミリ、カメラ、またはこれらの機能を併せ持った複合機、画像形成装置等の端末装置から送られてくるログデータをデータベースに登録させるような場合に限らず、様々な機器(例えば、自動販売機、空調装置、カメラ、AV機器、ストレージ機器、またはこれらの機能を併せ持った複合機等)から送られてくるログデータをデータベースに登録させる場合の全てに言えることである。
【0006】
本発明は上述した問題に鑑みなされたものであり、画像形成装置等の機器から収集したログデータを、できるだけ管理者等の手間をかけずに様々な形式に変換して出力することができるログ管理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するためになされた請求項1に記載のログ管理プログラムは、機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段からログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得したスクリプトに基づいてログファイルのログデータを変換して標準化言語の仕様にしたがった登録用ファイルを出力する変換手順を備えることを特徴とする。なお、ここで言う「変換情報」というのは、例えば、ログデータのうちのどのデータをどのような形式で登録用ファイルに出力するかという情報である。また、ここで言う「標準化言語」というのは、データベースに対する操作を行うために広く用いられる言語、例えばSQLを意味する。
【0008】
このようなログ管理プログラムによれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。つまり、登録用ファイルが生成されるプログラムに比較して簡易に作成できるスクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルが生成されるプログラムを個別に用意する場合と比較して、本発明のログ管理プログラムを利用する場合の方が管理者等の手間を軽減することができる。
【0009】
また、スクリプトファイルに対応テーブル名や対応項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【0010】
ところで、ログファイル記憶手段が記憶するログファイルは、単一のフォーマットからなるログファイルのみを扱うようになっていてもよいが、ログデータを出力する機器が複数ある場合は、各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからログファイルが構成されている場合も考えられる。そのため、フォーマットの種別に対応させて変換情報をスクリプトに記述しておき、ログ管理プログラムの変換手順においては、各々のログデータのフォーマットに対応するスクリプトの変換情報に基づいて前述した変換を行い、登録用ファイルを出力するようになっているとよい(請求項2)。なお、ログファイル記憶手段が記憶するログファイルは、異なるフォーマットからなる複数のログデータが単一のファイルによって構成されていてもよいし、フォーマット毎に個別のファイルに分けられて構成されていてもよい。
【0011】
このようになっていれば、ログファイル記憶手段が記憶するログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【0012】
なお、上述した「各機器の提供情報の種類」というのは、例えば、各機器のログデータの記憶方法や提供方法の違いによるものが考えられる(請求項3)。具体的には、機器がネットワークに直接接続されておりログデータがネットワーク上に直接送出されるようになっている場合や、機器がパーソナルコンピュータに接続されておりログデータがパーソナルコンピュータによって収集されてネットワーク上に送出されるようになっている場合のように、機器からのログデータの提供方法が異なることにより、ログデータのフォーマットに違い生ずる場合がある。また、機器自身の記憶装置に記憶されたログデータと、機器から必要な情報を集めて管理プログラムが生成するログデータとでも、フォーマットに違いが生ずる場合がある。
【0013】
また、上述した「各機器の提供方法の種類」というのは、例えば、各機器の機種の違いによるものであることも考えられる(請求項4)。具体的には、機器のグレードの差異による違いや、機器自体の目的の違いや、発売時期の違い等により、提供できる情報の量や質が異なり、フォーマットの違いにつながっている。
【0014】
これらのような「各機器の提供方法の種類」に対応した複数のフォーマットのログデータがログファイルにおいて許容されるようになっていれば、よりログ管理プログラムの適用範囲が広がる。
【0015】
次に登録用ファイルについて言及する。一般的に、プログラムの管理上の問題から、ログデータの種類毎に登録用ファイルが生成されることが多いが、登録先のテーブルが一つである場合には、登録用ファイルに記述されるテーブルもその一つだけである方が都合がよい。したがって、各ログデータに対応するテーブル項目やテーブル構造に関する情報をスクリプトに予め記述しておき(例えば、ログデータAの要素a1はテーブルCの項目c1に対応し、ログデータBの要素b1はa1と同じ情報を示すものであればテーブルCの項目c1に、違うものであればテーブルCの項目c2に対応するというように)、ログ管理プログラムの変換手順における変換の際には、登録用ファイルが単一のテーブルに登録可能なファイルになるように変換して出力するようになっていてもよい(請求項5)。
【0016】
このようになっていれば、フォーマットの異なる複数のログデータを1つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。
【0017】
また、複数のテーブルに登録するための情報(例えば、ログデータAの要素a1はテーブルBの項目b1に対応し、同じログデータAの要素a1はテーブルCの項目c1にも対応するというような情報)をスクリプトに予め記述しておき、ログ管理プログラムの変換手順における変換の際には、同じログデータの情報が複数のテーブルに登録可能となるように変換して出力するようになっていてもよい(請求項6)。
【0018】
このようになっていれば、複数のテーブルで必要とされる同じログデータをそれぞれに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。
【0019】
ところで、上述した「機器」というのは、どのようなものであってもよいが、特に画像形成装置であるとよい(請求項7)。
一般的に画像形成装置は、感光ローラ、紙送り機構等の可動部が多い上、トナーカードリッジをトナーの残量に応じて交換する必要があり、他の機器に比較してメンテナンスに手間を要する。このためログデータを解析して故障の発生の予測を行いたい、トナーカードリッジの交換時期を予測したい等の要望が他の機器に比較して多い。したがって、画像形成装置においては、上述したようなログ管理プログラムの利用価値が特に高い。
【0020】
なお、ログ管理プログラムは、さらに、機器からログデータまたはログデータを有するログファイルを取得してログファイル記憶手段に記憶させるログデータ取得手順を備えていてもよい(請求項8)。
【0021】
このようになっていれば、別途、機器からログデータを収集してログファイル記憶手段に記憶させる仕組みを用意する必要がなくなる。
また、ログ管理プログラムは、さらに、表示手段に表示されたGUI(グラフィカルユーザーインターフェース)によって入力された情報に基づいてスクリプトを生成してスクリプト記憶手段に記憶させるスクリプト生成手順を備えていてもよい(請求項9)。
【0022】
このようになっていれば、スクリプトを容易に生成することができるため、管理者の手間が軽減され、ログ管理プログラムの利用性が高まる。
ところで、プログラムを実行可能なサーバに上述したログ管理プログラムを実行させてログ管理サーバを構成してもよい(請求項10)。
【0023】
このようにログ管理サーバを構成すれば、このサーバを利用することにより上述した効果を得ることができる。
また、ログデータを出力する機器と、プログラムを実行可能なサーバであって、機器が出力したログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項1〜請求項9の何れかに記載のログ管理プログラムを実行するログ管理サーバと、によってログ管理システムを構成してもよい(請求項11)。
【0024】
このようにログ管理システムを構成すれば、このシステムを利用することにより上述した効果を得ることができる。
また、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法(請求項12)によっても、上述した課題を解決することができる。
【0025】
そして、このようなログ変換方法によれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。したがって、スクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られ、管理者等の手間を軽減することができる。また、スクリプトファイルにテーブル名や項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルを修正するだけで対応することができ、管理者等の手間を軽減することができる。
【0026】
なお、上述した請求項2〜請求項9の何れかに記載のログ管理プログラムが有する変換手順によって実現される方法を実行することによっても上述した各ログ管理プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明が適用された実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【0028】
1.構成の説明
図1は、実施形態のログ管理システムの概略構成を示す構成図である。ログ管理システムは、主に、LAN25に接続されたサーバPC11と、LAN25に接続されたクライアントPC13と、そのクライアントPC13にパラレルケーブルによって接続されたプリンタ15と、LAN25に接続されたプリンタ21と、LAN25に接続された複合機23と、LAN25に接続されたクライアントPC19と、そのクライアントPC19とUSBケーブルによって接続された複合機17とから構成される。
【0029】
サーバPC11は、ログ管理プログラム11aを記憶しており、そのログ管理プログラム11aを実行可能なパーソナルコンピュータである。ここでサーバPC11の構成について、図2のブロック図を用いて詳細に説明する。サーバPC11は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM111と、基本的なプログラム等が記憶されたROM112と、プログラムを実行するCPU113と、液晶ディスプレイ等からなり画像を表示可能な表示部114と、パラレルケーブルやUSBケーブルを介して外部の機器と通信可能なローカルI/F115と、イーサネット(登録商標)等のネットワークを介して外部の機器と通信可能なネットワークI/F116と、アプリケーションプログラムやログファイル等を記憶するHDD117と、キーボードやマウス等からなる入力部118と、これらを結ぶバス119とから構成される。なお、表示部114や入力部118は、ネットワークI/F116を介して接続された外部の別の端末装置によってまかなわれていてもよい。また、HDD117が記憶する具体的なものとしては、ログ管理プログラム11aと、ログ管理プログラム11aが実行時に読み込むスクリプト11bと、後述する各ログファイルをもとにログ管理プログラム11aによって出力される登録用ファイル11cと、ログ管理プログラム11aによって収集されて出力されるローカル機器ログ11d(ローカル接続されたプリンタおよび複合機のログファイルを接続PCから収集して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器ログ11e(ネットワークに直接接続されたプリンタおよび複合機が蓄積しているログファイルを収集して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器メンテナンスログ11f(ネットワークに直接接続されたプリンタおよび複合機からメンテナンス用の情報を直接取得して構成するログファイル)と、ログ管理プログラム11aによって収集されて出力されるネットワーク機器一覧ファイル(ネットワークに直接接続されたプリンタおよび複合機に関する一覧情報によって構成されるファイル)とが存在する。なお、スクリプト11bおよび登録用ファイル11cはテキスト形式のファイルであり、ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gはいずれもcsv形式のファイルである。また、登録用ファイル11cはSQLの記述規則に従って記述されている。
【0030】
説明を図1に戻し、クライアントPC13は、監視プログラム13aを記憶しており、その監視プログラム13aを実行可能なパーソナルコンピュータである。ここでクライアントPC13の構成について、図3のブロック図を用いて詳細に説明する。クライアントPC13は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM131と、基本的なプログラム等が記憶されたROM132と、プログラムを実行するCPU133と、液晶ディスプレイ等からなり画像を表示可能な表示部134と、パラレルケーブルやUSBケーブルを介して外部の機器と通信可能なローカルI/F135と、イーサネット(登録商標)等のネットワークを介して外部の機器と通信可能なネットワークI/F136と、アプリケーションプログラムやログファイル等を記憶するHDD137と、キーボードやマウス等からなる入力部138と、これら各部を結ぶバス139とから構成される。なお、HDD137が記憶する具体的なものとしては、ローカル接続されたプリンタや複合機を監視する監視プログラム13aと、監視プログラム13aによりプリンタや複合機から収集した情報(ログデータ)をファイル化したログファイル13bとが存在する。
【0031】
説明を図1に戻し、プリンタ15は、クライアントPC13とパラレルケーブルによって接続され、主にクライアントPC13からの指令に基づいて機能するプリンタである。プリンタ15の構成について図4のブロック図を用いて詳細に説明する。プリンタ15は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM151と、各種のプログラムが記憶されたROM152と、プログラムを実行するCPU153と、液晶ディスプレイ等からなり画像を表示可能な表示部154と、印刷媒体に印刷を行う印刷部155と、パラレルケーブルやUSBケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークI/F156と、自身の状態等を外部に知らせるための情報(ログデータ)であるMIB(Management Information Base)15bを記憶する不揮発性RAM157と、メモリカードのインターフェースを備えたスロットであるカードスロット158と、これら各部を結ぶバス160とから構成される。また、カードスロット158には、プリンタ15に関する情報(ログデータ)が蓄積されて構成されたログファイル15aを記憶するメモリカード159がセットされている。
【0032】
説明を図1に戻し、複合機17は、クライアントPC19とUSBケーブルによって接続され、クライアントPC19からの指令に基づいて機能することも可能な複合機17である。複合機17の構成について図5のブロック図を用いて詳細に説明する。複合機17は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるRAM171と、各種のプログラムが記憶されたROM172と、プログラムを実行するCPU173と、液晶ディスプレイ等からなり画像を表示可能な表示部174と、印刷媒体に印刷を行う印刷部175と、CCD等からなり画像を読み取り可能なスキャナ部176と、パラレルケーブルやUSBケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークI/F177と、ファクシミリ送受信時に通信機能を担う電話回線I/F178と、自身の状態等を外部に知らせるための情報(ログデータ)であるMIB17bを記憶する不揮発性RAM179と、メモリカードのインターフェースを備えたスロットであるカードスロット180と、これら各部を結ぶバス182とから構成される。また、カードスロット180には、複合機17に関する情報(ログデータ)が蓄積されて構成されたログファイル17aを記憶するメモリカード181がセットされている。
【0033】
説明を図1に戻し、プリンタ21は、LAN25に接続され、LAN25上の機器から直接指令を受け取って機能するプリンタである。プリンタ21の構成は、上述したプリンタ15と基本的に同じであるため、説明を省略する。
【0034】
複合機23は、LAN25に接続され、LAN25上の機器から指令を受け取って機能する複合機である。複合機23の構成は上述した複合機17と基本的に同じであるため、説明を省略する。
【0035】
2.動作の説明
次に、本実施形態のログ管理システムの特徴部分であるサーバPC11に記憶されたログ管理プログラム11aを中心にして、ログ管理システムの動作について説明する。まず、概要について説明する。
【0036】
プリンタ15,21および複合機17,23は、自身の状態や印刷履歴等の情報(ログデータ)をログファイル(例えばログファイル15a,17a)として記憶しており、外部からの指令によってそのログファイルを出力することができるようになっている。また、外部からの要求によって、要求に応じたログデータを直接出力することもできるようになっている。
【0037】
クライアントPC13に記憶されている監視プログラム13aは、定期的または実行が指示された際にプリンタ15からログデータ(MIB15b)やログファイル15aを取得し、これらをログファイル(ログファイル13b)としてクライアントPC13内に記憶する。また、監視プログラム13aは、サーバPC11に記憶されているログ管理プログラム11aからログファイル13bを要求された際には、その要求されたログファイル13bをサーバPC11に送信するようになっている。
【0038】
クライアントPC19に記憶されている監視プログラム19aも上述した監視プログラム13aと同様に、定期的または実行が指示された際に複合機17からログデータ(MIB17b)やログファイル17aを取得し、これらをログファイルとしてクライアントPC19内に記憶する。また、監視プログラム19aは、サーバPC11に記憶されているログ管理プログラム11aからログファイルを要求された際には、その要求されたログファイルをサーバPC11に送信するようになっている。
【0039】
次に、サーバPC11に記憶されているログ管理プログラム11aについて詳細に説明する。ログ管理プログラム11aは、CPU113によってHDD117から読み出されて実行される。また、ログ管理プログラム11aは、主に3つの機能を有する。つまり、ログデータまたはログファイルを収集し、それらをログファイルとしてHDD117に記憶させる「ログ収集機能」、HDD117に記憶されているログファイルをデータベース登録用ファイルに変換する「ログ変換機能」、この変換の際に用いるスクリプトを生成する「スクリプト生成機能」の3つである。
【0040】
このうち「ログ収集機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際、利用者がネットワークI/F116を介して別の端末装置から指示を入力した際、または予め設定された日時になった際に実行される機能である。具体的には、クライアントPC13,19からログファイル13b等や、プリンタ21,複合機23からログファイル15a等やMIB15b等を収集し、ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gを生成してHDD117に記憶させる機能である。
【0041】
ここで、ネットワーク機器メンテナンスログ11fを取り上げ、具体的な形式について説明する。図12に示すリストのように、ネットワーク機器メンテナンスログ11fは、1行目にはログデータの名前「View Maintenance Information」が記述され、2行目にはデータ項目名がカンマ区切りで記述され、、3行目以降には2行目のデータ項目名の順にデータがカンマ区切りで記述されている。具体的な各項目の内容について説明する。1番目の「Name」はプリンタや複合機等の名称であり、例えば「PRN_355618」(3行目)や「PRN_224156」(4行目)というデータである。2番目の「Device_Type」は当該機器の種別であり、例えば「Br H-57N series」(3行目)や「Br H-65D_DN series」(4行目)というデータである。3番目の「IP_Address」は当該機器に割り当てられたIPアドレスである。3番目の「Location」は当該機器の設置場所であり、例えば「5F」(3行目)や「3F」(4行目)というデータである。4番目の「Contact」は連絡先の電話番号であり、例えば「123-2345」(3行目)や「123-5432」(4行目)というデータである。5番目の「Serial_Number」は機器のシリアル番号であり、例えば「A00000001」(3行目)や「B00000001」(4行目)というデータである。6番目の「MAC_Address」は、当該機器のネットワークインターフェースに設定されたMACアドレスである。7番目の「Date」は当該データの発生日付である。8番目の「Page_Count」は総出力ページ枚数である。9番目の「Drum_Unit_Remaining_Life」はドラムユニットの出力可能な残りページ枚数である。10番目の「Black_Coverage」は用紙に対するトナーが定着している印刷面積の割合である。11番目の「Black_Toner_Replace_Count」はブラックトナーの交換回数である。12番目の「Drum_Unit_Replace_Count」はドラムユニットの交換回数である。13番目の「Total_Pages_Printed_TRAY_1」は用紙トレー1の総出力枚数である。14番目の「Total_Pages_Printed_MP_TRAY」は多目的トレー(任意のサイズの用紙がセットできるトレイ)が用いられて出力された総枚数である。15番目の「Jam_Total」は紙詰まり回数である。16番目の「PrintPageCount_A4_Letter」はA4あるいはレターサイズの出力枚数である。17番目の「PrintPageCount_Legal」はリーガルサイズの出力枚数である。18番目の「PrintPageCount_B5_Exe」はB5あるいはエグゼキューティブサイズの出力枚数である。19番目の「PrintPageCount_Envelopes」は封筒サイズの出力枚数である。220番目の「PrintPageCount_Others」はその他のサイズの出力枚数である。
【0042】
また、これらの各項目のデータは、3行目以降において、文字列型であればダブルクォーテーションで囲まれており、数値型であればそのまま記述されている。なお、これらのログデータの名前(1行目)、データ項目名(2行目)、データ(3行目〜)の組み合わせは、ネットワーク機器メンテナンスログ11f内に複数あってもよい。
【0043】
次に「スクリプト生成機能」について説明する。「スクリプト生成機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際に実行される機能である。具体的には、サーバPC11の表示部114に図13に示す入力画面401が表示され、利用者が入力部118を操作して入力画面401に必要な情報を入力することにより、スクリプト11bが生成される。以下、入力画面401について説明し、続いてスクリプト11bについて説明する。
【0044】
入力画面401は、入力ファイルを指定するテキストボックス402(<InFile>タグに対応するテキストボックス)と、出力ファイルを指定するテキストボックス403(<OutFile>タグに対応するテキストボックス)と、フィールドテーブル(フィールド名の対応関係を有するテーブル)の内容を記述するテキストボックス404(<FieldTable>タグに対応するテキストボックス)と、複合型フィールド(データ行の中にフィールド名が含まれているもの)に関する情報を記述するテキストボックス405(<MultiField>タグに対応するテキストボックス)と、データベース名を記述するテキストボックス406(<DatabaseName>タグに対応するテキストボックス)と、データベースに関する記述を記すテキストボックス407(<DatabaseDescription>タグに対応するテキストボックス)と、テーブル名を記述するテキストボックス408(<TableName>タグに対応するテキストボックス)と、テーブルに関する記述を記すテキストボックス409(<TableDescription>タグに対応するテキストボックス)と、レコードの先頭記述を記すテキストボック410(<RecordsHeader>タグに対応するテキストボックス)と、レコードに記述するフィールド名とデータ型のリストを記述するテキストボックス411(<FieldName>タグに対応するテキストボックス)と、レコードの終端記述を記すテキストボックス412(<RecordsFooter>タグに対応するテキストボックス)と、スクリプト11bを出力せずに入力画面401を閉じるためのコマンドボタン413と、スクリプト11bを出力して入力画面401を閉じるためのコマンドボタン414とから構成される。
【0045】
一方、スクリプト11bは、例えば図14および図15(図15は図14)の続きである)に記されたリストのような記述内容である(各行「:」以前は行番号である)。図14および図15に示すように、リスト全体は<Template>タグと</Template>タグによって囲まれ、その間に各タグが記述され、各タグの直後にそれぞれのタグに関連する事項が記述されるといった形式になっている。なお、図14および図15に示すリストには、<Template>タグと</Template>タグによって記述された部分が1つしか記されていないが、同様の部分がスクリプト11b中に複数回記されていてもよい。
【0046】
次に、「ログ変換機能」について説明する。「ログ変換機能」は、利用者がサーバPC11の入力部118を操作して指示を入力した際、または予め設定された日時になった際に実行される機能である。以下、ログ変換機能の具体的処理であるログ変換処理およびそのログ変換処理から呼び出されるSQL変換出力処理について説明する。
【0047】
(1)ログ変換処理
まず、ログ変換処理について、図6のフローチャートを用いて説明する。CPU113は、ログ変換処理の実行を開始すると、まず、HDD117に記憶されているスクリプト11bのファイルをオープンし、読み込み行を先頭に設定する(S110)。続いて、スクリプト11bから、読み込み行として設定されている行を1行読み込み、次の読み込み行を1行進める(S120)。
【0048】
続いて、S120で読み込んだ1行に<Template>タグが記述されているか否かによって処理を分岐する(S130)。<Template>タグが記述されている場合にはS140に進み、<Template>タグが記述されていない場合にはS160に進む。
【0049】
S140では、SQL変換出力処理(HDD117に記憶されている各ログファイルを読み込み、スクリプト11bに基づいて登録用ファイル11c(SQLファイル)を出力する処理)を実行する。このSQL変換出力処理の詳細については後述する。SQL変換出力処理の実行を完了するとS150に進む。
【0050】
S150では、SQL変換出力処理が正常に終了したか否かによって処理を分岐する。具体的には、後述するエラーフラグを参照して判断する。SQL変換出力処理が正常に終了した場合にはS160に進み、SQL変換出力処理が正常に終了しなかった場合には、その旨を表示部114に表示させ、本処理(ログ変換処理)を終了する。
【0051】
S160では、読み込み行として設定されている行がスクリプト11bにおける最終行であるか否かによって処理を分岐する。読み込み行として設定されている行がスクリプト11bにおける最終行である場合には本処理(ログ変換処理)を終了し、読み込み行として設定されている行がスクリプト11bにおける最終行でない場合はS120に処理を戻す。
【0052】
(2)SQL変換出力処理
次に、SQL変換出力処理について図7のフローチャートを用いて説明する。CPU113は、SQL変換出力処理の実行を開始すると、まず、上述したログ変換処理のS120で検出した<Template>タグからそれに対応するスクリプト11b内の</Template>タグの間(以下、「スクリプト11bの対象範囲内」と言う。)に<InFile>タグが記述されているか否かによって処理を分岐する(S201)。<InFile>タグが記述されている場合にはS203に進み、<InFile>タグが記述されていない場合にはS218に進み、その進んだS218ではエラーフラグを立て、本処理(SQL変換出力処理)を終了し、呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0053】
<InFile>タグが記述されている場合に進むS203では、<InFile>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている名前のファイル(ローカル機器ログ11d,ネットワーク機器ログ11e,ネットワーク機器メンテナンスログ11f,ネットワーク機器一覧ファイル11gの何れか)を入力ファイルとして開く。
【0054】
続くS205では、スクリプト11bの対象範囲内に<OutFile>タグが記述されているか否かによって処理を分岐する。<OutFile>タグが記述されている場合にはS207に進み、<OutFile>タグが記述されていない場合にはS218に進み、その進んだS218ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0055】
<OutFile>タグが記述されている場合に進むS207では、<OutFile>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている名前のファイルを出力ファイルとして用意する(登録用ファイル11cに対応)。
【0056】
続くS209では、スクリプト11bの対象範囲内に<DatabaseName>タグが記述されているか否かによって処理を分岐する。<DatabaseName>タグが記述されている場合にはS211に進み、<DatabaseName>タグが記述されていない場合にはS213に進む。
【0057】
<DatabaseName>タグが記述されている場合に進むS211では、<DatabaseName>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている文字列をデータベース名として記憶し、S213に進む。
【0058】
S213では、スクリプト11bの対象範囲内に<DatabaseDescription>タグが記述されているか否かによって処理を分岐する。<DatabaseDescription>タグが記述されている場合にはS215に進み、<DatabaseDescription>タグが記述されていない場合にはS217に進む。
【0059】
<DatabaseDescription>タグが記述されている場合に進むS215では、<DatabaseDescription>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、その中に含まれる「%s」を、記憶しておいたデータベース名に置換しながら、出力ファイルに書き出す。なお、上述したS211でデータベース名を記憶していない場合には行中に「%s」が含まれることはない。<DatabaseDescription>タグから次のタグまでの間の行を全て書き出すとS217に進む。
【0060】
S217では、スクリプト11bの対象範囲内に<TableName>タグが記述されているか否かによって処理を分岐する。<TableName>タグが記述されている場合にはS219に進み、<TableName>タグが記述されていない場合には結合子1に従い、S221(図8参照)に進む。
【0061】
<TableName>タグが記述されている場合に進むS219では、<TableName>タグの次行をスクリプト11bから読み込み、その読み込んだ行に記述されている文字列をテーブル名として記憶して結合子1に従い、S221(図8参照)に進む。
【0062】
説明を図8のフローチャートに移し、結合子1に続くS221では、スクリプト11bの対象範囲内に<TableDescription>タグが記述されているか否かによって処理を分岐する。<TableDescription>タグが記述されている場合にはS223に進み、<TableDescription>タグが記述されていない場合にはS225に進む。
【0063】
<TableDescription>タグが記述されている場合に進むS223では、<TableDescription>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、その行中に含まれる「%s」を、記憶しておいたテーブル名に置換しながら、出力ファイルに書き出す。なお、上述したS219でテーブル名を記憶していない場合には行中に「%s」が含まれることはない。<TableDescription>タグから次のタグまでの間の行を全て書き出すとS225に進む。
【0064】
S225では、スクリプト11bの対象範囲内に<TableData>タグが記述されているか否かによって処理を分岐する。<TableData>タグが記述されている場合にはS227に進み、<TableData>タグが記述されていない場合にはS233に進む。
【0065】
<TableData>タグが記述されていない場合に進むS233では、入力ファイルの読み出し開始位置を先頭にして記憶し、S235に進む。
一方、<TableData>タグが記述されている場合に進むS227では、<TableData>タグの次の行に記述されている文字列と入力ファイル中の各行とで一致するものがあるかどうか検索する。そして、一致するものがあるか否かによって処理を分岐する(S229)。一致するものがある場合にはS231に進み、一致するものがない場合にはS230に進み、その進んだS230ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0066】
S231では、入力ファイル中の一致した行の位置を読み出し開始位置として記憶し、S235に進む。
S235では、スクリプト11bの対象範囲内に<FieldTable>タグが記述されているか否かによって処理を分岐する。<FieldTable>タグが記述されている場合にはS237に進み、<FieldTable>タグが記述されていない場合には結合子2に従い、S243(図9参照)に進む。
【0067】
<FieldTable>タグが記述されている場合に進むS237では、<FieldTable>タグの次の行をスクリプト11bから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する(S239)。読み込んだ行にタグが記述されている場合は結合子2に従い、S243(図9参照)に進み、読み込んだ行にタグが記述されていない場合にはS241に進む。
【0068】
S241では、読み込んだ行のうち、カンマの前までの文字列をCSV項目名、カンマの後ろからの文字列をフィールド名とし、これらをセットにして変換テーブルに記憶し、S237に処理を戻す。
【0069】
説明を図9のフローチャートに移し、結合子2に続くS243では、スクリプト11bの対象範囲内に<FieldName>タグが記述されているか否かによって処理を分岐する。<FieldName>タグが記述されている場合にはS245に進み、<FieldName>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0070】
<FieldName>タグが記述されている場合に進むS245では、<FieldName>タグの次の行をスクリプト11bから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する(S247)。読み込んだ行にタグが記述されている場合にはS255に進み、読み込んだ行にタグが記述されていなければS249に進む。
【0071】
S249では、読み込んだ行のうち、カンマの直後の数値が「1」であるか否かによって処理を分岐する。カンマの直後の数値が「1」である場合はS251に進み、カンマの直後の数値が「1」でない場合はS253に進む。
【0072】
カンマの直後の数値が「1」である場合に進むS251では、読み込んだ行のうち、カンマの前までの文字列を文字列型フィールドとし、その情報と文字列とをセットにしてフィールドテーブルに記憶し、S245に処理を戻す。
【0073】
一方、 カンマの直後の数値が「1」でない場合に進むS253では、読み込んだ行のうち、カンマの前までの文字列を数値型フィールドとし、その情報と文字列とをセットにして(1レコードとして)フィールドテーブルに記憶し、S245に処理を戻す。
【0074】
読み込んだ行にタグが記述されている場合に進むS255では、スクリプト11bの対象範囲内に<RecordsHeader>タグが記述されているか否かによって処理を分岐する。<RecordsHeader>タグが記述されている場合にはS257に進み、<RecordsHeader>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0075】
<RecordsHeader>タグが記述されている場合に進むS257では、<RecordsHeader>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、レコード開始記述として記憶する。
【0076】
続くS259では、スクリプト11bの対象範囲内に<RecordsFooter>タグが記述されているか否かによって処理を分岐する。<RecordsFooter>タグが記述されている場合にはS261に進み、<RecordsFooter>タグが記述されていない場合にはS266に進み、その進んだS266ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0077】
<RecordsFooter>タグが記述されている場合に進むS261では、<RecordsFooter>タグから次のタグまでの間をスクリプト11bから行単位で順に読み込み、レコード終了記述として記憶する。
【0078】
続くS263では、入力ファイルから項目名の行を読み出す。そして、変数であるカラム位置番号に0を代入し(S265)、結合子3に従い、S267(図10参照)に進む。
【0079】
説明を図10のフローチャートに移し、結合子3に続くS267では、カラム位置番号を1増やす。そして、入力ファイルから入力した項目名の行から未処理のカンマまでの文字列を切り出す(S269)。
【0080】
続くS271では、変換テーブルの項目名の中にS269で切り出した文字列があるか否かによって処理を分岐する。変換テーブルの項目名の中にS269で切り出した文字列がある場合にはS273に進み、変換テーブルの項目名の中にS269で切り出した文字列がない場合にはS275に進む。
【0081】
変換テーブルのCSV項目名の中にS269で切り出した文字列がある場合に進むS273では、切り出した文字列を変換テーブルのフィールド名に置換して記憶し、S275に進む。
【0082】
S275では、S269で切り出し文字列、または、S273で置換した文字列(フィールド名)がフィールドテーブルの中にあるか否かによって処理を分岐する(S275)。フィールドテーブルの中に該当文字列がある場合にはS277に進み、フィールドテーブルの中に該当文字列がない場合にはS279に進む。
【0083】
フィールドテーブルの中に該当文字列がある場合に進むS277では、その文字列に対応づけてカラム位置番号をフィールドテーブルに登録(その文字列のレコードにカラム位置番号を追加)し、S279に進む。
【0084】
S279では、S269で切り出した文字列の後が改行であるか否かによって処理を分岐する。S269で切り出した文字列の後が改行である場合にはS281に進み、S269で切り出した文字列の後が改行でない場合にはS267に処理を戻す。
【0085】
S269で切り出した文字列の後が改行である場合に進むS281では、入力ファイルから次行を読み込む。そして、その読み込んだ行の中にカンマがあるか否かによって処理を分岐する(S283)。読み込んだ行の中にカンマがある場合にはS285に進み、読み込んだ行にカンマがない場合にはS292に進み、その進んだS292ではエラーフラグを立て、本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0086】
S285では、S281で読み込んだ行をカンマによって切り分け、切り分けた文字列を順に配列に格納する(S287)。
続く、S291では、記憶しておいたレコード開始記述を出力ファイルに書き出し、結合子4に従い、S293に(図11参照)に進む。
【0087】
説明を図11のフローチャートに移し、結合子4に続くS293では、フィールドテーブルの中からまだ読み出していないレコードを順に読み出す。なお、結合子4に続いて進んできた際には読み出し済みのレコードであるか否かの情報を初期化する。
【0088】
続くS295では、S293で読み出したレコードにカラム位置が登録されているか否かによって処理を分岐する。S293で読み出したレコードにカラム位置が登録されている場合にはS297に進み、S293で読み出したレコードにカラム位置が登録されていない場合にはS307に進む。
【0089】
S297では、S293で読み出したレコード内のフィールド名にイコール(=)を付けて出力ファイルに書き出す。
続くS299では、S293で読み出したレコード内のカラム位置の番号をインデックスとして配列から文字列を取得する。
【0090】
続くS301では、S293で読み出したレコード内の型情報に基づいてフィールドが文字列型であるか否かによって処理を分岐する。フィールドが文字列型である場合にはS303に進み、フィールドが文字列型でない場合にはS305に進む。
【0091】
フィールドが文字列型である場合に進むS303では、S299で取得した文字列をシングルクォートで囲み、S305に進む。
S305では、文字列に改行コードを付けて出力ファイルに書き出し、S307に進む。
【0092】
S307では、フィールドテーブルからまだ読み出していないレコードがあるか否かによって処理を分岐する。フィールドテーブルからまだ読み出していないレコードがある場合にはS293に処理を戻し、フィールドテーブルからまだ読み出していないレコードがない場合にはS309に進む。
【0093】
S309では、記憶しておいたレコード終了記述を出力ファイルに書き出し、S311に進む。
S311では、入力ファイルに次行があるか否かによって処理を分岐する。入力ファイルに次行がある場合には結合子5に従ってS281(図10参照)に処理を戻し、入力ファイルに次行がない場合には本処理(SQL変換出力処理)を終了して呼び出しもとのログ変換処理(図6のS140参照)に戻る。
【0094】
(3)実例
ここまでで、ログ変換処理およびそのログ変換処理から呼び出されるSQL変換出力処理について説明したが、ここで、図14および図15のスクリプト11bが用いられて図12のネットワーク機器メンテナンスログ11fから図16および図17の登録用ファイル11cが出力される様子を説明する。なお、登録用ファイル11cの登録先であるデータベースは、図18のデータベース構造図に示すように、データベースの名称は「WBA_DB」であり、そのデーターベースにはテーブルとして「WBA_NP_Maintenance」、「WBA_NetworkPrinterList」、「WBA_LocalPrinter」の3つが存在する。
【0095】
ログ変換処理の実行が開始されると、まず、図14および図15のスクリプト11bが開かれ、1行目が読み込まれる(図6のS120)。ここで、1行目が<Template>タグであるため、SQL変換出力処理に移行する(図6のS130:Y、S140)。
【0096】
続いて、図14のスクリプト11bの2行目が<InFile>タグであるため、<InFile>タグの次行である3行目の「pintlog.csv」(ネットワーク機器メンテナンスログ11fに相当)が開かれる(図7のS201:Y、S203)。
【0097】
続いて、図14のスクリプト11bの4行目が<OutFile>タグであるため、<OutFile>タグの次行である5行目の「sql\printlog.sql」(登録用ファイル11cに相当)が開かれる(図7のS205:Y、S207)。
【0098】
続いて、図14のスクリプト11bの6行目が<DatabaseName>タグであるため、<DatabaseName>タグの次行である7行目の「WBA_DB」がデータベース名として記憶される(図7のS209:Y、S211)。
【0099】
続いて、図14のスクリプト11bの8行目が<DatabaseDescription>タグであるため、<DatabaseDescription>タグの次行である9行目から、次のタグの直前の行である12行目までが、%sをデータベース名に置換されながら、図16の登録用ファイル11c(1行目〜4行目)に出力される(図7のS213:Y、S215)。
【0100】
続いて、図14のスクリプト11bの13行目が<TableName>タグであるため、<TableName>タグの次行である14行目の「WBS_NTP_Maintenance」がテーブル名として記憶される(図7のS217:Y、S219)。
【0101】
続いて、図14のスクリプト11bの15行目が<TableDescription>タグであるため、<TableDescription>タグの次行である16行目から、次のタグの直前の行である41行目までが、%sをテーブ名に置換されながら、図16の登録用ファイル11c(5行目〜30行目)に出力される(図8のS221:Y、S223)。
【0102】
続いて、図14のスクリプト11bの42行目が<TableData>タグであるため、<TableData>タグの次行である43行目の「View Maintenance Information」と同じ文字列の行がネットワーク機器メンテナンスログ11f内にあるか検索する(図8のS225:Y、S227)。
【0103】
続いて、同文字列がネットワーク機器メンテナンスログ11f内にあるため(図12の1行目)、その行がネットワーク機器メンテナンスログ11fの読み出し開始位置として記憶される(図8のS229:Y、S231)。
【0104】
続いて、図14のスクリプト11bの44行目が<FieldTable>タグであるため、<FieldTable>タグの次行である45行目から、次のタグの直前の行である46行目までが、変換テーブルにセットされる(図8のS237〜S241)。具体的には、変換前「Printed Pages A4/LETTER」と変換後「PrintPageCount_A4_Letter」とが対として、変換前「Printed Pages OTHER」と変換後「PrintPageCount_Others」とが対として変換テーブルにセットされる。
【0105】
続いて、図15のスクリプト11bの47行目が<FieldName>タグであるため、<FieldTalbe>タグの次行である48行目から、次のタグの直前の行である68行目までが、各行、カンマの前までの文字列が、カンマの後ろの数値に応じて文字列型または数値型の何れかとしてフィールドテーブルにセットされる(図9のS243:Y〜S253)。具体的には、例えば、「Name」フィールドは文字列型フィールド、「Page_count」フィールドは数値型フィールドとしてフィールドテーブルにセットされる。
【0106】
続いて、図15のスクリプト11bの69行目が<RecordsHeader>タグであるため、<RecordsHeader>タグの次行である70行目と、次のタグの直前の行である71行目とがレコード開始記述として記憶される(図9のS255:Y、S257)。
【0107】
続いて、図15のスクリプト11bの72行目が<RecordsFooter>であるため、<RecordsFooter>タグの次行であり、次のタグの直前の行でもある73行目がレコード終了記述として記憶される(図9のS259:Y、S261)。
【0108】
続いて、図12のネットワーク機器メンテナンスログ11fから項目名の行(2行目)が読み出される(図9のS263)。
続いて、読み出された行からカンマを区切り文字として順に文字列が取り出され(図10のS269)、その取り出された文字列が変換テーブルにしたがって変換され(図10のS271,S273)、さらに、フィールドテーブルにその文字列が存在する場合(図10のS275:Y)は、フィールドテーブルにカラム位置番号が登録される(図10のS277)。
【0109】
続いて、図12のネットワーク機器メンテナンスログ11fからデータ行(3行目)が読み出され、読み出された行がさらにカンマを区切り文字として文字列毎に配列に格納される(図10のS287)。
【0110】
続いて、図16の登録用ファイル11c(31行目〜32行目)にレコード開始記述が出力される(図10のS291)。
続いて、図11のS293〜S305に従って、上述したフィールドテーブルと配列とから出力用の文字列行が生成されて、図16の登録用ファイル11c(32行目〜52行目)に順に出力される。
【0111】
フィールドテーブルからすべてのレコードが出力されると、レコード終了記述が図16の登録用ファイル11c(52行目)に出力される(図11のS309)。
続いて、図12のネットワーク機器メンテナンスログ11fの4行目が読み出され、上述した処理が繰り返され、各行が図17の登録用ファイル11c(53行目から74行目)に出力される。
【0112】
続いて、図13のネットワーク機器メンテナンスログ11fの5行目が読み出され、上述した処理が繰り返され、各行が図17の登録用ファイル11c(75行目から96行目)に出力される。
【0113】
図13のネットワーク機器メンテナンスログ11fのすべてのデータ行が処理されると、SQL変換出力処理が終了し、ログ変換処理のS150:Y、S160:Yと進みログ変換処理が終了する。
【0114】
3.効果
以上、実施形態のログ管理システムの構成および動作について説明したが、本実施形態のログ管理プログラム11aによれば、登録するデータベースの形式に合わせて適切なスクリプト11bを用意することにより、様々なデータベースに登録可能な登録用ファイル11cを得ることができる。つまり、登録用ファイルを生成するプログラムに比較して簡易に作成できるスクリプト11bを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル(登録用ファイル11c)が得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルを生成するプログラムを個別に用意する場合と比較して、本実施形態のログ管理プログラム11aを利用する場合の方が管理者等の手間を軽減することができる。
【0115】
また、スクリプト11bに対応テーブル名や対応項目名を記述することができるようになっているため、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプト11bの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【0116】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<DatabaseName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述)すれば、ログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【0117】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述)すれば、フォーマットの異なる複数のログデータを1つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。また、<DatabaseName>タグの次行を異なるように記載すれば、異なるデータベースに登録することができる。この点の一例について、図19(a)の説明図を用いて説明する。ログ管理プログラム11aがネットワーク機器ログ11eとローカル機器ログ11dとを読み込んで登録用ファイル11cを出力し、その登録用ファイル11cをプリンタデータベースに登録させることにより、ネットワーク機器ログ11eに含まれていたA4 PageCount(Network)という項目のデータと、ローカル機器ログ11dに含まれていたA4 PageCount(Local)という項目のデータとがプリンタデータベースのプリンタメンテナンステーブル1つに登録される。
【0118】
また、スクリプト11bを適切に記述(具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を異なるように記述)すれば、複数のテーブルで必要とされる同じログデータをそれぞれのテーブルに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。この点の一例について、図19(b)の説明図を用いて説明する。ログ管理プログラム11aがネットワーク機器ログ11eを読み込んで登録用ファイル11cを出力し、その登録用ファイル11cをプリンタデータベースと消耗品データベースに登録させることにより、ネットワーク機器ログ11eに含まれていたA4 PageCount(Network)という項目のデータがプリンタデータベースのプリンタメンテナンステーブルと消耗品データベースの用紙消費量テーブルという2つのテーブルに登録される。
【0119】
最後に、実施形態のログ管理システムの各部と特許請求の範囲に記載の用語との対応を示す。サーバPC11のHDD117がログファイル記憶手段およびスクリプト記憶手段に相当し、登録用ファイル11cの記述規則であるSQLが「標準化言語」に相当する。
【図面の簡単な説明】
【0120】
【図1】ログ管理システムの概略構成を示す説明図である。
【図2】サーバPCの概略構成を示すブロック図である。
【図3】クライアントPCの概略構成を示すブロック図である。
【図4】プリンタの概略構成を示すブロック図である。
【図5】複合機の概略構成を示すブロック図である。
【図6】ログ変換処理を説明するためのフローチャートである。
【図7】SQL変換出力処理を説明するためのフローチャートである(1/5)。
【図8】SQL変換出力処理を説明するためのフローチャートである(2/5)。
【図9】SQL変換出力処理を説明するためのフローチャートである(3/5)。
【図10】SQL変換出力処理を説明するためのフローチャートである(4/5)。
【図11】SQL変換出力処理を説明するためのフローチャートである(5/5)。
【図12】ネットワーク機器メンテナンスログの具体例である。
【図13】スクリプトを生成する際に必要な情報を入力するための入力画面の一例である。
【図14】スクリプトの具体例である(1/2)。
【図15】スクリプトの具体例である(2/2)。
【図16】登録用ファイルの具体例である(1/2)。
【図17】登録用ファイルの具体例である(2/2)。
【図18】登録先のデータベースの構造を説明するための説明図である。
【図19】効果を説明するための説明図である。
【符号の説明】
【0121】
11…サーバPC、11a…ログ管理プログラム、11b…スクリプト、11c…登録用ファイル、11d…ローカル機器ログ、11e…ネットワーク機器ログ、11f…ネットワーク機器メンテナンスログ、11g…ネットワーク機器一覧ファイル、13…クライアントPC、13a…監視プログラム、13b…ログファイル、15…プリンタ、15a…ログファイル、15b…MIB、17…複合機、17a…ログファイル、17b…MIB、19…クライアントPC、19a…監視プログラム、21…プリンタ、23…複合機、25…LAN、111…RAM、112…ROM、113…CPU、114…表示部、115…ローカルI/F、116…ネットワークI/F、117…HDD、118…入力部、119…バス、131…RAM、132…ROM、133…CPU、134…表示部、135…ローカルI/F、136…ネットワークI/F、137…HDD、138…入力部、139…バス、151…RAM、152…ROM、153…CPU、154…表示部、155…印刷部、156…ネットワークI/F、157…不揮発性RAM、158…カードスロット、159…メモリカード、160…バス、171…RAM、172…ROM、173…CPU、174…表示部、175…印刷部、176…スキャナ部、177…ネットワークI/F、178…電話回線I/F、179…不揮発性RAM、180…カードスロット、181…メモリカード、182…バス。
【特許請求の範囲】
【請求項1】
機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがった前記登録用ファイルを出力する変換手順、
を備えることを特徴とするログ管理プログラム。
【請求項2】
請求項1に記載のログ管理プログラムにおいて、
前記機器は複数からなり、
前記ログファイル記憶手段が記憶する前記ログファイルは、前記各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからなり、
前記スクリプト記憶手段が記憶する前記スクリプトは、前記フォーマットの種別に対応して変換情報が記述されており、
前記変換手順は、前記ログファイルを前記ログファイル記憶手段から取得し、各々のログデータのフォーマットに対応する前記スクリプトの前記変換情報に基づいて前記変換を行い、前記登録用ファイルを出力する手順であること、
を特徴とするログ管理プログラム。
【請求項3】
請求項2に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器のログデータの記憶方法または提供方法の少なくとも一方の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項4】
請求項2または請求項3に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器の機種の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項5】
請求項2〜請求項4の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには、前記各ログデータに対応して変換出力されるテーブル項目に関する情報が記述されており、
前記変換手順は、前記変換の際、前記登録用ファイルに記述される前記テーブル項目の情報が単一のテーブルに登録可能な記述となるファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項6】
請求項2〜請求項4の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには前記各ログデータのうちの少なくとも1つから複数のテーブルに登録するための情報が記述されており、
前記変換手順は、前記変換の際、前記各ログデータのうちの少なくとも1つから変換して出力される前記登録用ファイルが複数のテーブルに登録可能なファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項7】
請求項1〜請求項6の何れかに記載のログ管理プログラムにおいて、
前記機器は画像形成装置であること、
を特徴とするログ管理プログラム。
【請求項8】
請求項1〜請求項7の何れかに記載のログ管理プログラムにおいて、
さらに、前記機器からログデータまたはログデータを有するログファイルを取得して前記ログファイル記憶手段に記憶させるログデータ取得手順、
を備えることを特徴とするログ管理プログラム。
【請求項9】
請求項1〜請求項8の何れかに記載のログ管理プログラムにおいて、
さらに、表示手段に表示されたGUI(グラフィカルユーザーインターフェース)によって入力された情報に基づいて前記スクリプトを生成して前記スクリプト記憶手段に記憶させるスクリプト生成手順、
を備えることを特徴とするログ管理プログラム。
【請求項10】
プログラムを実行可能なサーバであって、
請求項1〜請求項9の何れかに記載のログ管理プログラムを実行することを特徴とするログ管理サーバ。
【請求項11】
ログデータを出力する機器と、
プログラムを実行可能なサーバであって、前記機器が出力した前記ログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項1〜請求項9の何れかに記載のログ管理プログラムを実行するログ管理サーバと、
を備えることを特徴とするログ管理システム。
【請求項12】
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法。
【請求項1】
機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがった前記登録用ファイルを出力する変換手順、
を備えることを特徴とするログ管理プログラム。
【請求項2】
請求項1に記載のログ管理プログラムにおいて、
前記機器は複数からなり、
前記ログファイル記憶手段が記憶する前記ログファイルは、前記各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからなり、
前記スクリプト記憶手段が記憶する前記スクリプトは、前記フォーマットの種別に対応して変換情報が記述されており、
前記変換手順は、前記ログファイルを前記ログファイル記憶手段から取得し、各々のログデータのフォーマットに対応する前記スクリプトの前記変換情報に基づいて前記変換を行い、前記登録用ファイルを出力する手順であること、
を特徴とするログ管理プログラム。
【請求項3】
請求項2に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器のログデータの記憶方法または提供方法の少なくとも一方の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項4】
請求項2または請求項3に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器の機種の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項5】
請求項2〜請求項4の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには、前記各ログデータに対応して変換出力されるテーブル項目に関する情報が記述されており、
前記変換手順は、前記変換の際、前記登録用ファイルに記述される前記テーブル項目の情報が単一のテーブルに登録可能な記述となるファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項6】
請求項2〜請求項4の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには前記各ログデータのうちの少なくとも1つから複数のテーブルに登録するための情報が記述されており、
前記変換手順は、前記変換の際、前記各ログデータのうちの少なくとも1つから変換して出力される前記登録用ファイルが複数のテーブルに登録可能なファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項7】
請求項1〜請求項6の何れかに記載のログ管理プログラムにおいて、
前記機器は画像形成装置であること、
を特徴とするログ管理プログラム。
【請求項8】
請求項1〜請求項7の何れかに記載のログ管理プログラムにおいて、
さらに、前記機器からログデータまたはログデータを有するログファイルを取得して前記ログファイル記憶手段に記憶させるログデータ取得手順、
を備えることを特徴とするログ管理プログラム。
【請求項9】
請求項1〜請求項8の何れかに記載のログ管理プログラムにおいて、
さらに、表示手段に表示されたGUI(グラフィカルユーザーインターフェース)によって入力された情報に基づいて前記スクリプトを生成して前記スクリプト記憶手段に記憶させるスクリプト生成手順、
を備えることを特徴とするログ管理プログラム。
【請求項10】
プログラムを実行可能なサーバであって、
請求項1〜請求項9の何れかに記載のログ管理プログラムを実行することを特徴とするログ管理サーバ。
【請求項11】
ログデータを出力する機器と、
プログラムを実行可能なサーバであって、前記機器が出力した前記ログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項1〜請求項9の何れかに記載のログ管理プログラムを実行するログ管理サーバと、
を備えることを特徴とするログ管理システム。
【請求項12】
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図1】
【公開番号】特開2006−106882(P2006−106882A)
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願番号】特願2004−289137(P2004−289137)
【出願日】平成16年9月30日(2004.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願日】平成16年9月30日(2004.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]