Archive for 7月, 2006

Sun Java System Web Server 7 Command

さて、前回までは基本的にGUIの管理画面を用いて、管理をしてきました。
# 一部、インスタンスの作成等でコマンドを使用しました。
そこで、今回は、CLIを用いた管理コマンドを御紹介したいと思います。
WS6.1までの管理コマンドは非常に限られたコマンドだけでした。
しかし、WS7.0からはGUIでできる殆どの処理をCLIから実行できるようになっています。
まず、管理コマンドには下記の3種類のモードが存在しますので紹介します。
この中で、特にJACLシェルは非常に便利で、コマンドの中から別コマンドを
実行できたりします。
 ●シングルモード
   sh,csh等のUNIXシェルより実行するモード
   他のコマンド(more,less)を併用可能
 ●シェルモード
   JACLシェルと呼ばれる、Webサーバの管理用コマンド専用のシェルモード
 ●ファイルモード
   全てのコマンドをファイルに記述し、wadmコマンドに対してファイルの内容を
   読み込ませ実行する。
1. wadmコマンドの実行
それでは、実際にWebサーバを管理するためのコマンドwadmを実行してみましょう。wadmコマンドを実行するためにオプションが足りないメッセージが出力されます。
ここでは、–userの引数が必要である事が指摘されています。

jse8-026> ./wadm
使用法: wadm [–user=admin-user] [–password-file=admin-pswd-file] [–host=admin-host] [–port=admin-port] [–no-ssl] [–rcfile=rcfile] [–no-prompt] [–help] [–commands-file=filename]
CLI014 user は必須オプションです。
jse8-026>

2. wadmコマンドの実行:サーバへの接続
次に、管理サーバへ接続します。–host,–portオプションはデフォルトで
localhost,8989版ポートとなっており、未入力でも接続可能です。
接続が完了すると「Sun Java System Web Server 7.0 B06/18/2006 10:03」の
メッセージが出力されます。
jse8-026> ./wadm –user=admin –host=localhost –port=8989
admin-user-password を入力してください> [adminadmin] <–非表示
Sun Java System Web Server 7.0 B06/18/2006 10:03
wadm>

3. パスワードファイルの使用
wadmコマンドを実行した場合、パスワードを問い合わせるプロンプトが出力されます。
このパスワードのプロンプトの出力を省略したい場合、入力するパスワードを
ファイルに出力し、コマンド実行時にパスワードファイルを読み込ますことができます。
jse8-026> echo “wadm_password=adminadmin” > admin.pwd
jse8-026> chmod 700 admin.pwd
jse8-026> ./wadm –user=admin –password-file=./admin.pwd
Sun Java System Web Server 7.0 B06/18/2006 10:03
wadm>

4. コマンド変数の初期値の設定
コマンドの実行の際、ユーザ名、パスワード等、何度も記述することが面倒な場合が
あります。その場合、変数の初期値を設定することが可能です。
ユーザのホームディレクトリ上に.wadmrcファイルを用意し、下記を記述します。
set wadm_user admin
set wadm_password adminadmin
set wadm_echo true
set wadm_verbose true
set wadm_host localhost
set wadm_port 8989
set wadm_ssl true
set wadm_script true

5. コマンド実行時の便利な機能
さらに、コマンド実行時においていくつかの便利な機能を持っています。
ここでは、3つの便利な機能を紹介します。
 *シェル(sh,csh,tcsh,bash等)の実行
  wadmコマンド実行時に、他の処理も実行可能
 *コマンドの実行ヒストリの表示
  以前実行したコマンドを検索可能
 *コマンド実行時の補完
  コマンド名を忘れた場合、キーワードの入力で類似コマンドを出力
wadm> pwd
/sun/webserver7/bin
wadm> ls
admin.pwd
certutil
htpasswd
jspc
modutil
pk12util
schemagen
uninstall
wadm
wdeploy
wsgen
wsimport
xjc
wadm> cat admin.pwd
wadm_password=adminadmin
wadm> ls -l admin.pwd
-rwx—— 1 root root 25 6月 26日 16:35 admin.pwd
wadm>

