(57)【要約】      （修正有）【課題】ログファイルの自動判定方法およびそのシステムに関するものであり、ログファイルのローテーション方式をログ監視処理部で自動で判定する方法を提供する。【解決手段】ログファイルの書き込みを検知したり、ローテーション方式の判定を行うログ書き込み／ローテーション検知処理部１０５を設け、ログファイルにおいてローテーションが発生したらそのローテーション方式を自動判定し、そのローテーション方式に従ってログ監視を行えるシステム。【選択図】図１
2012128755.tif 000002
【特許請求の範囲】
【請求項１】
管理装置と１台以上のエージェント装置を備えるシステムの中で、そのエージェント装置内で監視対象としているログファイルについて、ログファイル監視のタイミングでログファイルのiノード番号や、ログファイルサイズ、ログファイルの更新日時、およびログファイルのコピー情報を保持し、それらの情報と次回のログファイル監視のタイミングで取得したそれらの情報との差分からログファイルのローテーション方式を判定し、そのローテーション方式に沿ってログファイル監視を行えることを特徴とするログ判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにおけるログファイルの自動判定技術に関するものである。
【背景技術】
【０００２】
従来技術では、各サーバ(以下、Agent装置)上で動作するログ監視処理部と、取得されたメッセージを一括管理するサーバ(以下、Manager装置)内のログ管理処理部の2つの処理部で構成される。
【０００３】
従来は、ユーザがログファイルのローテーション方式やどのメッセージをどのように取得するかを動作定義ファイル１０７に指定し、Agent装置内のログ監視処理部は、その動作定義ファイル１０７に基づいて、ログファイルのメッセージを監視して取得していた。取得されたメッセージをログ監視処理部が、Manager装置内のログ管理処理部へ通知した。ここで、監視とはユーザが設定したログ監視間隔毎にログファイルのメッセージを読み出すことを表す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許公開２００５−２９３０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来技術には、ログファイルのローテーション方式をログ監視処理部で自動で判定できないという課題がある。自動で判定できないため、ユーザがログファイルのローテーション方式を調査して設定していた。その結果、ユーザ設定ミスが発生したり、設定準備のためのユーザ負担が増加したりしていた。
本発明の目的は、ログファイルのローテーション方式を判別することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、ログ監視処理部とは別に、ログファイルの書き込みを検知し、ローテーション方式の判定を行うログ書き込み／ローテーション検知処理部を設ける。ログファイル監視開始後、ログ書き込み／ローテーション検知処理部は、ログファイルについて最初のローテーションが発生してどのローテーション方式かを判定するまで動作し、ログ監視処理部は動作しない。
ローテーション方式が判定されると、ログ監視処理部がそのローテーション方式に沿ってログを監視する動作を開始し、ログ書き込み／ローテーション検知処理部は動作しない。その後、ローテーションの都度ローテーション方式を読み込み、ユーザからログ監視の停止操作がされるとログ監視を終了する流れとなる。
【発明の効果】
【０００７】
本発明によれば、ログファイルのローテーション方式についてのユーザ設定ミスを少なくし、ログ監視における障害を軽減する。また、ログファイルのローテーション方式の調査に要するユーザ負担を軽減することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態のシステムの全体構成図である。
【図２】ファイルがローテーションする前の発明の概要図である。
【図３】ファイルがローテーションした後の発明の概要図である。
【図４】ローテーション判定情報管理テーブルである。これはローテーション判定のために必要な情報（inode、サイズ、および更新日時）を監視対象ファイル毎に格納したテーブルである。
【図５】ローテーション方式管理テーブルである。これはローテーション方式の判定がされた後に監視対象ファイルに対するローテーション方式の情報を監視対象ファイル毎に格納したテーブルである。
【図６】ログデータをコピーしたファイルである。ラップアラウンド方式（上書き）やラウンドロビン方式（上書き）を判定するために必要な情報の一つである。
【図７】ログ書き込み／ローテーション検知処理部の全体的な処理手順を示すフローチャート図である。これは、図２や図３のログ書き込み／ローテーション検知処理部１０５をフローチャートにしたものである。
【図８】ローテーション判定処理部の全体的な処理手順を示すフローチャート図である。これは、図７のステップ３０３のローテーション判定処理の中で実行される処理である。
【図９】ラップアラウンド方式(ファイルクリア型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１７のラップアラウンド方式(ファイルクリア型)かの判定処理の中で実行される処理である。
【図１０】ラウンドロビン方式(ファイルクリア型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１２のラウンドロビン方式(ファイルクリア型)かの判定処理の中で実行される処理である。
【図１１】交替ファイルかの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１６の交替ファイルかの判定処理の中で実行される処理である。
【図１２】ラップアラウンド方式(上書き型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１８のラップアラウンド方式(上書き型)かの判定処理の中で実行される処理である。
【図１３】ラウンドロビン方式(上書き型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１３のラウンドロビン方式(上書き型)かの判定処理の中で実行される処理である。
【図１４】ラップアラウンドファイル(上書き型)を例にし、ローテーションされた場合の比較判定を図示したものである。
【図１５】交替ファイルの出力様子図である。
【図１６】ラップアラウンドファイル(ファイルクリア型)の出力様子図である。
【図１７】ラップアラウンドファイル(上書き型)の出力様子図である。
【図１８】ラウンドロビンファイル(ファイルクリア型)の出力様子図である。
【図１９】ラウンドロビンファイル(上書き型)の出力様子図である。
【発明を実施するための形態】
【実施例１】
【０００９】
以下、本発明を実施するための形態（以下、実施形態という。）について、図面を参照しながら説明する。
図１に示すように、本実施形態のシステムは、Manager装置１０１と、複数のAgent装置１〜Ｎ（符号１０３。以下、「Agent装置１０３」という。）とが、通信ネットワーク２０６によって接続されて構成されている。
【００１０】
Manager装置１０１は、コンピュータ装置であり、CPU、メモリ、ハードディスク等を備えるが、ここでは、代表的に、主記憶装置２０１、CPU２０３、キーボード２０４、およびネットワークインタフェース２０５を図示している。また、主記憶装置は機能的に、ログ管理処理部１０２と、OS２０２とのみを図示している。なお、ログ管理処理部１０２はCPUによって実行されるものであるが、説明を簡潔にするために、ログ管理処理部１０２が各処理を実行するものとして説明する。また、Manager装置１０１は、Agent装置１０３から通知されるログ情報をAgent装置１０３毎に管理する。
【００１１】
また、Agent装置１０３は、Manager装置１０１と同様にコンピュータ装置であり、CPU、メモリ、ハードディスク等を備えるが、ここでは、代表的に、主記憶装置２０１、CPU２０３、キーボード２０４、ネットワークインタフェース２０５、ディスク装置２１１などを図示している。また、主記憶装置は機能的に、ログ監視処理部１０４、ログ書き込み／ローテーション検知処理部１０５、制御処理部２０７、アプリケーション２０８（以下、「AP」という。）、およびOS２０２を図示している。さらに、OSが出力するログとしてOSログ２０９、APが出力するログとしてAPログ２１０を図示している。なお、ログ監視処理部１０４はCPUによって実行されるものであるが、説明を簡潔にするために、ログ監視処理部１０４が各処理を実行するものとして説明する。また、OSログ２０９やAPログ２１０の出力形式として、一つのファイルのみに出力される場合と複数ファイルに跨って出力される場合とがあり、本発明では前者の場合では交替ファイル、およびラップアラウンド方式を対象とし、後者の場合ではラウンドロビン方式を対象とする。さらに、ラップアラウンド方式、およびラウンドロビン方式にはファイルクリア型と上書き型とがある。各方式の具体的な出力様子については図１５から図１９へ図示する。
【００１２】
次に、ファイルローテーション時のデータの流れについて説明する。図２は、ファイルがローテーションする前の発明の概要図である。ログファイル監視開始後、ログ書き込み／ローテーション検知処理部１０５は、ログファイルについて最初のローテーションが発生してどのローテーション方式かを判定するまで動作し、ログ監視処理部１０４は動作しない。ローテーション方式が判定されると、ログ監視処理部１０４がそのローテーション方式に沿ってログを監視する動作を開始し、ログ書き込み／ローテーション検知処理部１０５は動作しない。その後、ローテーションの都度ローテーション方式を読み込み、ユーザからログ監視の停止操作がされるとログ監視を終了する。ログ書き込み／ローテーション検知処理部１０５の詳細な動作は以下の通りである。まずユーザがログファイルのどのメッセージをどのように取得するかを指定した動作定義ファイル１０７（ローテーション方式の指定無）を読み込む。次に、ユーザが設定した監視間隔毎に行い、監視のタイミングで、ログのファイルサイズ、ファイル更新日時、ファイルiノード、およびログファイルのコピーデータの各々の最新の情報を保持する。また、前回の監視のタイミングで取得した各情報も保持する。ファイルサイズかファイル更新日時の情報について、前回の監視のタイミングと次の監視のタイミングに取得した情報の間に差分があった場合、ログファイルにメッセージの書き込みがあったことを検知する。ログファイル監視開始後、ログファイルについて最初のローテーションが発生した場合、どのローテーション方式かを判定する。メッセージ取得書き込みがあったメッセージについて動作定義ファイル１０７に基づいてメッセージを取得する。Manager装置１０１内のログ管理処理部１０２へメッセージを通知する。ログファイル監視開始して、最初のローテーションが発生してどのローテーション方式かを判定するまで繰り返す。ログのファイルサイズ、ファイル更新日時、ファイルiノード、およびログファイルのコピーデータの情報について、前回の監視タイミングと次の監視のタイミングに取得した情報の間の差分から、どのローテーション方式かを判定し、判定されるとローテーション方式格納テーブル１０６にローテーション方式を格納する。
【００１３】
図３は、ファイルがローテーションした後の発明の概要図である。ローテーション方式格納テーブル１０６に格納されたローテーション方式に基づいて、その後ローテーションが発生した場合、動作定義ファイル１０７を使用せずにログ監視を続けていく。
【００１４】
本実施例で対象とするログファイルは交替ファイル、ラップアラウンドファイル(ファイルクリア型)、ラップアラウンドファイル(上書き型)、ラウンドロビンファイル(ファイルクリア型)、およびラウンドロビンファイル(上書き型)の５種類でありいずれもファイルの先頭から順番に書き込まれるファイルである。交替ファイル、ラップアラウンドファイル(ファイルクリア型)、ラップアラウンドファイル(上書き型)の３種類は単一ファイル内でローテーションを行う方式のファイルであり、ラウンドロビンファイル(ファイルクリア型)、およびラウンドロビンファイル(上書き型)は複数ファイルに跨ってローテーションを行う形式のファイルである。これら５種類のログファイルは固定の上限値を持っており上限値に達するとローテーションが行われる。各ログファイルの詳細を図１５から１９に基づいて説明する。
【００１５】
図１５は交替ファイルである。このファイルは上限値に到達すると（図１５のステップ３６８）ファイル削除を行い（図１５のステップ３６９）同名のファイルが作成され先頭から順番に出力されていく（図１５のステップ３７０）ファイルである。
次に、ラップアラウンド方式のファイルについて説明する。ラップアラウンド方式は単一ファイル内でローテーションを行う方式のファイルでありファイルクリア型と上書き型とがある。図１６はラップアラウンドファイル(ファイルクリア型)である。このファイルは上限値に到達すると（図１６のステップ３７２）一度ファイル内をクリア(ファイルサイズが0のファイル)にして（図１６のステップ３７３）、その後ファイルの先頭から順番に出力されていく（図１６のステップ３７４）ファイルである。
【００１６】
図１７はラップアラウンドファイル(上書き型)である。このファイルは上限値に到達すると（図１７のステップ３７６）ファイル内をクリアせずに先頭から順番に上書き出力されていく（図１７のステップ３７７）ファイルである。
【００１７】
次に、ラウンドロビン方式のファイルについて説明する。ラウンドロビン方式は複数ファイルに跨ってローテーションを行う方式でありファイルクリア型と上書き型とがある。ここでは二つのファイル(FILE1、およびFILE2)に跨る例を挙げる。図１８はラウンドロビンファイル(ファイルクリア型)である。最初FILE2は未作成でFILE1が作成されている状態とする。FILE1の先頭から順番に書き込まれ上限値に到達すると（図１８のステップ３８０）FILE2が作成されFILE2の先頭から順番に書き込まれる（図１８のステップ３８３）。FILE2の上限値に到達すると（図１８のステップ３８５）一度FILE1のファイル内をクリア(ファイルサイズが0のファイル)にして（図１８のステップ３８６）、その後FILE1のファイルの先頭から順番に出力されていく（図１８のステップ３８８）ファイルである。
【００１８】
図１９はラウンドロビンファイル(上書き型)である。最初FILE2は未作成でFILE1が作成されている状態とする。FILE1の先頭から順番に書き込まれ上限値に到達すると（図１９のステップ３９２）FILE2が作成されFILE2の先頭から順番に書き込まれる（図１９のステップ３９５）。FILE2の上限値に到達すると（図１９のステップ３９７）FILE1のファイル内をクリアせずにFILE1の先頭から順番に上書き出力されていく（図１９のステップ３９８）ファイルである。
【００１９】
図４は、ローテーション判定情報管理テーブルの内容を図示している。これはログファイルのローテーション判定のために必要な情報（inode、サイズ、および更新日時）を監視対象ファイル毎に格納したテーブルである。
【００２０】
図５は、ローテーション方式管理テーブル１０６の内容を図示している。これはローテーション方式の判定がされた後に監視対象ファイルに対するローテーション方式の情報を監視対象ファイル毎に格納したテーブルである。
【００２１】
図６は、ログデータをコピーしたファイルである。上書き型のラップアラウンド方式や上書き型のラウンドロビン方式を判定するために必要な情報の一つである。
【００２２】
図７は、ログ書き込み／ローテーション検知処理部の全体的な処理手順を示すフローチャート図である。前提条件として、監視対象ログファイルはAgent装置１０３の同じディレクトリ内に存在する必要がある。また、そのディレクトリ内には監視対象以外のファイルや、他のローテーション方式のファイルが同居することを許可しない。さらに、ユーザはそのディレクトリに既に存在するログファイルを指定し監視対象ログファイルとする。ログファイルが複数ある場合、複数指定しても単一指定してもどちらでもよい。
【００２３】
ログ書き込み／ローテーション検知処理部の動作についてログ監視が開始されてからログ監視の終了までの流れを説明する。まず、監視対象ファイルをオープン（図７のステップ３０２）してから、ローテーション判定処理を実行する（図７のステップ３０３）。ローテーションが判定されるとローテーション方式に沿って監視処理を実行し（図７のステップ３０４）、ユーザからログ監視停止の操作がされるとログ監視を中断し終了する（図７のステップ３０５）。
【００２４】
図８は、ローテーション判定処理部の全体的な処理手順を示すフローチャート図である。これは、図７内のステップ３０３のローテーション判定処理の中で実行される処理の詳細フローである。まず、ローテーション判定処理管理テーブルに監視対象ファイル名を格納した上で、ローテーション方式が判定されるまでユーザが指定した読み込み間隔毎にステップ３０８からステップ３２４までの流れを繰り返す。ここで、ある監視タイミングをk番目とし、その後読み込み間隔経過した後の監視タイミングをk+1番目とする。また、kは、1からNまでの正の整数値であり、図８のステップ３０８からステップ３２４までの処理が行われることで1ずつ加算されていく値とする。次に、ディレクトリ内にファイルがいくつ存在するかどうか、複数か単一かをチェックする（図８のステップ３０８）。チェック結果、複数であればラウンドロビン方式、単一であればそれ以外の方式を判定する処理へ移る。ファイルの個数が単一だった場合、後述の判断基準でどのローテーション方式かを判定する処理へ移る。交替ファイルは第k+1のinode番号が第kのinode番号と異なるかどうか（図８のステップ３１６）、ラップアラウンド方式（ファイルクリア）はファイルサイズが第kのサイズより第k+1のサイズが小さくなったかどうか（図８のステップ３１７）、ラップアラウンド方式（上書き）は第k+1のファイル更新日時が第kのファイル更新日時より新しくなっているか、新しくなっている場合、第kのコピーデータの先頭から10行分のデータと、第k+1のコピーデータの先頭から10行分のデータとを比較して差分があるか（図８のステップ３１８）で判断する。一方、ファイルの個数が複数だった場合、後述の判断基準でどのローテーション方式かを判定していく。ラウンドロビン方式（ファイルクリア）はファイルサイズが第kのファイルサイズより小さくなったかどうか（図８のステップ３１２）、ラウンドロビン方式（上書き）は第k+1のファイル更新日時が第kのファイル更新日時より新しくなっているか、新しくなっている場合、第kのコピーデータの先頭から10行分のデータと、第k+1のコピーデータの先頭から10行分のデータとを比較して差分があるか（図８のステップ３１３）で判断する。ローテーションが発生しなかった場合は、第kのファイル最終読み込み位置から第k+1のファイルのEOFまで図８のステップ３１９とステップ３２２の間を繰り返す。最終読み込み位置から１行ずつデータを読み込み（図８のステップ３２０）、Manager装置１０１のログ管理処理部へ通知する（図８のステップ３２１）。そして第kの最終読み込み位置を更新し（図８のステップ３２３）、ユーザが既に指定している読み込み間隔の間スリープして（図８のステップ３２４）複数ファイルが存在するかの判定（図８のステップ３０８）まで戻りローテーションが発生するまで繰り返す。ローテーションが発生し、ローテーション方式が判定されると、判定結果をローテーション方式管理テーブル１０６に格納しローテーション判定処理を終了し、図７のステップ３０４の処理へ移る。なお、
図４のローテーション判定情報管理テーブル内には、k=N-1およびk=Nの時点においての監視対象ファイルに関するinode、サイズ、および更新日時の情報を保持し、k=N-2の時点において監視対象ファイルに関するinode、サイズ、および更新日時の情報はk=Nとなったタイミングで削除する動作をする。コピーデータに関してもk=N-1およびk=Nの時点における情報を保持し、k=N-2の時点における情報はk=Nとなったタイミングで削除する動作をする。また、k=1の時は図８のステップ３１２、ステップ３１３、ステップ３１６、ステップ３１７、およびステップ３１８の処理は行われず、ステップ３１１の場合およびステップ３１５の場合のいずれもそれらの次の処理としてステップ３１９へ進む動作をする。
【００２５】
図９は、ラップアラウンド方式(ファイルクリア型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１７の中で実行される処理の詳細フローである。第kのファイルサイズと第k+1のファイルサイズとを比較して（図９のステップ３２６）第k+1のファイルサイズが小さい場合、ラップアラウンド方式(ファイルクリア型)と判定されてローテーション方式管理テーブル１０６にラップアラウンド方式（ファイルクリア型）を格納し、図７のステップ３０４の処理に移る（図９のステップ３２７）。第k+1のファイルサイズが第kのファイルサイズ以上であれば、図８のステップ３１８のラップアラウンド方式(上書き型)かの判定処理に移る（図９のステップ３２８）。
【００２６】
図１０は、ラウンドロビン方式(ファイルクリア型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１２の中で実行される処理の詳細フローである。第kのファイルのサイズと第k+1のファイルサイズとを比較して（図１０のステップ３３０）第k+1のファイルサイズが小さい場合、ラウンドロビン方式(ファイルクリア型)と判定されてローテーション方式管理テーブル１０６にラウンドロビン方式(ファイルクリア型)を格納し、図7のステップ３０４の処理に移る（図１０のステップ３３１）。第k+1のファイルサイズが第kのファイルサイズ以上であれば、図８のステップ３１３のラップアラウンド方式(上書き型)かの判定処理に移る（図１０のステップ３３２）。なお、図１０のステップ３３０におけるファイルサイズの比較は、同一フォルダ内に存在する監視対象ファイル全てについて行われる。
図１１は、交替ファイルかの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１６の中で実行される処理の詳細フローである。第kのinode番号と第k+1のinode番号とを比較して（図１１のステップ３３４）異なる場合、交替ファイルと判定されてローテーション方式管理テーブル１０６に交替ファイルを格納し、図７のステップ３０４の処理に移る（図１１のステップ３３５）。同じinode番号であれば、図８のステップ３１７のラップアラウンド方式(ファイルクリア型)の判定処理に移る（図１１のステップ３３６）。
【００２７】
図１２は、ラップアラウンド方式(上書き型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１８の中で実行される処理の詳細フローである。第kの更新日時と第k+1のファイル更新日時とを比較して（図１２のステップ３３８）第k+1のファイル更新日時が新しい場合、第kのコピーデータの先頭から10行分のデータと、第k+1のコピーデータの先頭から10行分のデータとを比較する（図１２のステップ３４０）。比較結果、差分があれば、取得データをManager装置１０１のログ管理処理部１０２へ通知した上で（図１２のステップ３４１）、ローテーション方式管理テーブル１０６にラップアラウンド方式(上書き型)を格納し、図７のステップ３０４の処理に移る（図１２のステップ３４２）。差分が無ければ、図８のステップ３１９の処理に移る（図１２のステップ３４３）。また、第k+1のファイル更新日時が第kのファイル更新日時と変わっていない場合は、同様に図８のステップ３１９の処理に移る。（図１２のステップ３３９）
図１３は、ラウンドロビン方式(上書き型)かの判定処理の手順を示すフローチャート図である。これは、図８のステップ３１３の中で実行される処理の詳細フローである。第kのファイル更新日時と第k+1のファイル更新日時とを比較して（図１３のステップ３４５）第k+1のファイル更新日時が新しい場合、第kのコピーデータの先頭から10行分のデータと、第k+1のコピーデータの先頭から10行分のデータとを比較する（図１３のステップ３４７）。比較結果、差分があれば、取得データをManager装置１０１のログ管理処理部１０２へ通知した上で（図１３のステップ３４８）、ローテーション方式管理テーブル１０６にラウンドロビン方式(上書き型)を格納し、図７のステップ３０４の処理に移る（図１３のステップ３４９）。差分が無ければ、図８のステップ３１９の処理に移る（図１３のステップ３５０）。また、第k+1のファイル更新日時が第kのファイル更新日時と変わっていない場合は、同様に図８のステップ３１９の処理に移る（図１３のステップ３４６）。なお、図１３のステップ３４５におけるファイル更新日時の比較や、図１３のステップ３４７におけるコピーデータの比較は、同一フォルダ内に存在する監視対象ファイル全てについて行われる。
【００２８】
次に、ラップアラウンドファイル(上書き型)を例にし、ローテーションされた場合の比較判定を図１４を基にして説明する。まず、第kのファイルはN番目の出力が行われ上限値に到達した状態とし、その後、第kのファイルの1行目が上書きがされた状態を第k+1のファイルとする。第kと第k+1の相互のローテーション判定情報管理テーブル内に格納されているinode番号、更新日時、ファイルサイズ、またコピーデータを各々比較する（図１４のステップ３５７とステップ３６５とを比較し、図１４のステップ３５８とステップ３６６とを比較する）。比較結果、第kと第k+1のinode番号やファイルサイズが同じで、第k+1の更新日時が新しく、かつ第kと第k+1のコピーデータが異なる場合、ラップアラウンドファイル(上書き型)と判定される。判定されると、ローテーション方式管理テーブル１０６にラップアラウンド方式(上書き型)が格納される。
【符号の説明】
【００２９】
１０１  Manager装置
１０２  ログ管理処理部
１０３  Agent装置
１０４  ログ監視処理部
１０５  ログ書き込み／ローテーション検知処理部
１０６  ローテーション方式管理テーブル
１０７  動作定義ファイル
１０８  監視対象ファイル
１０９  inode
１１０  ファイルサイズ
１１１  ファイル更新日時
１１２  ローテーション方式
１１３  ログファイル内容
【図１】
2012128755.tif 000003
【図２】
2012128755.tif 000004
【図３】
2012128755.tif 000005
【図４】
2012128755.tif 000006
【図５】
2012128755.tif 000007
【図６】
2012128755.tif 000008
【図７】
2012128755.tif 000009
【図８】
2012128755.tif 000010
【図９】
2012128755.tif 000011
【図１０】
2012128755.tif 000012
【図１１】
2012128755.tif 000013
【図１２】
2012128755.tif 000014
【図１３】
2012128755.tif 000015
【図１４】
2012128755.tif 000016
【図１５】
2012128755.tif 000017
【図１６】
2012128755.tif 000018
【図１７】
2012128755.tif 000019
【図１８】
2012128755.tif 000020
【図１９】
2012128755.tif 000021