(57)【要約】【課題】  本発明は、装置の故障又は状態変化等が発生した場合におけるログの記録をより確実に行なえる手段を提供する。【解決手段】  ログ記録装置は、ログ収集部と、ログ記録部とを備える。ログ収集部は、情報処理を行なう各タスクが出力するログを収集する。ログ記録部は、ログ収集部でログを検出した時であって、ログを不揮発性メモリに記録するイベントが発生した場合、ログのログメッセージとそのログメッセージのコードとが対応付けられた対応表に基づいて、ログメッセージをそのログメッセージに該当するコードに変換して、不揮発性メモリに記録する。【選択図】    図１
2013171431.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を行なう各タスクが出力するログを収集するログ収集部と、
前記ログ収集部で前記ログを検出したときであって、前記ログを不揮発性メモリに記録するイベントが発生した場合、前記ログのログメッセージと該ログメッセージのコードとが対応付けられた対応表に基づいて、前記ログメッセージを該ログメッセージに該当するコードに変換して、前記不揮発性メモリに記録するログ記録部と、
を備えることを特徴とするログ記録装置。
【請求項２】
請求項１に記載のログ記録装置において、
前記ログの前記ログメッセージを前記コードに変換せずに記録する揮発性メモリをさらに備え、
前記ログ記録部は、前記イベントが発生した場合、前記揮発性メモリに記録されている前記ログの前記ログメッセージを前記コードに変換して前記不揮発性メモリに記録することを特徴とするログ記録装置。
【請求項３】
請求項１又は請求項２に記載のログ記録装置において、
前記ログメッセージには、該ログメッセージ毎の重要度を示す情報、前記イベントの発生年月日及び発生時刻を含むことを特徴とするログ記録装置。
【請求項４】
情報処理を行なう各タスクが出力するログを収集するログ収集処理と、
前記ログ収集処理で前記ログを検出したときであって、前記ログを不揮発性メモリに記録するイベントが発生した場合、前記ログのログメッセージと該ログメッセージのコードとが対応付けられた対応表に基づいて、前記ログメッセージを該ログメッセージに該当するコードに変換して、前記不揮発性メモリに記録するログ記録処理と、
を含むことを特徴とするログ記録方法。
【請求項５】
情報処理を行なう各タスクが出力するログを収集するログ収集処理と、
前記ログ収集処理で前記ログを検出したときであって、前記ログを不揮発性メモリに記録するイベントが発生した場合、前記ログのログメッセージと該ログメッセージのコードとが対応付けられた対応表に基づいて、前記ログメッセージを該ログメッセージに該当するコードに変換して、前記不揮発性メモリに記録するログ記録処理と、
をコンピュータに実行させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ記録装置、ログ記録方法及び記録媒体に関する。
【背景技術】
【０００２】
情報通信分野において、通信装置で発生する装置の故障又は状態変化（例えば障害発生等）は、通信中のデータの品質に大きな影響を及ぼす。そのため、故障又は状態変化が発生した場合、一例として、通信装置では、先ず、その通信装置を監視する外部のサーバ装置の監視マネージャ等に故障又は状態変化を示す情報を送信する。そして、監視マネージャは、その内容に応じて、例えば通信回線の迂回等の処置を講じる。これにより、監視マネージャは、例えば、通信を遮断した状態を最小限にしてデータの品質を保証できるようにネットワークを構築する。
【０００３】
次に、故障又は状態変化を起こした通信装置に対しては、事象の原因を把握して再発防止の手段を講じる必要が生じる。そのため、事象が発生した通信装置において、その事象の原因を把握するために、通信装置内に蓄積されている履歴情報を解析する必要が生じる。
【０００４】
そこで、従来、例えば障害発生時の履歴情報をログとして記録する技術が公知である（例えば、特許文献１、２参照）。上記の従来技術では、文字列によるメッセージ（以下「ログメッセージ」という。）をメモリに書き込むことにより、ログの記録としている。上記の従来技術では、１文字を記録するためには、１バイト使用するため、例えば８０文字のログメッセージの場合、８０バイトのメモリ領域を使用することとなる。そのため、１つのログメッセージ当たり８０文字以上の固定長で管理する場合、メモリの領域には、例えばログ件数を１万件記録すると０．８メガバイト以上を確保する必要が生じる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１４１６６３号公報
【特許文献２】特開２０１０−２０６６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の文字列による記録では、ログメッセージの長さや件数により、使用するメモリ容量が膨大になると、メモリ容量による記録件数の制限や、使用できるメモリ素子の限定等により、充分なログの記録ができなくなるおそれが生じる。ここで、メモリとして、ＲＡＭ（Random Access Memory）等の揮発性メモリを用いると、ログの記録を随時行なうことができるものの、装置のリセットや電源のオフからオンの操作により、記録されたログが全て消去されてしまうという問題が生じる。
【０００７】
また、不揮発性メモリでは、メモリの容量がＲＡＭに比べて、少ないという問題が生じる。さらに、ＲＡＭと不揮発性メモリを併用した場合には、装置の故障又は状態変化が起こると、装置の原状回復が優先されるため、保守管理者等は、先ず、装置のリセットや電源を一旦オフした後、再度オンを実行して装置の回復を試みるのが一般的である。この場合の多くは、装置の故障等が起こった時に記録されたログが、ＲＡＭから不揮発性メモリへコピーされない状態で装置回復が実施されるため、装置の故障等が起こった直後に書き込まれたログが残らない状態になる。そのため、装置の故障等が起こった原因の解析ができなくなるという問題が生じる。
【０００８】
そこで、本発明は、上記事情に鑑み、装置の故障又は状態変化等が発生した場合におけるログの記録をより確実に行なえる手段を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の発明に係るログ記録装置は、ログ収集部と、ログ記録部とを備える。ログ収集部は、情報処理を行なう各タスクが出力するログを収集する。ログ記録部は、ログ収集部でログを検出したときであって、ログを不揮発性メモリに記録するイベントが発生した場合、ログのログメッセージとそのログメッセージのコードとが対応付けられた対応表に基づいて、ログメッセージをそのログメッセージに該当するコードに変換して、不揮発性メモリに記録する。
【００１０】
第２の発明は、第１の発明において、揮発性メモリをさらに備える。揮発性メモリは、ログのログメッセージをコードに変換せずに記録する。ログ記録部は、イベントが発生した場合、揮発性メモリに記録されているログのログメッセージをコードに変換して不揮発性メモリに記録する。
【００１１】
第３の発明は、第１又は第２の発明において、ログメッセージには、そのログメッセージ毎の重要度を示す情報、イベントの発生年月日及び発生時刻を含む。
【００１２】
第４の発明に係るログ記録方法は、ログ収集処理と、ログ記録処理とを含む。ログ収集処理は、情報処理を行なう各タスクが出力するログを収集する。ログ記録処理は、ログ収集処理でログを検出したときであって、ログを不揮発性メモリに記録するイベントが発生した場合、ログのログメッセージとそのログメッセージのコードとが対応付けられた対応表に基づいて、ログメッセージをそのログメッセージに該当するコードに変換して、不揮発性メモリに記録する。
【００１３】
第５の発明に係る記録媒体は、ログ収集処理と、ログ記録処理とをコンピュータに実行させるためのプログラムを記録した記録媒体である。ログ収集処理は、情報処理を行なう各タスクが出力するログを収集する。ログ記録処理は、ログ収集処理でログを検出したときであって、ログを不揮発性メモリに記録するイベントが発生した場合、ログのログメッセージとそのログメッセージのコードとが対応付けられた対応表に基づいて、ログメッセージをそのログメッセージに該当するコードに変換して、不揮発性メモリに記録する。
【発明の効果】
【００１４】
本発明は、対応表に基づいて、ログメッセージをそのログメッセージに該当するコードに変換して簡易化するので、装置の故障又は状態変化等が発生した場合におけるログの記録をより確実に行なえる手段を提供できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態であるログ記録装置１の内部構成例を示す図
【図２】ログ記録装置１を組み込んだ通信装置Ｔ１の構成例を示す図
【図３】ログ記録システム１００の構成例を示す図
【図４】ログ記録装置１の動作の一例を示す概念図
【図５】ログメッセージのフォーマット（比較例）を示す図
【図６】ログメッセージの記録／出力（比較例）を示す図
【図７】ログ記録タスクの動作の一例を示すフローチャート
【図８】コード−メッセージ対応テーブルの一例を示す図
【図９】ログ記録部１２ｂによるコード化の一例を示す図
【発明を実施するための形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を詳細に説明する。
【００１７】
＜ログ記録装置１の構成＞
図１は、本発明の一実施形態であるログ記録装置１の内部構成例を示す図である。ログ記録装置１は、図１に示す通り、ＲＡＭ１０と、フラッシュメモリ１１と、ＣＰＵ（Central Processing Unit）１２と、バス１３とを備える。ここで、ＲＡＭ１０、フラッシュメモリ１１及びＣＰＵ１２は、バス１３を介して接続されている。
【００１８】
ＲＡＭ１０は、揮発性メモリであって、例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等によって構成される。ＲＡＭ１０は、例えばＣＰＵ１２の演算処理等に用いられる。
【００１９】
フラッシュメモリ１１は、不揮発性メモリであって、例えば強誘電体を利用した不揮発性メモリであるＦｅＲＡＭ（Ferroelectric Random Access Memory/強誘電体メモリ）等によって構成される。ＦｅＲＡＭは、高速な読み出し、書き込みに優れ、消費電力が少ないという特徴を有している。一方、ＦｅＲＡＭは、ＳＤＲＡＭ等の揮発性メモリと比較して記録できる容量が少ないことが知られている。ここで、フラッシュメモリ１１には、ログ記録装置１の制御を行なうプログラム等が予め記録されている。また、フラッシュメモリ１１には、後述するコード−メッセージ対応テーブル（図８参照）が予め記録されている。
【００２０】
ＣＰＵ１２は、ログ記録装置１の統括的な制御を行なうプロセッサである。ＣＰＵ１２は、フラッシュメモリ１１に予め格納された複数のプログラムを実行することによりログ記録装置１の各部を制御する。ここで、ＣＰＵ１２は、その複数のプログラムのうちで、故障又は状態変化等が発生した場合におけるログの記録を確実に行なうための制御プログラムを実行することにより、ログ収集部１２ａ、ログ記録部１２ｂとしても機能する。
【００２１】
ログ収集部１２ａは、ＣＰＵ１２内で情報処理を行なう各タスクが出力するログを収集する。また、ログ記録部１２ｂは、ログ収集部１２ｂでログを検出したときであって、ログをフラッシュメモリ１１に記録するイベントが発生した場合、ログのログメッセージをそのログメッセージに該当するコードに変換して（以下、「コード化」という。）不揮発性メモリに記録する。この際、ログ記録部１２ｂは、ログのログメッセージとそのログメッセージのコードとが対応付けられたコード−メッセージ対応テーブルに基づいて、ログメッセージをコード化する（詳細は、図８等を用いて後述する）。このコード化により、ログメッセージの容量が削減される。
【００２２】
ここで、本実施形態では、ログ収集部１２ｂから収集したログを常時ＲＡＭ１０に非コード化の状態で書き込み、ログ件数が一定件数を超えた時、或いは、一定の時間間隔でＲＡＭ１０（非コード化）からフラッシュメモリ１１にコード化して記録しても良い。
【００２３】
又は、ＲＡＭ１０をキュー（記録ログキュー）として使用した場合、本実施形態では、ログ収集部１２ｂで収集したログを、一旦、キューであるＲＡＭ１０に非コード化の状態で書き込み、ログ件数が一定件数を超えた時、或いは、一定の時間間隔でＲＡＭ１０（非コード化）からフラッシュメモリ１１にコード化して記録しても良い。
【００２４】
また、本実施形態では、例えば、故障又は状態変化等が発生した場合、上記のイベントが発生する。つまり、ＣＰＵ１２がイベントの発生を検出する。ここで、故障としては、例えば、特定の部品を交換することにより原状回復が可能となる場合が該当する。また、状態変化は、障害発生に限られず、後述する複数のタスクの状態変化が含まれる。なお、ログ収集部１２ａと、ログ記録部１２ｂとの処理の詳細については、図４〜９等を用いて後述する。
【００２５】
＜通信装置Ｔ１の構成＞
図２は、ログ記録装置１を組み込んだ通信装置Ｔ１の構成例を示す図である。通信装置Ｔ１は、図２に示す通り、ＲＡＭ１０と、フラッシュメモリ１１と、ＣＰＵ１２と、バス１３と、通信インターフェース部（以下「通信Ｉ／Ｆ部」という。）１４と、表示ドライバ１５と、入力インターフェース部（以下「入力Ｉ／Ｆ部」という。）１６とを備える。ここで、ＲＡＭ１０、フラッシュメモリ１１、通信Ｉ／Ｆ部１４、表示ドライバ１５、入力Ｉ／Ｆ部１６及びＣＰＵ１２は、バス１３を介して接続されている。
【００２６】
通信Ｉ／Ｆ部１４は、後述するサーバ装置Ｓ１や他の通信装置等とデータを送受信するためのインターフェースを提供する。例えば、通信Ｉ／Ｆ部１４には、通信用のポートが複数備えられている。表示ドライバ１５は、表示モニタ２に画像や文字を出力するための表示用のインターフェースを提供する。なお、表示モニタ２は、例えば液晶表示媒体により構成される。入力Ｉ／Ｆ部１６は、キーボード等の入力デバイス３と接続するための入力インターフェース（例えば、後述するコマンドライン・インターフェース）を提供する。
【００２７】
＜ログ記録システム１００の構成＞
図３は、ログ記録システム１００の構成例を示す図である。ログ記録システム１００は、例えばサーバ装置Ｓ１と、通信装置Ｔ１、Ｔ２、・・・Ｔｎ（ｎは、任意の自然数）とから構成されている。サーバ装置Ｓ１と各々の通信装置Ｔ１乃至Ｔｎは、電気通信回線の一種である監視ネットワーク２０を介して接続されている。以下の説明では、通信装置Ｔ１乃至Ｔｎは同機種として、通信装置Ｔ１を代表して説明する。また、サーバ装置Ｓ１には、各通信装置を監視する監視マネージャが常駐していることとする。
【００２８】
サーバ装置Ｓ１は、一般のサーバコンピュータに適用可能であり、ＣＰＵ、データ処理の作業用のＲＡＭ、ＯＳ（オペレーティングシステム）プログラム等を記録するフラッシュメモリ、各種データを記憶する記憶装置（例えばハードディスクドライブ）、通信装置Ｔ１等と監視ネットワーク２０を介して通信するための通信手段等を備えていれば良い（図示省略）。なお、サーバ装置Ｓ１には、ログ記録システム１００を実行するためのログ記録システム用プログラムもフラッシュメモリに記録されている。サーバ装置Ｓ１は、ログ記録システム用プログラムを実行することにより、各通信装置を監視する監視マネージャを起動させる。
【００２９】
＜ログ記録装置１の動作＞
次に、ログ記録装置１の動作の一例について、説明する。
【００３０】
図４は、ログ記録装置１の動作の一例を示す概念図である。ＣＰＵ１２は、通信装置Ｔ１の電源オン(電源投入)、又は、リセットによる装置起動の指示入力を受け付けると、装置の初期化処理を行なうため、装置起動タスクを実行する。
【００３１】
続いて、装置起動タスクの起動が完了すると、その装置起動タスクは、他の複数のタスクの起動指示を行なうと共に、特定のタスクに対してはサーバ装置Ｓ１等に装置完了通知を送信させるための外部通知要求を行なう。
【００３２】
具体的には、装置起動タスクは、一例として、アラーム収集タスクや、Ｅ−ＯＡＭ（Ethernet（登録商標） operations，administration，maintenance）監視タスクや、時刻管理タスクや、ＣＬＩ（Command line interface）タスクや、ＳＮＭＰ（Simple Network Management Protocol）タスクや、Ｔｒａｐ通知タスクや、Ｓｙｓｌｏｇ通知タスクや、ログ記録タスク等を起動する。また、装置起動タスクは、Ｔｒａｐ通知タスクやＳｙｓｌｏｇ通知タスクに対して、外部通知要求を行なう。
【００３３】
より具体的には、アラーム収集タスクは、通信装置内部における計測、制御に伴って発生するアラームを収集する。アラーム収集タスクは、アラームの発生又は回復を検出した時、その検出した情報（ログ）を記録するためのログ記録イベントとして、例えばＲＡＭ１０のワークメモリ領域である記録ログキューへ送信する。これにより、その検出した情報（ログ）は、記録ログキューに一時的に記録される（以下同様）。なお、本実施形態において、ログ記録イベントは、ＲＡＭ１０に一時記録するためのイベントであり、後述するログイベントは、フラッシュメモリ１１に記録するためのイベントである。
【００３４】
Ｅ−ＯＡＭ監視タスクは、ネットワークの運用・管理・保守を行なう。なお、Ｅ−ＯＡＭ監視タスクは、Ｅ−ＯＡＭの対向拠点（他の通信装置）の異常を検出した時、その検出した情報（ログ）をログ記録イベントとして、記録ログキューへ送信する。
【００３５】
時刻管理タスクは、ネットワーク上の他のサーバ（例えば、サーバ装置Ｓ１）と時刻の同期をとるためのプロトコルであるＮＴＰ（Network Time Protocol）に基づいて、時刻の管理を行なう。なお、時刻管理タスクは、ＮＴＰによる時刻調整が成功又は失敗した時、その時刻調整の結果を示す情報（ログ）をログ記録イベントとして、記録ログキューへ送信する。
【００３６】
ＣＬＩタスクは、コマンドライン・インターフェースによる操作を監視する。なお、ＣＬＩタスクは、入力デバイス３からのコマンド入力に基づくコマンドライン・インターフェースによる操作とそのコマンド入力の結果とを得た時、その結果を示す情報（ログ）をログ記録イベントとして、記録ログキューへ送信する。
【００３７】
ＳＮＭＰタスクは、ネットワークに接続された通信装置をネットワーク経由で監視・制御するためのプロトコルであるＳＮＭＰに基づいて監視する。なお、ＳＮＭＰタスクは、ログ記録処理が必要なＳＮＭＰによる操作と結果を得た時、その結果を示す情報（ログ）をログ記録イベントとして、記録ログキューへ送信する。
【００３８】
Ｔｒａｐ通知タスクは、コンピュータのプログラム実行中、何らかの障害が発生した場合、その障害が発生したこと示す障害情報をサーバ装置Ｓ１に送信する。なお、Ｔｒａｐ通知タスクは、サーバ装置Ｓ１に障害情報を送信した時、その障害情報（ログ）をログ記録イベントとして、記録ログキューへ送信する。
【００３９】
Ｓｙｓｌｏｇ通知タスクは、システムの動作状況やメッセージなどの記録(ログ)を取得するログ機能（Ｓｙｓｌｏｇ）に基づいて、サーバ装置Ｓ１にログを送信する。なお、Ｓｙｓｌｏｇ通知タスクは、サーバ装置Ｓ１にログを送信した時、そのログをログ記録イベントとして、記録ログキューへ送信する。
【００４０】
ログ記録タスクは、ＲＡＭ１０の記録ログキューに溜まったイベントに基づく情報をコード化してログとして記録する。
【００４１】
なお、本実施形態では、上記のイベントを、自律型のイベントと従属型のイベントとに種別分けしている。自律型のイベントとしては、例えば（１）装置起動通知、（２）アラーム発生／回復、（３）Ｅ−ＯＡＭ拠点異常／回復、（４）時刻同期の結果通知等である。また、従属型のイベントとしては、（１）ＣＬＩ操作と結果通知、（２）ＳＮＭＰ操作と結果通知、（３）Ｔｒａｐ通知、（４）Ｓｙｓｌｏｇ通知等である。
【００４２】
ここで、比較例として、従来のログメッセージのフォーマット例と、記録／出力例について説明する。
【００４３】
図５は、ログメッセージのフォーマット（比較例）を示す図である。図６は、ログメッセージの記録／出力（比較例）を示す図である。図５に示すログメッセージのフォーマット例としては、４つの項目から構成されている。具体的には、４つの項目は、（１）インデックス（Index）、（２）日付及び時刻（Date and Time）、（３）メッセージの種別（Message Type）、（４）メッセージの内容（Message Contents）である。
【００４４】
ここで、インデックスは、ログメッセージの通し番号を示している。日付及び時刻は、イベントの発生年月日及び発生時刻を示している。メッセージの種別は、例えばＳｙｓｌｏｇと同様、（i）システムが利用できない状態（emergency）、（ii）迅速に対処が必要な状態（alert）、（iii）致命的な状態（critical）、（iv）デバッグ（debug）等がある。
【００４５】
なお、図５には例示していないが、ログメッセージの種別として、他にも、エラー（error）、警告（warning）、重要な情報（notice）、何らかの情報（informational）等がある。また、メッセージの内容（Message Contents）の欄には、メッセージの種別毎のメッセージの内容が書き込まれる。
【００４６】
また、図６には、従来のログメッセージの記録／出力例として、３通りのメッセージの内容（Log Messages）が記載されている。具体的には、図６に示すインデックス（Index）の通し番号（0101）のログメッセージにおいて、「EQP alarm」は、装置（equipment）側のアラーム（装置の故障）を表している。すなわち、通し番号（0101）のログメッセージは、通信装置（例えば通信装置Ｔ１）側でアラームを検出したことを表している。
【００４７】
また、インデックス（Index）の通し番号（0102）のログメッセージにおいて、「Unit」番号は、例えば、棚を含むラック構成部材に複数の同じ型の通信装置が収納されている場合、各通信装置の通し番号を表している。したがって、通し番号（0102）のログメッセージは、ユニット（Unit）１の通信装置のポート番号３が、ネットワークを介して他の通信装置と繋がっている（リンクアップ）ことを表している。
【００４８】
さらに、インデックス（Index）の通し番号（0103）のログメッセージは、ポート３が、いわゆるＡＴＣ（Auto Traffic Control）機能により、「unknown unicast storm」という障害情報を検出してシャットダウンをしたことを表している。
【００４９】
具体的には、本来、ネットワークでは、パケット通信等が行なわれているところ、一例として、いわゆるハッカー等の攻撃により、意味の無いパケットが大量に送信されて来ることがある。この場合、それらのパケットを受信する通信装置側（例えば通信装置Ｔ１）では、パケットを解析する処理が間に合わなくなり、結果的にネットワークに繋がらなくおそれが生じる。そこで、通信装置Ｔ１では、一旦シャットダウンを行なうことにより通信を遮断してそれらのパケットの受信を行なわないようにする。
【００５０】
なお、これらのログメッセージは一例であって、メッセージ内容（Message Contents）がこれらのメッセージに限定されるのではない。
【００５１】
つまり、従来の文字列による記録では、上述した通り、ログメッセージの長さや件数により、使用するメモリ容量が膨大になると、メモリ容量による記録件数の制限や、使用できるメモリ素子の限定等により、充分なログの記録ができなくなるおそれが生じる。
【００５２】
そこで、本実施形態では、ログの記録をより確実に行なえるようにするため、ログ記録タスクを実行する。
【００５３】
図７は、ログ記録タスクの動作の一例を示すフローチャートである。図７に示すフローチャートの処理（以下「フローの処理」という。）は、上記の装置起動タスクの起動指示により開始する。なお、ログ記録タスクは、ＣＰＵ１２のログ収集部１２ａの処理及びログ記録部１２ｂの処理を含む。
【００５４】
ステップＳ１０１：ログ収集部１２ａは、フラッシュメモリ１１にログを記録するためのログイベントの収集処理を行なう。具体的には、記録ログキュー内のログイベントを検索する。そして、ＣＰＵ１２は、ステップＳ１０２の処理に移行する。
【００５５】
ステップＳ１０２：ログ収集部１２ａは、ログイベントの有無を判定する。ログイベントが存在しない場合（ステップＳ１０２：Ｎｏ）、ＣＰＵ１２は、ステップＳ１０１の処理に戻り、ログイベントの収集処理を再び繰り返す。すなわち、ステップＳ１０１及びＳ１０２の処理を繰り返すことは、ログイベントの待ち状態を意味する。
【００５６】
一方、ログイベントが存在した場合（ステップＳ１０２：Ｙｅｓ）、ＣＰＵ１２は、ログ収集部１２ａでログを検出したときとして、ステップＳ１０３の処理に移行する。
【００５７】
ステップＳ１０３：ログ記録部１２ｂは、ログを不揮発性メモリ１１に記録するイベントが発生したとして、ログ記録処理を行なう。つまり、ログ記録部１２ｂは、記録ログキューに溜まったログのログメッセージをコード化して記録する。具体的には、ログ記録部１２ｂは、ログ記録イベントが発生したタスクの情報をＲＡＭ１０の記録ログキューから読み出して、図８に示すコード−メッセージ対応テーブルを参照してログメッセージのコード化を行なう。なお、ログ記録部１２ｂは、後述する図９に示すログ記録のビットの割り付けに基づいて、コード化を行なってフラッシュメモリ１１に記録する。この際、ログ記録部１２ｂは、ログメッセージの容量を最小化するコード化を行なう。
【００５８】
図８は、コード−メッセージ対応テーブルの一例を示す図である。コード−メッセージ対応テーブルは、コード化するための情報とログメッセージとが対応付けられている。具体的には、コード−メッセージ対応テーブルでは、ログの分類(Classifier)、メッセージの種別（Message Type）、パラメータ(P1〜P5、W1、W2、X1)とメッセージコード(Messages Code)、メッセージ内容(Message Contents)を定義する。このコード−メッセージ対応テーブルを用いることにより、コード化が容易になる。
【００５９】
ここで、ログの分類は、例えば、Ｓｙｓｌｏｇプロトコルとして公知のＲＦＣ ３１６４で標準化されている重要度（Severity）を意識した分類としている。具体的には、ログの分類は、重要度に従って、（０）〜（Ｆ）の１６進数で分類付けされている。さらに、重要度（Severity）とメッセージの種別とが対応付けられており、ログの分類は、重要度に従って、メッセージの種別を（０）システムが利用できない状態（emergency）、（１）迅速に対処が必要な状態（alert）、（２）致命的な状態（critical）、（３）エラー（error）、（４）警告（warning）、（５）重要な情報（notice）、（６）何らかの情報（informational）、（７）デバッグ（debug）、・・・（Ｆ）システムの停止或いは再起動（reserve）等で定義している。
【００６０】
また、ログ記録部１２ｂは、図８に示すパラメータ（Parameters）のＰ１〜Ｐ５、Ｗ１、Ｗ２、Ｘ１に対して、メッセージ内容に応じたキーワード等を指定する。つまり、ログ記録部１２ｂは、例えばメッセージの文字列中に[Ｐ１]、[Ｗ１]、[Ｘ１]に埋め込むキーワードを指定する。これにより、ログ記録部１２ｂは、Ｐ１（０〜Ｆ）、Ｗ１（００〜ＦＦ）、Ｘ１（００００〜ＦＦＦＦ）のそれぞれの変数をログメッセージに埋め込むことができる。
【００６１】
換言すると、例えば、図８に示す（０）システムが利用できない状態（emergency）において、パラメータは、Ｐ１〜Ｐ５で構成されても良く、或いは、Ｐ１、Ｗ１、Ｗ２で構成されても良い。或いは、パラメータは、Ｐ１、Ｘ１で構成されても良い。
【００６２】
より詳細には、パラメータとして、Ｐ１〜Ｐ５までの指定は、4ビット長の数値の変数として扱っても良く、或いは、Ｗ１、Ｗ２は、それぞれ1バイト長の数値の変数として扱っても良い。或いは、Ｘ１は、２バイト長までの数値の変数として扱っても良い。
【００６３】
さらに、本実施形態では、メッセージの種類として、例えばメッセージコードで示すように、1つのログの分類(Classifier)において、メッセージコード(Messages Code)として００〜ＦＦ（１６進数）までの２５６種類のメッセージを定義することができる。
【００６４】
つまり、メッセージコード(Messages Code)とメッセージ内容(Message Contents)とは、対応付けられているので、ログ記録部１２ｂは、メッセージコード(Messages Code)を記録すれば、メッセージ内容(Message Contents)を記録せずに済む。また、ログの分類(Classifier)とメッセージの種別（Message Type）とは、重要度に応じて対応付けられているので、ログ記録部１２ｂは、メッセージの種別（Message Type）を記録しなくても良い。
【００６５】
図９は、ログ記録部１２ｂによるコード化の一例を示す図である。図９では、コード化によるログ記録の際におけるビットの割り付けを例示している。
【００６６】
ログ記録部１２ｂは、フラッシュメモリ１１への記録の際、図９に示すように1つのログの記録に８バイトを使用する。ここで、８バイトの内訳は、一例として、それぞれ、ログの分類(Class：Classifierの省略形)、パラメータ(Parameters)、メッセージコード(Mess Code：Messages Codeの省略形)、日付（年月日）及び時刻とする。これにより、ログ記録部１２ｂは、故障又は状態変化等が発生した場合に必要最小限の情報として、例えば、ログメッセージの重要度（ログの分類）やメッセージの発生日時等を記録することができる。
【００６７】
また、ログ記録部１２ｂは、必要に応じて、例えば、ポート番号、ＶＬＡＮ（Virtual Local Area Network）番号、ＭＥＧ（Maintenance Entity Group）識別子（ID）、ＭＥＰ（MEG End Point）識別子（ID）等をパラメータとして適宜記録しても良い。ここで、ＶＬＡＮ番号は、仮想ＬＡＮを識別するための番号である。仮想ＬＡＮは、物理的なＬＡＮ構成とは独立に、ネットワークに接続した端末をグループ化する機能である。つまり、本実施形態では、例えば障害箇所を特定するため、ポート番号が何番のＶＬＡＮ番号と関連付けられているのかを明確にできる。
【００６８】
また、ＭＥＧ識別子は、Ｅ−ＯＡＭで管理するいわゆるＭＥＧを識別するための識別子である。また、ＭＥＰ識別子は、いわゆるＥ−ＯＡＭフレームの終端等を管理するための識別子である。つまり、本実施形態では、ＭＥＧ識別子やＭＥＰ識別子等により、例えばＥ−ＯＡＭ監視タスクが検出した障害情報を容易に取得できる。
【００６９】
さらに、本実施形態では、日付、時刻の項目において、年に関しては、６ビット長とし、００〜６３までの値を割り付けて、装置に設定されたデフォルトの時刻からの相対年とする。このような取り扱いをするのは、装置運用において、現在日時より過去の時刻を設定して運用することは通常無いことによる。また、装置の寿命が長くて十数年であると仮定し、上記のＮＴＰに準じてデフォルトの時刻からの相対年とすれば、演算処理によって、正確な日付と時刻を算出することができるからである。
【００７０】
したがって、ログ記録部１２ｂは、
（１）年（Ｙｅａｒ）  ：００〜６３（００ｈ〜３Ｆｈ）、Ｂｉｔ数：６ｂｉｔ、
（２）月（Ｍｏｎｔｈ）：０１〜１２（０１ｈ〜０Ｃｈ）、Ｂｉｔ数：４ｂｉｔ、
（３）日（Ｄａｙ）    ：０１〜３１（０１ｈ〜１Ｆｈ）、Ｂｉｔ数：５ｂｉｔ、
（４）時（Ｈｏｕｒ）  ：００〜２３（００ｈ〜１７ｈ）、Ｂｉｔ数：５ｂｉｔ、
（５）分（Ｍｉｎ）    ：００〜５９（００ｈ〜３Ｂｈ）、Ｂｉｔ数：６ｂｉｔ、
（６）秒（Ｓｅｃ）    ：００〜５９（００ｈ〜３Ｂｈ）、Ｂｉｔ数：６ｂｉｔとして、設定日時等のビットを割り付けて、フラッシュメモリ１１へ記録する。
【００７１】
ここで、一例としてアラーム収集タスクがアラームの発生を検出した場合、ログ記録部１２ｂは、図９のビットの割り付けとして、フラッシュメモリ１１上において、所定の記録する領域の１バイト目の４ビットの領域に、メッセージの種別を、「迅速に対処が必要な状態（alert）」に対応する「１」を１６進数でコード化して記録する。
【００７２】
そして、ログ記録部１２ｂは、１バイト目の残りの４ビットの領域に、ポート番号を１６進数でコード化して記録する。ここで、ログ記録部１２ｂは、パラメータ（Parameters）の情報を特に必要しない場合、２バイト目、３バイト目を空欄としても良い。そして、ログ記録部１２ｂは、メッセージコード（Messages Code）として「EQP alarm is detected.」が例えば「０１」に対応付けられていれば、４バイト目に、「０１」を１６進数でコード化して記録する。さらに、ログ記録部１２ｂは、日付及び時刻を１６進数でコード化して記録する。
【００７３】
ここで、ログ記録部１２ｂによるコード化処理が終了すると、ＣＰＵ１２は、ステップＳ１０１の処理に戻り、図７に示すフローの処理を繰り返す。
【００７４】
以上、本実施形態では、ログメッセージをコード化してフラッシュメモリ１１に記録する。具体的には、本実施形態では、コード化により、ログとして記録する１件の情報量（ログメッセージの容量）をできるだけ小さくして（最小化）、フラッシュメモリ１１の限られた領域にできるだけ多くのログを記録することができる。例えば、本実施形態では、メッセージ長が８バイトであるため、ログ記録件数を１万件とした場合には約７８キロバイトの容量で済む。さらに、ログ記録部１２ｂは、８バイト単位での追記書き込みができる。
【００７５】
したがって、本実施形態では、コード−メッセージ対応テーブルに基づいて、ログメッセージをそのログメッセージに該当するコードに変換して簡易化するので、その分、フラッシュメモリ１１に多くのログを記録できる。これにより、本実施形態では、故障又は状態変化等が発生した場合におけるログの記録をより確実に行なえる手段を提供できる。
【００７６】
なお、ログ内容を例えば表示モニタ２に表示させる場合、ＣＰＵ１２は、先ず、ログの分類(Classifier)、パラメータ(Parameters)、メッセージコード(Messages Code)に基づいて、コード−メッセージ対応テーブルとデフォルトの日時の「年」等を参照して、ログメッセージを復元する。続いて、ＣＰＵ１２は、表示ドライバ１５を介して、復元したログメッセージを表示モニタ２に表示させれば良い。
【００７７】
また、ログ内容をファイル化する場合、ＣＰＵ１２は、復元したログメッセージをファイル化すれば良い。
【００７８】
＜変形例＞
次に、上記実施形態の変形例について説明する。
【００７９】
上記の実施形態では、ＲＡＭ１０の記録ログキューにログの書き込みを行なった。これは、ログをＲＡＭ１０に一時的に記録する処理と、そのログをフラッシュメモリ１１に記録する処理とを分けるためである。つまり、ＲＡＭ１０の書き込み速度の方がフラッシュメモリ１１の書き込み速度よりも速いので、ログが膨大に発生した場合、一旦、ログ記録部１２ｂは、マルチタスクにより、ログをＲＡＭ１０に記録しながら、ＲＡＭ１０に溜まったログを順次コード化することで、処理の効率化を図ることができる。
【００８０】
しかしながら、本発明は、ＲＡＭ１０とフラッシュメモリ１１とを併用する手段に限定されない。つまり、図１に示すログ記録装置１は、一例であって、ＲＡＭ１０が存在しなくても良い。なお、ＲＡＭ１０は、通信装置Ｔ１側に備えられていても良い。
【００８１】
ここで、変形例において、ログ記録部１２ｂは、ログをＲＡＭ１０へ書き込まずに、フラッシュメモリ１１へ直接書き込んでコード化しても良い。この場合、ログ記録装置１は、フラッシュメモリ１１にワークメモリ領域（記録ログキュー）を設けるようにしても良い。これにより、ログ記録部１２ｂは、ＲＡＭ１０へのログの記録処理に行なわずに済む。
【００８２】
つまり、変形例では、ログ記録部１２ｂがＲＡＭ１０を使用せずに直接フラッシュメモリ１１へ書き込むことで、装置の故障等が発生した場合でも、発生直後のログをフラッシュメモリ１１へ記録できる。
【００８３】
したがって、装置の故障等が発生後に装置回復による装置のリセットや電源のオフに続くオンが実行されても、ログ記録部１２ｂによりログがフラッシュメモリ１１に保存されているので、例えば、保守管理者等は、復元化されたログに基づいて、原因を特定するための解析データを表示モニタ２で確認することができる。
【００８４】
＜実施形態の補足説明＞
（１）上記の実施形態において、フラッシュメモリ１１として、ＦｅＲＡＭを採用したが、本発明は、これに限定されない。つまり、上記の実施形態では、例えば、ＮＯＲ（否定論理和）型やＮＡＮＤ（否定論理積）型等の他のフラッシュメモリを採用しても良い。
【００８５】
なお、不揮発性メモリ(フラッシュメモリ)には、消去時には消去ブロック単位で、全てのビット（ALL Bit）が「１」の電荷となり、「１」から「０」への書き込みは、１バイト単位で可能となるタイプがある。ここで、ログを記録する場合、このタイプの不揮発性メモリでは、消去ブロック単位で消去後に、ログの事象発生毎に追記書き込みを実行する形となる。この場合、このタイプの不揮発性メモリでは、ログの１メッセージの書き込み毎に消去する必要が無く、不揮発性メモリの消去回数(例えば１０万回)に対して、書き込み可能なブロックを順次遷移して使用することにより、不揮発性メモリの寿命をその分伸ばすことができる。
【００８６】
（２）上記の実施形態において、コード化に１６進数を採用したが、他の進数法を用いても良い。これにより、ログ記録部１２ｂは、予め設定した進数法（例えば、２進数等）に基づいてコード化することができる。
【００８７】
（３）上記の実施形態では、ログメッセージを最小化するため、８バイトにするコード化を行なったが、本発明は、このバイト数（８バイト）に限定されない。上記の実施形態では、必要な文字列に対して、内容を変えない限り、コード化のバイト数をさらに最小化して良いし、或いは、コード化のバイト数をさらに増やしても良い。
【００８８】
例えば、図９において、パラメータ(Parameters)として、２０ビット使用しているが、パラメータの情報を４ビットで定義できれば、ログ記録部１２ｂは、ログメッセージを６バイトにコード化しても良い。
【００８９】
（４）上記の実施形態において、ログ記録装置１の構成は、図１に示した構成に限定されない。例えば、ＲＡＭ、不揮発性メモリ及びサーバ装置Ｓ１との通信手段を備えたパーソナルコンピュータに、本発明の記録媒体に記録されたプログラムをインストールすることにより、そのパーソナルコンピュータをログ記録装置として実現しても良い。これにより、ログ記録装置の汎用性が高まる。そして、そのパーソナルコンピュータにおいても、ログの記録をより確実に行なえる手段を提供できる。
【００９０】
（５）上記の実施形態において、本発明の記録媒体は、フラッシュメモリ１１に限定されず、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータに内蔵されるハードディスク等の記憶装置であっても良い。
【符号の説明】
【００９１】
１・・・ログ装置、１２ａ・・・ログ収集部、１２ｂ・・・ログ記録部
【図１】
2013171431.tif 000003
【図２】
2013171431.tif 000004
【図３】
2013171431.tif 000005
【図４】
2013171431.tif 000006
【図５】
2013171431.tif 000007
【図６】
2013171431.tif 000008
【図７】
2013171431.tif 000009
【図８】
2013171431.tif 000010
【図９】
2013171431.tif 000011