(57)【要約】【課題】複数のサーバを組み合わせて提供されるサービスにおいて、サーバを変更することなく、サービスの全体的な動作をトレースするためのログ情報を一元的に管理する。【解決手段】処理装置１２は、複数のサーバ１６の各々の構成に関する情報を含む構成ファイル３９を用いて、構成ファイル３９に従って起動される複数のサーバ１６の各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定部４４と、判定部４４により通信プロトコルをサポートすると判定されたサーバ１６と、サーバ１６にリクエストを行う通信装置との間の通信経路に、サーバ１６と通信装置との間の通信に関するログ情報を記録するプロキシサーバ１８が配置されるように、構成ファイル３９を変更する変更部４６と、を備える。【選択図】図４
2020027561.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定部と、
前記判定部により前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更部と、
を備えた処理装置。
【請求項２】
前記通信プロトコルは、ＨＴＴＰ又はＨＴＴＰＳである
請求項１に記載の処理装置。
【請求項３】
前記変更部は、前記通信プロトコルをサポートすると判定された前記サーバが使用しているポート番号を前記プロキシサーバが使用し、前記サーバが未使用のポート番号を使用し、かつ前記プロキシサーバへのリクエストが前記サーバの前記未使用のポート番号に転送されるように、前記構成ファイルを変更する
請求項１又は請求項２に記載の処理装置。
【請求項４】
前記構成ファイルに従って起動されたサーバを停止する停止部と、
前記停止部による前記サーバの停止後に、前記変更部による変更後の前記構成ファイルに従って前記サーバ及び前記プロキシサーバを起動する起動部と、
を更に備えた請求項１から請求項３の何れか１項に記載の処理装置。
【請求項５】
コンピュータを、
複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定部、及び
前記判定部により前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更部
として機能させるための処理プログラム。
【請求項６】
処理装置による処理方法であって、
前記処理装置は、
複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定ステップと、
前記判定ステップにより前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更ステップと、
を備えた処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、処理プログラム、及び処理方法に関する。
【背景技術】
【０００２】
近年、ユーザに提供するアプリケーションを、再配置可能な複数のサービスの組み合わせで設計する手法が発展している。この手法はマイクロサービスアーキテクチャとも称される。
【０００３】
マイクロサービスアーキテクチャを実現する技術の１つとして、例えば、Ｄｏｃｋｅｒ（登録商標）等の仮想化技術が知られている。このような仮想化技術では、複数のサーバの各々の構成に関する情報を含む構成ファイルに従って複数のサーバがコンテナ上で起動され、起動された複数のサーバの組み合わせによってサービスが提供される。
【０００４】
また、特許文献１には、複数の仮想マシンからログ情報を収集する技術が開示されている。この技術では、仮想マシンからログ情報を取得する際に、その仮想マシンに仮想リソースを追加する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１４６１４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したように、マイクロサービスアーキテクチャでは、ユーザに提供するアプリケーションは、複数のサービスから構成される。サービスは複数のサーバから構成され、各サーバのログ情報は、それぞれのサーバに独立して記録されることになる。ユーザがアプリケーションを利用する際には、複数のサービスが連携して動作するため、何らかの問題が発生した場合に、個々のサーバのログ情報だけでは、アプリケーションの動作をトレースすることは難しい。
【０００７】
上記特許文献１に記載の技術は、各サーバからログ情報を収集するものであり、ログ情報を一元的に管理するためには、時間がかかってしまう。
【０００８】
本発明は、複数のサーバを組み合わせて提供されるサービスにおいて、サーバを変更することなく、サービスの全体的な動作をトレースするためのログ情報を一元的に管理することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の処理装置は、複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定部と、前記判定部により前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更部と、を備える。
【００１０】
また、本発明の処理プログラムは、コンピュータを、複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定部、及び前記判定部により前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更部として機能させるためのものである。
【００１１】
また、本発明の処理方法は、処理装置による処理方法であって、前記処理装置は、複数のサーバの各々の構成に関する情報を含む構成ファイルを用いて、前記構成ファイルに従って起動される前記複数のサーバの各々が、予め定められた通信プロトコルをサポートするか否かを判定する判定ステップと、前記判定ステップにより前記通信プロトコルをサポートすると判定された前記サーバと、前記サーバにリクエストを行う通信装置との間の通信経路に、前記サーバと前記通信装置との間の通信に関するログ情報を記録するプロキシサーバが配置されるように、前記構成ファイルを変更する変更ステップと、を備える。
【発明の効果】
【００１２】
本発明によれば、複数のサーバを組み合わせて提供されるサービスにおいて、サーバを変更することなく、サービスの全体的な動作をトレースするためのログ情報を一元的に管理することができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る処理システムの構成の一例を示すブロック図である。
【図２】実施形態に係る処理装置のハードウェア構成の一例を示すブロック図である。
【図３】実施形態に係る構成ファイルの一例を示す図である。
【図４】実施形態に係る処理装置の機能的な構成の一例を示すブロック図である。
【図５】実施形態に係る変更後の構成ファイルの一例を示す図である。
【図６】実施形態に係る構成変更処理の一例を示すフローチャートである。
【図７】実施形態に係る構成変更処理を説明するためのブロック図である。
【図８】実施形態に係る構成変更前後の処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態の例を詳細に説明する。
【００１５】
まず、図１を参照して、本実施形態に係る処理システム１０の構成を説明する。図１に示すように、処理システム１０は、複数台（図１の例では３台）の処理装置１２、及び１台のリポジトリサーバ２０を含む。処理装置１２及びリポジトリサーバ２０の例としては、サーバコンピュータ等の情報処理装置が挙げられる。なお、処理装置１２及びリポジトリサーバ２０は、仮想マシンであってもよい。また、個々の処理装置１２を区別する場合は、処理装置１及び処理装置２のように、処理装置の後に数字を付して説明する。
【００１６】
また、処理装置１２では、ＨＴＴＰ（Hypertext Transfer Protocol）サーバ及びＤＢ（Database）サーバ等のサーバ１６が起動される。本実施形態では、サーバ１６は、コンテナと呼ばれる仮想化技術を用いて起動される。また、本実施形態では、複数のサーバ１６によって、サービス１４がユーザに提供される。図１では、５つのサーバ１６によって４つのサービス１４が提供される例を示している。なお、個々のサービス１４を区別する場合は、サービス１及びサービス２のように、サービスの後に数字を付して説明する。また、個々のサーバ１６を区別する場合は、サーバ１及びサーバ２のように、サーバの後に数字を付して説明する。例えば、図１では、処理装置１上で、サーバ１及びサーバ２が起動されることによって、サービス１が提供される。また、図１では、処理装置１上で、サーバ３が起動されることによって、サービス２が提供される。さらに、図１では、処理装置２上で、サーバ４が起動されることによって、サービス３が提供され、処理装置３上で、サーバ５が起動されることによって、サービス４が提供される。
【００１７】
各処理装置１２は、ＬＡＮ（Local Area Network）等のネットワークに接続され、各サーバ１６間の通信が可能とされる。また、リポジトリサーバ２０もネットワークに接続され、各処理装置１２とリポジトリサーバ２０との間の通信が可能とされる。
【００１８】
リポジトリサーバ２０が備える記憶装置（図示省略）には、各サーバ１６をコンテナ上で起動するためのイメージデータ２２、及び後述するプロキシサーバ１８をコンテナ上で起動するためのイメージデータ２４が記憶される。
【００１９】
次に、図２を参照して、本実施形態に係る処理装置１２のハードウェア構成を説明する。図２に示すように、処理装置１２は、ＣＰＵ（Central Processing Unit）３０、一時記憶領域としてのメモリ３１、及び不揮発性の記憶部３２を含む。また、処理装置１２は、液晶ディスプレイ等の表示部３３、キーボードとマウス等の入力部３４、及びネットワークに接続されるネットワークＩ／Ｆ（InterFace）３５を含む。ＣＰＵ３０、メモリ３１、記憶部３２、表示部３３、入力部３４、及びネットワークＩ／Ｆ３５は、バス３６に接続される。
【００２０】
記憶部３２は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部３２には、処理プログラム３８が記憶される。ＣＰＵ３０は、記憶部３２から処理プログラム３８を読み出してからメモリ３１に展開し、展開した処理プログラム３８を実行する。また、記憶部３２には、構成ファイル３９が記憶される。本実施形態では、サービス１４毎に、構成ファイル３９が予め用意される。
【００２１】
図３に、構成ファイル３９の一例を示す。図３に示すように、構成ファイル３９には、その構成ファイル３９に従って起動されるサーバ１６の構成に関する情報が含まれる。なお、図３の例では、サービス１４が２つのサーバ１６を含み、一方のサーバ１６が８０番ポートを使用するＨＴＴＰサーバ（図３のserver1）であり、他方のサーバ１６が３３０６番ポートを使用するＤＢサーバ（図３のserver2）である場合の構成ファイル３９を示している。また、図３の例では、構成ファイル３９には、ＤＢサーバの起動が完了してからＨＴＴＰサーバを起動するというサーバ１６間の依存関係（図３のdepends_on）も含まれている。このような構成ファイル３９は、例えば、Ｄｏｃｋｅｒ  Ｃｏｍｐｏｓｅ等によって用いられ、サーバ１６が起動される。
【００２２】
次に、図４を参照して、本実施形態に係る処理装置１２の機能的な構成を説明する。図４に示すように、処理装置１２は、起動部４０、停止部４２、判定部４４、変更部４６、及びコンテナ制御部４８を含む。ＣＰＵ３０が処理プログラム３８を実行することで、起動部４０、停止部４２、判定部４４、変更部４６、及びコンテナ制御部４８として機能する。
【００２３】
起動部４０は、記憶部３２に記憶された構成ファイル３９を読み出す。そして、起動部４０は、読み出した構成ファイル３９に従ってサービス１４に含まれるサーバ１６の起動をコンテナ制御部４８に要求する。停止部４２は、コンテナ上で起動しているサーバ１６の停止をコンテナ制御部４８に要求する。
【００２４】
判定部４４は、構成ファイル３９に従って起動されるサーバ１６が、予め定められた通信プロトコルをサポートするか否かを判定する。本実施形態では、判定部４４は、サーバ１６が、上記予め定められた通信プロトコルとして、ＨＴＴＰ又はＨＴＴＰＳ（Hypertext Transfer Protocol Secure）をサポートするか否かを判定する。
【００２５】
具体的には、判定部４４は、構成ファイル３９からサーバ１６が使用しているポート番号を取得し、取得したポート番号がＨＴＴＰ  ＨＥＡＤリクエストを受け付けるか否かを判定する。判定部４４は、ＨＴＴＰ  ＨＥＡＤリクエストを受け付けたポート番号を使用しているサーバ１６は、ＨＴＴＰをサポートしていると判定する。また、判定部４４は、ＨＴＴＰ  ＨＥＡＤリクエストを受け付けなかったポート番号を使用しているサーバ１６は、ＨＴＴＰをサポートしていないと判定する。
【００２６】
また、判定部４４は、取得したポート番号がＨＴＴＰＳ  ＨＥＡＤリクエストを受け付けるか否かを判定する。判定部４４は、ＨＴＴＰＳ  ＨＥＡＤリクエストを受け付けたポート番号を使用しているサーバ１６は、ＨＴＴＰＳをサポートしていると判定する。また、判定部４４は、ＨＴＴＰＳ  ＨＥＡＤリクエストを受け付けなかったポート番号を使用しているサーバ１６は、ＨＴＴＰＳをサポートしていないと判定する。
【００２７】
判定部４４は、以上の判定を構成ファイル３９に含まれる全てのサーバ１６のポート番号に対して行う。
【００２８】
変更部４６は、判定部４４によりＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６と、サーバ１６にリクエストを行う通信装置との間の通信経路に、プロキシサーバ１８が配置されるように、構成ファイル３９を変更する。本実施形態に係るプロキシサーバ１８は、サーバと上記通信装置との間の通信に関するログ情報を記録するサーバである。プロキシサーバ１８は、ログ情報として、例えば、ＨＴＴＰ又はＨＴＴＰＳのリクエストを上記通信装置から受信した日時と、ＨＴＴＰ又はＨＴＴＰＳのレスポンスを上記通信装置に送信した日時とを記録する。更に、プロキシサーバ１８は、ログ情報として、例えば、上記通信装置のＩＰ（Internet Protocol）アドレス、サーバ１６の識別情報、及びＵＲＬ（Uniform Resource Locator）等も記録する。ここで、プロキシサーバ１８は、図７、図８にて後述される。
【００２９】
具体的には、変更部４６は、判定部４４によりＨＴＴＰ又はＨＴＴＰＳをサポートすると判定された全てのサーバ１６について、以下に示す（１）〜（３）の手順を行うことによって、構成ファイル３９を変更する。
【００３０】
（１）変更部４６は、ＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６が使用しているポート番号を、プロキシサーバ１８が使用するように構成ファイル３９を変更する。
（２）変更部４６は、構成ファイル３９におけるＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６が使用するポート番号を未使用のポート番号に変更する。この変更は、例えば、以下に示す（２−１）〜（２−４）の手順によって行われる。
【００３１】
（２−１）変更部４６は、予め付け替え用のポート番号の範囲を決めておく。
（２−２）変更部４６は、そのポート番号の範囲の先頭から順番にＴＣＰ（Transmission Control Protocol）ソケットをオープンできるか否かを確認する。
（２−３）変更部４６は、（２−２）の処理において、ＴＣＰソケットがオープンできた場合、オープンしたＴＣＰソケットをクローズし、オープンできたポート番号を保持する。
（２−４）変更部４６は、構成ファイル３９におけるＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６が使用するポート番号を、（２−３）の処理により保持したポート番号に変更する。
【００３２】
（３）変更部４６は、（１）の処理によりプロキシサーバ１８が使用することになったポート番号へのリクエストが、（２−４）の処理によりサーバ１６が新たに使用することになったポート番号に転送されるように、構成ファイル３９を変更する。
【００３３】
図５に、図３で示した構成ファイル３９に対して、変更部４６による変更が行われた後の構成ファイル３９の一例を示す。図５に示すように、構成ファイル３９において、ＨＴＴＰサーバが使用するポート番号が未使用のポート番号（図５の例では８０８０番）に変更される。更に、ＨＴＴＰサーバが使用していたポート番号（図５の例では８０番）を使用し、かつそのポート番号へのリクエストが上記未使用のポート番号に転送されるように、プロキシサーバ１８の設定（図５の例ではproxy1）が構成ファイル３９に追加される。
【００３４】
コンテナ制御部４８は、起動部４０からの要求に従い、構成ファイル３９に含まれるサーバ１６に対応するイメージデータ２２を用いて、サーバ１６を起動する。また、コンテナ制御部４８は、停止部４２からの要求に従い、コンテナ上で起動しているサーバ１６を停止する。
【００３５】
次に、図６及び図７を参照して、本実施形態に係る処理装置１２の動作／作用を説明する。処理装置１２のＣＰＵ３０が処理プログラム３８を実行することによって、図６に示す構成変更処理が実行される。図６に示す構成変更処理は、例えば、入力部３４を介して処理プログラム３８の実行指示が入力された場合に実行される。
【００３６】
図６のステップＳ１０で、起動部４０は、記憶部３２に記憶された構成ファイル３９を読み出す（図７中の１）。ステップＳ１２で、起動部４０は、ステップＳ１０の処理により読み出した構成ファイル３９に従ってサービス１４に含まれるサーバ１６の起動をコンテナ制御部４８に要求する（図７中の２）。
【００３７】
ステップＳ１４で、コンテナ制御部４８は、ステップＳ１２の処理による要求に従い、構成ファイル３９に含まれるサーバ１６に対応するイメージデータ２２を用いて、サーバ１６を起動する（図７中の３）。ステップＳ１６で、判定部４４は、前述したように、ステップＳ１４の処理により起動されたサーバ１６が、ＨＴＴＰ又はＨＴＴＰＳをサポートするか否かを判定する（図７中の４）。ＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６が存在する場合は、ステップＳ１６の判定が肯定判定となり、処理はステップＳ１８に移行する。一方、ＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６が存在しない場合は、ステップＳ１６の判定が否定判定となり、構成変更処理が終了する。
【００３８】
ステップＳ１８で、変更部４６は、前述したように、ステップＳ１６の処理によりＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６と、サーバ１６にリクエストを行う通信装置との間の通信経路に、プロキシサーバ１８が配置されるように、構成ファイル３９を変更する（図７中の５）。
【００３９】
ステップＳ２０で、停止部４２は、ステップＳ１４の処理により起動されたサーバ１６の停止をコンテナ制御部４８に要求する（図７中の６）。ステップＳ２２で、コンテナ制御部４８は、ステップＳ２０の処理による要求に従い、ステップＳ１４の処理により起動されたサーバ１６を停止する（図７中の７）。
【００４０】
ステップＳ２４で、起動部４０は、ステップＳ１８の処理による変更後の構成ファイル３９に従ってサービス１４に含まれるサーバ１６及びプロキシサーバ１８の起動をコンテナ制御部４８に要求する（図７中の８）。ステップＳ２６で、コンテナ制御部４８は、ステップＳ２４の処理による要求に従い、構成ファイル３９に含まれるサーバ１６に対応するイメージデータ２２及びプロキシサーバ１８に対応するイメージデータ２４を用いて、サーバ１６及びプロキシサーバ１８を起動する（図７中の９）。ステップＳ２６の処理が終了すると、構成変更処理が終了する。
【００４１】
例えば、変更前の構成ファイル３９が図３に示す内容の場合、ステップＳ１４の処理により、８０番ポートを使用するＨＴＴＰサーバであるサーバ１と、ＤＢサーバであるサーバ２とが起動される。次に、構成ファイル３９がステップＳ１８の処理により図５に示す内容に変更された場合、８０番ポートを使用するプロキシサーバ１８と、８０８０番ポートを使用するＨＴＴＰサーバであるサーバ１と、ＤＢサーバであるサーバ２とが起動される。そして、プロキシサーバ１８の８０番ポートへのリクエストは、サーバ１の８０８０番ポートに転送される。
【００４２】
また、一例として図８に示すように、各サーバ１６のうち、ＨＴＴＰ又はＨＴＴＰＳをサポートするサーバ１６と、サーバ１６にリクエストを行う通信装置との間の通信経路に、プロキシサーバ１８が配置される。なお、図８では、サーバ１、サーバ３、サーバ４、及びサーバ５がＨＴＴＰ又はＨＴＴＰＳをサポートするサーバ１６である場合の例を示している。
【００４３】
以上説明したように、本実施形態によれば、ＨＴＴＰ又はＨＴＴＰＳをサポートすると判定されたサーバ１６とサーバ１６にリクエストを行う通信装置との間の通信経路に、サーバ１６と通信装置との間の通信に関するログ情報を記録するプロキシサーバ１８が配置される。従って、複数のサーバ１６を組み合わせて提供されるサービス１４において、サーバ１６を変更することなく、サービス１４の全体的な動作をトレースするためのログ情報を一元的に管理することができる。また、各プロキシサーバ１８に記録されたログ情報を解析することによって、サービス１、サービス２、サービス３、サービス４から構成されるアプリケーションの全体的な動作を簡易にトレースすることができる。
【００４４】
なお、上記実施形態では、サーバ１６がＨＴＴＰ又はＨＴＴＰＳをサポートするか否かを判定する場合について説明したが、これに限定されない。例えば、サーバ１６がＦＴＰ（File Transfer Protocol）等のＨＴＴＰ及びＨＴＴＰＳ以外の通信プロトコルをサポートするか否かを判定する形態としてもよい。
【００４５】
また、上記実施形態において、ＣＰＵ３０がプログラムを実行することによってソフトウェアにより実現される機能を、例えば、半導体集積回路等のハードウェアにより実現してもよいし、ハードウェアとソフトウェアとの組み合わせにより実現してもよい。
【００４６】
また、上記実施形態では、処理プログラム３８が記憶部３２に予め記憶（インストール）されている態様を説明したが、これに限定されない。処理プログラム３８は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、及びＵＳＢ（Universal Serial Bus）メモリ等の記録媒体に記録された形態で提供されてもよい。また、処理プログラム３８は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【００４７】
１０  処理システム
１２  処理装置
１４  サービス
１６  サーバ
１８  プロキシサーバ
３０  ＣＰＵ
３１  メモリ
３２  記憶部
３８  処理プログラム
３９  構成ファイル
４０  起動部
４２  停止部
４４  判定部
４６  変更部
４８  コンテナ制御部
【図１】
2020027561.tif 000003
【図２】
2020027561.tif 000004
【図３】
2020027561.tif 000005
【図４】
2020027561.tif 000006
【図５】
2020027561.tif 000007
【図６】
2020027561.tif 000008
【図７】
2020027561.tif 000009
【図８】
2020027561.tif 000010