6. コマンド名の一覧
下記にwadmコマンドで実行可能なコマンドの一覧を示します。
下記のように非常に多くの操作をCLIから実行できるようになっています。
wadm> [TABキーを押下]
Display all 323 possibilities? (y or n)
add-search-docs add-webapp
block-reverse-proxy-header copy-config
copy-virtual-server create-auth-realm
create-auth-realm-userprop create-authdb
create-authdb-userprop create-cert-request
create-cgi-dir create-cgi-envvar
create-config create-custom-resource
create-custom-resource-userprop create-dav-collection
create-document-dir create-event
create-external-jndi-resource create-external-jndi-resource-userprop
create-file-authdb create-group
create-group-member create-http-listener
create-instance create-jdbc-resource
create-jdbc-resource-userprop create-jvm-options
create-jvm-profiler create-ldap-authdb
create-lifecycle-module create-lifecycle-module-userprop
create-mail-resource create-mime-type
create-pam-authdb create-reverse-proxy
create-search-collection create-selfsigned-cert
create-soap-auth-provider create-soap-auth-provider-userprop
create-url-redirect create-user
create-virtual-server delete-acl
delete-auth-realm delete-auth-realm-userprop
delete-authdb delete-authdb-userprop
delete-cert delete-cgi-dir
delete-cgi-envvar delete-config
delete-crl delete-custom-resource
delete-custom-resource-userprop delete-dav-collection
delete-document-dir delete-error-page
delete-event delete-external-jndi-resource
delete-external-jndi-resource-userprop delete-group
delete-group-member delete-home-page
delete-http-listener delete-instance
delete-jdbc-resource delete-jdbc-resource-userprop
delete-jvm-options delete-jvm-profiler
delete-lifecycle-module delete-lifecycle-module-userprop
delete-mail-resource delete-mime-type
delete-reverse-proxy delete-search-collection
delete-soap-auth-provider delete-soap-auth-provider-userprop
delete-url-redirect delete-user
delete-virtual-server deploy-config
disable-ciphers disable-dav-collection
disable-document-footer disable-event
disable-htaccess disable-java
disable-on-demand-compression disable-p3p
disable-parsed-html disable-perfdump
disable-precompressed-content disable-request-limits
disable-secretkey-restriction disable-single-signon
disable-snmp disable-stats-xml
disable-unix-homedir disable-webapp
disable-webdav enable-ciphers
enable-dav-collection enable-document-footer
enable-event enable-htaccess
enable-java enable-on-demand-compression
enable-p3p enable-parsed-html
enable-perfdump enable-precompressed-content
enable-request-limits enable-secretkey-restriction
enable-single-signon enable-snmp
enable-stats-xml enable-unix-homedir
enable-webapp enable-webdav
expire-lock forward-reverse-proxy-header
get-access-log get-access-log-buffer-prop
get-access-log-prop get-acl
get-acl-cache-prop get-admin-server-prop
get-auth-realm-prop get-authdb-prop
get-ca-trust-prop get-cache-control-directives
get-cert-prop get-cgi-prop
get-config-file get-config-prop
get-config-stats get-crl-prop
get-custom-resource-prop get-dav-collection-prop
get-default-content-type get-directory-listing-prop
get-dns-cache-prop get-dns-prop
get-document-footer-prop get-error-log
get-error-log-prop get-error-page
get-event-prop get-external-jndi-resource-prop
get-file-cache-prop get-home-page
get-htaccess-prop get-http-listener-prop
get-http-prop get-index-files
get-jdbc-resource-prop get-jvm-profiler-prop
get-jvm-prop get-keep-alive-prop
get-lifecycle-module-prop get-localization-prop
get-mail-resource-prop get-node-prop
get-on-demand-compression-prop get-p3p-prop
get-parsed-html-prop get-perfdump
get-perfdump-prop get-pkcs11-prop
get-precompressed-content-prop get-qos-limits-prop
get-qos-prop get-query-handler-prop
get-request-limits-prop get-reverse-proxy-prop
get-search-collection-prop get-search-prop
get-secretkey-restriction-prop get-servlet-container-prop
get-servlet-stats get-session-replication-prop
get-single-signon-prop get-snmp-prop
get-soap-auth-provider-prop get-ssl-prop
get-ssl-session-cache-prop get-stats-prop
get-stats-xml get-stats-xml-prop
get-symlinks-prop get-thread-pool-prop
get-unix-homedir-prop get-url-redirect-prop
get-user-prop get-virtual-server-prop
get-vs-stats get-webapp-stats
get-webdav-prop install-cert
install-crl list-acls
list-auth-realm-userprops list-auth-realms
list-authdb-userprops list-authdbs
list-certs list-cgi-dirs
list-cgi-envvars list-ciphers
list-config-files list-configs
list-crls list-custom-resource-userprops
list-custom-resources list-dav-collections
list-document-dirs list-error-pages
list-events list-external-jndi-resource-userprops
list-external-jndi-resources list-group-members
list-groups list-http-listeners
list-instances list-jdbc-resource-userprops
list-jdbc-resources list-jvm-options
list-jvm-profilers list-lifecycle-module-userprops
list-lifecycle-modules list-locks
list-mail-resources list-mime-types
list-nodes list-org-units
list-reverse-proxy-headers list-reverse-proxy-uris
list-search-collections list-soap-auth-provider-userprops
list-soap-auth-providers list-tokens
list-uri-patterns list-url-redirects
list-users list-virtual-servers
list-webapps migrate-jks-keycert
migrate-server pull-config
reconfig-instance register-agent
reindex-search-collection remove-search-docs
remove-webapp renew-admin-certs
restart-admin-agent restart-admin-server
restart-instance rotate-log
set-access-log-buffer-prop set-access-log-prop
set-acl set-acl-cache-prop
set-admin-server-prop set-auth-realm-prop
set-authdb-prop set-ca-trust-prop
set-cache-control-directives set-cgi-prop
set-config-file set-config-prop
set-custom-resource-prop set-dav-collection-prop
set-default-content-type set-directory-listing-prop
set-dns-cache-prop set-dns-prop
set-error-log-prop set-error-page
set-external-jndi-resource-prop set-file-cache-prop
set-home-page set-http-listener-prop
set-http-prop set-index-files
set-jdbc-resource-prop set-jvm-profiler-prop
set-jvm-prop set-keep-alive-prop
set-lifecycle-module-prop set-localization-prop
set-mail-resource-prop set-pkcs11-prop
set-qos-limits-prop set-qos-prop
set-query-handler-prop set-request-limits-prop
set-reverse-proxy-prop set-search-collection-prop
set-search-prop set-servlet-container-prop
set-session-replication-prop set-soap-auth-provider-prop
set-ssl-prop set-ssl-session-cache-prop
set-stats-prop set-symlinks-prop
set-thread-pool-prop set-token-pin
set-token-prop set-user-prop
set-virtual-server-prop set-webdav-prop
start-instance start-snmp-master-agent
start-snmp-subagent stop-admin-agent
stop-admin-server stop-instance
stop-snmp-master-agent stop-snmp-subagent
unregister-agent
wadm>

