この節では、Sun Java System Web Server の監視機能について説明し、インスタンスレベル、構成レベルの両方で監視可能なサーバーパラメータの詳細なリストを提供します。
「構成」タブ、「インスタンス」タブのいずれかを「監視」親タブの下で選択すると、監視可能なサーバーパラメータが表示されます。
Sun Java System Web Server 管理コンソールから実行可能なアクションは、次のとおりです。
インスタンスレベルおよび構成レベルのサーバー統計を表示する。
構成レベルで監視を有効/無効にする。
インスタンスレベルのエラー/アクセスログを表示する。
構成レベルのサーバーパラメータを監視するには、「監視」>「構成」タブをクリックします。この表には、利用可能な構成が次の情報とともに一覧表示されます。
ノード — その構成が配備されたノードの数。
要求数 — 受信された要求の、すべての仮想サーバーにわたる合計数。
エラー — ログに記録されたエラーの、すべての仮想サーバーにわたる合計数。
応答時間 — すべての仮想サーバーのなかでの最大応答時間。
構成レベルの統計を取得するには、構成名をクリックします。一般統計は次の 3 つのタイプに分けられます。
要求の統計
エラーの統計
応答時間の統計
管理コンソールでは、サーバー統計を次のカテゴリ別に表示できます。
一般統計。
インスタンスの統計。
仮想サーバーの統計。
カテゴリ |
説明 |
---|---|
一般統計 |
「一般統計」には、構成の要求、エラー、および応答に関する全体的な統計が表示されます。 |
インスタンスの統計 |
「インスタンスの統計」には、インスタンスの要求、エラー、および応答に関する全体的な統計に加え、サーバークラッシュ数および仮想サーバー数の情報も表示されます。 |
仮想サーバーの統計 |
「仮想サーバーの統計」には、仮想サーバーの要求、エラー、および応答に関する全体的な統計に加え、開いている接続の数および送信/受信合計バイト数の情報も表示されます。 |
「監視」タブをクリックします。
リストから構成を選択します。
「一般統計」、「インスタンスの統計」、および「仮想サーバーの統計」を表示します。
CLI の使用
サーバーの監視は、get-config-stats
、get-virtual-serevr-stats
、get-webapp-stats
、および get-servlet-stats
コマンドを使って行えます。
wadm> get-config-stats --user=admin --password-file=admin.passwd --host=localhost --port=8989 --config=test --node=cat.test.com --ssl=true
このコマンドは、指定されたインスタンスの統計を取得します。構成レベルの統計を取得するには、--node
オプションを指定しないでこのコマンドを使用します。
wadm> get-virtual-server-stats --user=admin --password-file=admin.passwd --host=localhost --port=8989 --config=test --vs=www.test.com --node=cat.test.com --ssl=true
このコマンドは、ある特定の構成が配備されたすべてのノードにわたる、その構成の集積的な仮想サーバー統計を取得します。ある特定のノードに配備された構成の統計を取得するには、--node
オプションを使用します。
wadm> get-webapp-stats --user=admin --password-file=admin.passwd --host=localhost --port=8989 --config=test --node=cat.test.com --vs=www.test.com --uri=/foo --ssl=true
このコマンドは、指定されたインスタンスの指定された仮想サーバー上に配備された、ある特定の Web アプリケーションの統計を取得します。ある特定の構成が配備されたすべてのノードにわたる、その構成の集積的な Web アプリケーション統計を取得するには、--node
オプションを指定しないでこのコマンドを使用します。
wadm> get-servlet-stats --user=admin --password-file=admin.pwd --host=localhost --port=8989 --config=test --node=cat.test.com --vs=www.test.com --uri=/servlet-simple --ssl=true
このコマンドは、サーブレット servlet-simple の統計を取得します。
「共通操作」ページで「構成」タブをクリックして、リストから構成を選択します。
「仮想サーバーを編集」タブをクリックします。
「監視設定」タブをクリックします。
「XML レポート」チェックボックスを有効にして、発行する URI を入力します。
「保存」ボタンをクリックします。
画面右上の「配備保留中」リンクをクリックします。
「配備」ボタンをクリックします。
たとえば、デフォルト URI を構成済みである場合は、ブラウザに次の URL を入力して stats-xml ファイルを表示できます。
http://host:port /stats-xml
stats-xml ファイルの .dtd を表示する場合は、ブラウザに次の URL を入力します。
http://host:port /stats-xml/yyy.dtd
サーバーは、SNMP 経由で監視アクションを実行します。SNMP は、ネットワークアクティビティーに関するデータをやり取りするために使用されるプロトコルです。SNMP では、管理対象デバイスとネットワーク管理ステーション (NMS) との間でデータが転送されます。管理対象デバイスは、SNMP が実行されている任意のデバイスです。 つまり、ネットワーク上のホスト、ルーター、Web サーバー、その他のサーバーなどです。NMS は、そのネットワークをリモート管理する場合に使用するマシンです。NMS ソフトウェアは通常、収集されたデータを表示するグラフを提供したり、そのデータを使ってサーバーがある特定の許容範囲内で稼働しているか確認したりします。
NMS は通常、1 つ以上のネットワーク管理アプリケーションがインストールされた強力なワークステーションです。HP OpenView のようなネットワーク管理アプリケーションでは、Web サーバーなどの管理対象デバイスに関する情報がグラフィカルに表示されます。たとえば、社内のどのサーバーが稼動またはダウンしているかを表示したり、受け取ったエラーメッセージの数と種類を表示したりできます。SNMP と Sun Java System Web Server を組み合わせて使用する場合、サブエージェント、マスターエージェント の 2 種類のエージェントを使って、NMS とサーバーとの間でこの情報が転送されます。
サブエージェントはサーバーに関する情報を収集し、その情報をサーバーのマスターエージェントに渡します。管理サーバー以外の Sun Java System Web Server はすべて、サブエージェントを持ちます。
SNMP 構成を変更した場合には、「保存」ボタンをクリックしてから SNMP サブエージェントを再起動する必要があります。
構成の設定を変更するには、次のタスクを実行します。
「構成」タブをクリックします。
監視設定を変更する必要のある構成を選択します。
「監視設定」サブタブをクリックします。
構成の一般的な監視設定を変更するには、「一般設定」セクションの値を編集します。次の表に、一般的な監視パラメータのフィールド説明を示します。
表 13–2 フィールド説明 > 一般的な監視設定
構成の SNMP サブエージェント設定を変更するには、「SNMP サブエージェント設定」セクションの値を編集します。次の表に、SNMP サブエージェントパラメータのフィールド説明を示します。
表 13–3 フィールド説明 > SNMP サブエージェント設定
SNMP は、ネットワークアクティビティーに関するデータをやり取りするために使用されるプロトコルです。SNMP では、管理対象デバイスとネットワーク管理ステーション (NMS) との間でデータが転送されます。管理対象デバイスは、SNMP が実行されている任意のデバイスです。 つまり、ネットワーク上のホスト、ルーター、Web サーバー、その他のサーバーなどです。NMS は、そのネットワークをリモート管理する場合に使用するマシンです。NMS ソフトウェアは通常、収集されたデータを表示するグラフを提供したり、そのデータを使ってサーバーがある特定の許容範囲内で稼働しているか確認したりします。
NMS は通常、1 つ以上のネットワーク管理アプリケーションがインストールされた強力なワークステーションです。Sun Management Center のようなネットワーク管理アプリケーションでは、Web サーバーなどの管理対象デバイスに関する情報がグラフィカルに表示されます。たとえば、社内のどのサーバーが稼動またはダウンしているかを表示したり、受け取ったエラーメッセージの数と種類を表示したりできます。SNMP と Sun Java System Web Server を組み合わせて使用する場合、サブエージェント、マスターエージェント の 2 種類のエージェントを使って、NMS とサーバーとの間でこの情報が転送されます。
サブエージェントはサーバーに関する情報を収集し、その情報をサーバーのマスターエージェントに渡します。
SNMP サブエージェントを起動するには、次のタスクを実行します。
「ノード」タブをクリックします
ノードのリストから、選択可能なノードをクリックします。
「 SNMP サブエージェント」タブをクリックします
「SNMP サブエージェントを起動」ボタンをクリックしてサブエージェントを起動します。
SNMP サブエージェントを起動する前に、マスターエージェントが稼働中であることを確認してください。サブエージェントが起動されるのは、マスターエージェントが稼働中の場合だけです。
SNMP サブエージェントを停止するには、次のタスクを実行します。
「ノード」タブをクリックします
ノードのリストから、選択可能なノードをクリックします。
「 SNMP サブエージェント」タブをクリックします
「SNMP サブエージェントを停止」ボタンをクリックしてサブエージェントを停止します。
一般に、SNMP を使用するには、1 つのマスターエージェントと少なくとも 1 つのサブエージェントをシステム上にインストールし、それらを実行する必要があります。サブエージェントを有効にするには、まずマスターエージェントをインストールしておく必要があります。
SNMP の設定手順は、システムによって異なります。次の表では、従うべき手順の概要を、さまざまな状況ごとに示します。実際の手順については、この章のあとのほうで詳しく説明します。
設定を開始する前に、次の 2 つの点を確認する必要があります。
SNMP エージェント (使用するオペレーティングシステムのネイティブエージェント) がシステムですでに稼動していること
稼働している場合、ネイティブ SNMP エージェントが SMUX 通信をサポートしていること (AIX プラットフォームを使用している場合、システムは SMUX をサポートしている)
この情報を確認する方法については、使用しているシステムのマニュアルを参照してください。
管理サーバーの SNMP の設定を変更したあと、新しいサーバーをインストールしたあと、または既存のサーバーを削除したあとは、次の手順を実行する必要があります。
(Windows) Windows SNMP サービスを再起動するか、マシンを再起動します。
(UNIX) 管理サーバーを使用して SNMP マスターエージェントを再起動します。
SNMP パラメータを構成します。
構成の SNMP パラメータを設定します。
wadm> enable-snmp --user=admin --password-file=../admin.passwd --host=serverhost --port=8989 --ssl=true --no-prompt --rcfile=null --config=config1 --loconfig1ion=india --master-host=hostname --description=cli-snmp --organization=sun --contact=internal |
構成を配備します。
wadm> deploy-config --user=admin --password-file=admin.pwd --host=serverhost --port=8989 config1 |
サーバーインスタンスを起動します。
$ ./https-test/bin/startserv |
マスターエージェント (magt) を root として実行します。
magt を実行するには、ネイティブの snmpd を停止する必要があります。
$ cd /etc/init.d/ $ init.dmi stop; init.snmpdx stop; init.sma stop |
ファイル https-admserv/config/logs/pid.masteragt が存在する場合はそれを削除します。
$ rm ./https-admserv/config/logs/pid.masteragt wadm> start-snmp-master-agent --snmp-port 161 hostname |
サブエージェントを起動します。
ファイル https-admserv/config/logs/pid.httpagt が存在する場合はそれを削除します。
$ rm ./https-admserv/config/logs/pid.httpagt |
httpagt がすでに稼働中の場合はそれを終了させます
wadm> start-snmp-subagent hostname |
SNMP パラメータを構成します。
構成の SNMP パラメータを設定します。
wadm> enable-snmp --user=admin --password-file=../admin.passwd --host=serverhost --port=8989 --ssl=true --no-prompt --rcfile=null --config=config1 --loconfig1ion=india --master-host=hostname --description=cli-snmp --organization=sun --contact=internal |
構成を配備します。
wadm deploy-config --user=admin --password-file=admin.pwd --host=serverhost --port=8989 config1 |
サーバーインスタンスを起動します。
$ ./https-test/bin/startserv |
ネイティブのマスターエージェント (snmpd) を root として実行します。
snmpd と直接通信できるようにするには、/etc/snmp/snmpd.conf に次の行を追加し、snmpd を再起動します。
smuxpeer 1.3.6.1.4.1.42.2.190.1
view systemview included .1.3.6.1.4.1.42.2.190.1
# cd /etc/init.d/ # ./snmpd stop # ./snmpd start |
サブエージェントを起動します。
ファイル https-admserv/config/logs/pid.httpagt が存在する場合はそれを削除します。
$ rm ./https-admserv/config/logs/pid.httpagt |
httpagt がすでに稼働中の場合はそれを終了させます
wadm> start-snmp-subagent hostname |
SNMP パラメータを構成します。
構成の SNMP パラメータを設定します。
wadm> enable-snmp --user=admin --password-file=../admin.passwd --host=serverhost --port=8989 --ssl=true --no-prompt --rcfile=null --config=config1 --loconfig1ion=india --master-host=hostname --description=cli-snmp --organization=sun --contact=internal |
システムパス環境変数に install-root/ lib ディレクトリを追加します。
マシンを再起動します。
Windows のサービスオプションを使って Web Server インスタンスを起動します。
SNMP サービスを起動します。
管理サーバーが root ユーザー以外でインストールされている場合、管理インタフェースを使ってSNMP マスターエージェントを起動することはできません。root でない管理サーバーユーザーに、管理インターフェースを使用してマスターエージェントの起動を許可するには、SNMP マスターエージェントが実行されている特権付きポートにバインドする特権を RBAC を使用して付与する必要があります。デフォルトの SMUX ポートは 199、デフォルトの SNMP ポートは 161 です。
別の回避方法は、root になり、コマンド magt CONFIG INIT を使用して、マスターエージェントを手動で起動する方法です。magt コマンドは server-root/lib/snmp/magt/ にあります。
次の手順に従えば、Solaris 10 および Linux 上の OS ネイティブマスターエージェントと統合されるようにピアベースのマスターエージェントを構成することができます。
Solaris 10 の OS ネイティブマスターエージェントは、snmpd です。これは、デフォルトでは SNMP のデフォルト UDP ポート 161 上で実行されます。これは、/etc/sma/snmp/snmpd.conf ファイルを使用して構成できます。これは、ほかのマスターエージェントやサブエージェントに要求/応答を転送するためのプロキシ指令を提供します。詳細については、snmpd.conf のマニュアルページを参照してください。
Solaris 8 および 9 の場合、OS ネイティブマスターエージェント snmpd との明確な統合は存在しません。Linux の場合、httpagt を snmpd に直接統合することができます。そうした場合、magt を実行する必要はありません。Windows の場合、Sun Java System Web Server の snmp ライブラリが Windows の SNMP サービスと直接通信します。
上の注で説明したように、SNMP ポート (11161) を指定してマスターエージェントを起動します。
Solaris 10 の /etc/sma/snmp/snmpd.conf に次の行を追加します。
proxy -v 1 -c public myserver:11161 .1.3.6.1.4.1.42.2.190.1 |
snmpd を再起動します。
# cd /etc/init.d # init.dmi stop; init.snmpdx stop; init.sma stop # init.dmi start; init.snmpdx start; init.sma start |
SNMP データを取得するには、snmpwalk をポート上で使用します。
$ snmpwalk -c public -v 1 <host-name>:<port> 1.3.6.1.4.1.42.2.190.1 |
管理サーバーのログファイルには、サーバーに関するデータが記録されます。これには、検出したエラーのタイプやサーバーアクセスに関する情報が記録されます。これらのログを参照すれば、検出されたエラーのタイプや、特定ファイルへのアクセス発生時刻などのデータが得られるため、サーバーアクティビティーの監視や問題の解決を行えます。
管理コンソールの「ログの設定」ページを使えば、管理サーバーログに記録されるデータのタイプや形式を指定できます。たとえば、管理サーバーにアクセスするすべてのクライアントに関するデータをログに記録することを選択することも、特定のクライアントをログから除外することもできます。さらに、サーバーについて決まった量の情報を提供する共通のログ形式を選択したり、必要に応じてカスタムログファイル形式を作成したりすることもできます。
ログのタイプは大きく次の 2 つにわけられます。
アクセスログ — アクセスログには、サーバーへの要求やサーバーからの応答に関する情報が記録されます。
サーバーログ — サーバーログには、ログファイルの作成後にサーバーが検出したすべてのエラーが含まれます。このファイルには、サーバーの起動時刻や、サーバーへのログインに失敗したユーザー名などのサーバーに関する情報メッセージも記録されます。
サーバーログの表示.
wadm> get-log --user=admin --password-file=admin.passwd --host=localhost --port=8989 --start-date=01/01/2006:09:00:00 --end-date=04/01/2006:10:00:00 --config=test cat.test.com
このコマンドは、ある特定の構成のサーバーログを、日付 01/Jan/2006: 09:00:00
から 04/Jan/2006: 10:00:00
までの範囲で表示します。
アクセスログの表示.
wadm> get-access-log --user=admin --password-file=admin.passwd --host=localhost --port=8989 --status-code=300 --config=test cat.test.com
このコマンドは、ある特定の構成に対する、状態コードが 300 のアクセスログエントリだけを表示します。
上記のコマンドでは、start-date および end-date オプションは、dd/MM/yyyy:HH:mm:ss の形式になるようにしてください。この日時形式はカスタマイズすることもできます。rcfile 内で変数 wadm_log_date_format を使えば、デフォルトの日時形式を使用する代わりにユーザー独自の日時形式を指定できます。
Sun Java System Web Server では、次のコマンドを実行することでアクセスログを有効にできます。
enable-access-log --user=admin --host=serverhost --password-file=../admin.passwd --port=8989 --ssl=true --no-prompt --rcfile=null --config=config1 --vs=vs --uri-pattern="*.html" --file=../logs/access.new --log-ip=true--format="%Req->reqpb. protocol% %Req->headers.authorization% %vsid% %Ses->client.dns%"
構成のログの設定を有効化および編集するには、次のタスクを実行します。
「構成」タブをクリックします
ログの設定を有効化/編集する必要のある構成を選択します。
「一般設定」>「ログの設定」タブをクリックします
「アクセスログの設定」セクションのフィールドについて、次の表で説明します。
表 13–5 フィールド説明 > アクセスログの設定の編集
「サーバーログの設定」セクションのフィールドについて、次の表で説明します。
表 13–6 フィールド説明 > サーバーログの設定の編集
フィールド |
説明 |
ファイルの場所 |
サーバーログのファイルの格納先となるサーバーパス。デフォルト値は ../logs/errors です。 |
ログの冗長レベル |
このオプションを使えば、ログの粒度を簡単に設定できます。Web アプリケーションのテストやデバッグにお勧めのレベルは、「もっとも詳細」です。 本稼働環境にお勧めのログレベルは、「失敗」または「セキュリティー」です。「重大」ログレベルでは、ほんのわずかの詳細しかログに記録されません。 |
仮想サーバー名を出力 |
このオプションを選択すると、エラーに加えて、その要求を処理した仮想サーバーの名前もログに記録されます。 |
システムログに出力 |
すべてのメッセージをシステムログに記録します。 |
コンソールに出力 |
このオプションを選択すると、配備済み Web アプリケーションから発行された例外が「コンソール」に書き込まれた場合に、その例外がログに記録されます。 このオプションはデフォルトで有効になっています。 |
日時形式 |
時間の形式。エラーメッセージの末尾にタイムスタンプを追加するために使用されます。デフォルト値は [%d/%b/%Y:%H:%M:%S] です |
ログファイルが自動的に保存されるように設定することができます。ある特定の時刻に、あるいはある指定された間隔で、サーバーはアクセスログのローテーションを行います。サーバーは古いログファイルを保存し、その保存したファイルに、保存時の日付と時刻を含む名前を付けます。
たとえば、ファイルのローテーションが 1 時間ごとに行われるように設定した場合、サーバーはファイルを保存し、それに「access.199907.0152400」という名前を付けます。この場合、「名前|年|月|日付|24 時間時刻」が結合されて単一の文字列になります。アクセスログアーカイブファイルの形式は、設定したログローテーションのタイプによって異なります。
アクセスログのローテーションは、サーバー起動時に初期化されます。ローテーションを有効にすると、サーバーはタイムスタンプの付いたアクセスログファイルを作成し、ローテーションがサーバーの起動時に開始されます。
ローテーションが開始されると、アクセスログファイルに記録する必要のある要求が発生し、かつその要求が以前にスケジュールされた「次のローテーション時刻」のあとで発生した場合に、サーバーは新しいタイムスタンプのアクセスログファイルを作成します。
ログローテーションのオプションを使えば、構成されたインスタンスのエラー/アクセスログのローテーションスケジュールを作成できます。ログローテーションを設定するには、次の手順を実行します。
「構成」タブをクリックします
ログの設定を有効化/編集する必要のある構成を選択します。
「一般設定」>「ログの設定」タブをクリックします
「ログの保存」セクションの「新規」ボタンをクリックします
「新規ログローテーションイベント」ページのフィールドについて、次の節で説明します。
表 13–7 フィールド説明 > ログローテーションの設定
フィールド |
説明 |
---|---|
イベント |
アクセスログをローテーション/サーバーログのローテーション。これらのオプションのいずれかまたはその両方を選択すると、選択したログタイプのローテーションを構成できます。 |
時間 |
構成されたイベント起動時刻。ドロップダウンボックスから時間と分の値を選択します。 毎日 — 指定されたイベントを指定された時刻に毎日起動します。 指定日 — 指定されたイベントを指定された日に起動します。 1. 曜日 — 日曜から土曜までの間で、任意の曜日を指定します。 2. 日付 — 1 から 31 までの間で、任意の日付をコンマ区切りエントリとして指定します。例: 4,23,9 指定月 — 指定された月の指定された時刻に指定されたイベントを起動します。1 月から 12 月までの間で、月を指定します。 |
間隔 |
この期間後に指定されたイベントを起動します。 1. 時間おき — ドロップダウンボックスから時間数を選択します。 2. 秒おき — ドロップダウンリストから秒数を選択します。 |
スケジュールされたログローテーションを削除する必要がある場合は、「ログの保存」セクションの「削除」ボタンをクリックします。
サーバーがログファイルのローテーションを実行したあとで、コマンドの絶対パスを指定できます。ログファイルのローテーション後のファイル名は、アーカイブコマンドへの引数として渡されます。アーカイブコマンドは、ローテーションされたログファイルも圧縮します。
管理コンソールを使って実行されたすべての構成変更が、管理サーバーによってログに記録されます。ログに頻繁に記録されるアクションとしては、新しい構成の作成、仮想サーバーの作成、インスタンスの設定などが挙げられます。ただし、Web アプリケーションへのアクセスや、Web アプリケーションへのアクセス時に発生した例外などの構成レベルの詳細は、構成ごとに個別のログに記録されます。
「管理サーバー」>「一般」タブをクリックします。
「ログの設定」セクションに移動します。
「ファイルの場所」フィールドを編集します。
エラーの格納先となるログの場所。ログファイルを維持するための有効なサーバーパスを入力します。UNIX システムの場合は、指定されたディレクトリへの書き込み権を管理サーバーが持っているかどうかの確認も行います。
デフォルトの場所は ../log/errors です
「管理サーバー」>「一般」タブをクリックします。
「ログの設定」セクションに移動します。
「ログの冗長レベル」を選択します。
このオプションを使えば、ログの粒度を簡単に設定できます。テストやデバッグにお勧めのレベルは、「もっとも詳細」です。
本稼働環境にお勧めのログレベルは、「失敗」または「セキュリティー」です。「重大」ログレベルでは、ほんのわずかの詳細しかログに記録されません。