戯言

つらつらと気づいたことを書いていきます。人狼とか。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windowsのtomcatのメモリ監視をjconsoleの認証付きで行う方法


まずは、Javaの起動オプションに以下の設定を追加します。
authenticate=trueの設定で認証を利用することを宣言し、認証で使用するパスワードと、認証したユーザのアクセス権を記述したファイルのパスを指定しています。
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=10080
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\jconsole.password
-Dcom.sun.management.jmxremote.access.file=C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\jconsole.access
指定したパスに、jconsole.passwordファイルと、jconsole.accessファイルを作ります。
パスワードファイルでは、ユーザ名と、パスワードを指定します。

・jconsole.passwordの内容
user password
アクセス権ファイルでは、ユーザ名と、アクセス権を指定します。

・jconsole.accessの内容
user readonly
そして、ここからが重要ですが、パスワードに所有者READ権以外のアクセス権が付いていると、tomcatが起動できなくなるので、パスワードファイルの所有権・アクセス権を設定する必要があります。
まず、ファイルのアクセス権の変更を行います。GUIではできなかった(私がわからなかっただけ?)ので、コマンドプロンプトからcaclsコマンドで行いました。
tomcatの監視をしたい場合、tomcatは通常SYSTEMユーザで起動されるため、アクセス権をSYSTEMユーザのREAD権のみにします。
cacls C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\jconsole.password /P SYSTEM:R
次に、所有者の変更を行います。ファイルの[プロパティ]→[セキュリティ]→[詳細表示]→[所有者]→[編集]で変更できます。
SYSTEMと指定してください。
これで、認証パスワード付きで、jconsoleの使用ができるようになります。




tomcat7のaliases機能


tomcat7からだと思いますが、tomcat単独でもパスのalias機能が使えるようになりました。
(Apacheには同様の機能は昔からあります)

tomcatを利用している方は、コンテキストごとのdocBase配下(デフォルトでは「webapps/コンテキスト名」です)に、リソースを配置していると思います。
このリソースにアクセスするURLは、「http://ホスト名/コンテキスト名/」です。

aliasを使えば、物理パス「webapps/コンテキスト名/」配下にファイルを置いていないけれども、「http://ホスト名/コンテキスト名/・・・・」として、見せることができます。

具体的には、物理パスと見せるパスのalias設定をします。

以下のようにContext句にaliases属性を設定すると、物理パスで/absolute/path配下のリソースを、http://ホスト名/コンテキスト名/logとして、見せることができます。
<Context aliases="/log=/absolute/path" />

アプリが動作する中で作成したログファイルを公開する場合などで使えます。
webapps/コンテキスト名/配下に置くと、プログラムを入れ替えてwarファイルをデプロイする度に、いったん退避するなど面倒なことになりますが、aliasを使ってwebappsとは無関係のディレクトリに置いておけば、その心配はありません。

複数のaliasを設定したい場合は、以下のようにできます。
<Context aliases="/aliasPath1=docBase1,/aliasPath2=docBase2" />

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。