7. コマンドの実行例
ここでは、実際にあるコマンド(start-instance)を実行してみたいと思います。
コマンドを実行した場合、必要な引数が出力されます。ここでは config オプションが
必須であることが表示されます。具体的にどのようなオプションが指定可能かを
調べるためには、コマンド名に続いて –helpを入力します。
すると、Unixのmanで出力される形式で標準出力にマニュアルが表示されます。
 ※現在、このマニュアルの内容も日本語化するようにリクエストをあげて
  おりますが、日本語化まで今暫く御待ちください。
wadm> start-instance
使用法: start-instance [–echo] [–no-prompt] [–verbose] –config=name (nodehost)*
CLI014 config は必須オプションです。
wadm> start-instance –help

User Commands start-instance(1)
NAME
start-instance – starts the instance running on the speci-
fied configuration and on the specified nodes.
SYNOPSIS
start-instance [–user|-u admin-user] [–password-file|-w
admin-pswd-file] [–host|-h admin-host] [–port|-p admin-
port] [–no-ssl|-N] [–echo|-e] [–rcfile|-R rcfile] [–no-
prompt|-Q] [–verbose|-v] –config|-cname (nodehost)*
DESCRIPTION
Use this command to start instance(s) running on the speci-
fied configuration and on the specified nodes. If no nodes
are mentioned, all instances running on the specified confi-
guration are started. If you run this command when
instance(s) is already running, an error is displayed.
OPTIONS
–user
[継続する場合は <スペース>、終了する場合は q または Q]:


8. 既存の各種情報の取得
次に設定情報を取得し確認します。
現在、Webサーバに設定されている設定項目を確認するために、listコマンドを
使用します。下記では、設定・仮想サーバ・ノード・インスタンスをそれぞれ
確認しています。
wadm> list-configs
lb
cluster1
wadm> list-virtual-servers –config=cluster1
cluster1
wadm> list-nodes
jse8-026
jse8-027
wadm> list-instances –config=cluster1
jse8-026
jse8-027

8. アクセスログの取得
次にコマンドからアクセスログを取得し確認します。
下記の例では、引数の最後にノード名を指定していますが、
クラスタ構成の場合、クラスタを構成するノードを指定可能です。
また–num-recordsで表示する行数を指定します。
wadm> get-access-log –config=cluster1 –num-records=10 jse8-026
10.14.8.26 – [21/Jun/2006:13:10:31 +0900] “GET /simple/jsp/sessions/carts.html HTTP/1.1” 304 0
10.14.8.26 – [21/Jun/2006:13:10:36 +0900] “GET /simple/jsp/sessions/carts.jsp?item=Love+life&submit=add HTTP/1.1” 200 916
10.14.8.26 – [21/Jun/2006:14:36:11 +0900] “GET /simple HTTP/1.1” 302 0
10.14.8.26 – [21/Jun/2006:14:36:12 +0900] “GET /favicon.ico HTTP/1.1” 200 3574
10.14.8.26 – [22/Jun/2006:17:06:38 +0900] “GET /simple/jsp/ HTTP/1.1” 200 6887
10.14.8.26 – [22/Jun/2006:17:06:38 +0900] “GET /simple/images/execute.gif HTTP/1.1” 200 1242
10.14.8.26 – [22/Jun/2006:17:06:38 +0900] “GET /simple/images/code.gif HTTP/1.1” 200 292
10.14.8.26 – [22/Jun/2006:17:06:38 +0900] “GET /simple/images/return.gif HTTP/1.1” 200 1231
10.14.8.26 – [22/Jun/2006:17:06:38 +0900] “GET /favicon.ico HTTP/1.1” 200 3574
10.14.8.26 – [22/Jun/2006:17:12:22 +0900] “GET /favicon.ico HTTP/1.1” 200 3574

9. 各種統計情報の取得
最後に、Webサーバを稼動した状態で、Webサーバの稼動状態を
確認し、パフォーマンス等の統計情報を取得します。
WS6.1まではコマンドラインから下記の情報は取得できませんでした。
その代わりに、Webの管理画面から確認していました。
WS7.0になりコマンドから取得できるようになっています。
これにより、Webサーバをデータセンター等に設置し、
コンソールしか使用できないような場合に、管理用のHTTPポートを
別途起動せずに、確認することができ非常に有用かと思われます。
wadm> get-config-stats –config=cluster1
countRequests=39
rpsLast1MinAvg=0.0
rpsLast5MinAvg=0.0
rpsLast15MinAvg=0.0
countErrors=0
epsLast1MinAvg=0.0
epsLast5MinAvg=0.0
epsLast15MinAvg=0.0
maxResponseTime=1.1831077
rtLast1MinAvg=0.0
rtLast5MinAvg=0.0
rtLast15MinAvg=0.0
wadm> get-vs-stats –config=cluster1 –vs=cluster1
count200=23
count2xx=23
count302=4
count304=12
count3xx=16
count400=0
count401=0
count403=0
count404=0
count4xx=0
count503=0
count5xx=0
countBytesReceived=29593
countBytesTransmitted=54726
countErrors=0
countOpenConnections=0
countOther=0
countRequests=39
rateBytesTransmitted=0
vsName=cluster1
wadm> get-webapp-stats –config=cluster1 –vs=cluster1 –uri=”/simple”
countActiveSessions=0
countExpiredSessions=0
countJsps=0
countRejectedSessions=0
countReloadedJsps=0
countSessions=0
peakActiveSessions=0
secondsSessionAliveAverage=0
secondsSessionAliveMax=0
uri=/simple
vsName=cluster1
wadm> get-perfdump –config=cluster1 –node=jse8-026
Sun Java System Web Server 7.0 B06/18/2006 10:03 (SunOS DOMESTIC)
Server started Tue Jun 20 17:11:34 2006
Process 1786 started Tue Jun 20 17:11:35 2006
ConnectionQueue:
—————————————–
Current/Peak/Limit Queue Length 0/1/1352
Total Connections Queued 12
Average Queue Length (1, 5, 15 minutes) 0.00, 0.00, 0.00
Average Queueing Delay 0.09 milliseconds
ListenSocket http-listener-1:
————————
Address http://0.0.0.0:8080
Acceptor Threads 1
Default Virtual Server cluster1
KeepAliveInfo:
——————–
KeepAliveCount 0/200
KeepAliveHits 27
KeepAliveFlushes 0
KeepAliveRefusals 0
KeepAliveTimeouts 10
KeepAliveTimeout 30 seconds
SessionCreationInfo:
————————
Active Sessions 0
Keep-Alive Sessions 0
Total Sessions Created 16/128
CacheInfo:
——————
enabled yes
CacheEntries 14/1024
Hit Ratio 114/145 ( 78.62%)
Maximum Age 30
Native pools:
—————————-
NativePool:
Idle/Peak/Limit 1/1/128
Work Queue Length/Peak/Limit 0/0/0
DNSCacheInfo:
——————
enabled yes
CacheEntries 0/1024
HitRatio 0/0 ( 0.00%)
Async DNS disabled
Performance Counters:
————————————————
Average Total Percent
Total number of requests: 39
Request processing time: 0.2766 10.7873
default-bucket (Default bucket)
Number of Requests: 39 (100.00%)
Number of Invocations: 488 (100.00%)
Latency: 0.0003 0.0111 ( 0.10%)
Function Processing Time: 0.2763 10.7762 ( 99.90%)
Total Response Time: 0.2766 10.7873 (100.00%)
Sessions:
——————————————————-
Process Status Client Age VS Method URI Function

以上、簡単にコマンドの実行例を紹介しましたが、いかがでしょうか。
今まで、Webの管理画面でしかできなかったような管理がコマンドから
実行できるようになり、管理面においても非常に使い勝手がよくなっていることを
御確認いただけるかと思います。
正式リリースは、もう暫く先になりますが、このTechnology Previewから
弊社SJS Web Server 7.0に興味を持っていただき、実際に試していただければ
幸いです。
Technology Preview版に関する、何らかの御意見・御問い合わせがある場合、
英語にて下記メールアドレスに直接内容を御送信していただければ、
エンジニア・製品担当スタッフに対して直接連絡がとれるようになっています。
webserver7_ea@sun.com
それでは、今後ともSun Java System製品をよろしくお願いします。

2006年7月2日 at 10:30 午後


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2006年7月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

clustermap

ブログ統計情報

  • 1,288,494 hits

Feeds

アーカイブ