シミュレートされた環境をセットアップします。
OS:7
メモリ:1G
JDK:1.8.0_131
Tomcatの:8.0.48
私たちは直接直接TomcatのJMXを設定し、ここに証明することはできません環境準備
1、のTomcatのbinディレクトリに移動します
#CDの/opt/tomcat/apache-tomcat-8.0.48/bin/
2、設定ファイルを編集
#vimのcatalina.sh
3、パラメータ上の次の図を追加しました。
パラメータを追加した後のルックス
3.1、この構成は、接続JMXアカウントのパスワードを必要としません。
CATALINA_OPTS = "$ CATALINA_OPTS
-Dcom.sun.management.jmxremote
-D Javaの .rmi.server.hostname = 192.168.100.117
-Dcom.sun.management.jmxremote.port = 9999
-Dcom.sun.management.jmxremote.ssl =偽
-Dcom.sun.management.jmxremote.authenticate =偽」
設定のスクリーンショット後:
パラメータ:
ホスト名:サーバーのIPアドレスをTOMCAT監視しています
jmxremote.port:モニタポート番号をオープンするポート番号
jmxremote.ssl:あなたはオープンSSL接続にしたいですか
認証:虚偽の表示の監視、ユーザーとパスワードを必要としません。
3.2は、ユーザー名とパスワードを設定する必要があります。
CATALINA_OPTS = "$ CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname = 192.168.100.117
-Dcom.sun.management.jmxremote.port = 9999
-Dcom.sun.management.jmxremote.ssl = falseを
- Dcom.sun.management.jmxremote.authenticate =真
-Dcom.sun.management.jmxremote.password.file = .. / confに/ jmxremote.password
-Dcom.sun.management.jmxremote.access.file = .. / confに/ jmxremote.access」
設定のスクリーンショット後:
パラメータ:
認証:オープンアカウントの検証が真であります
access.file:ファイルパスへのアクセス
password.file:パスワード・ファイルのパス
3.3、パスワード認証が設定されていない場合、ユーザーが有効になっているこのステップを必要としない、この操作は、パスワードの検証手順を実行する必要が
3.3.1、JDKを見つけるために、インストールディレクトリ
次のコマンドで場所を見つけるためにインストールディレクトリがわからない場合:
#Javaの-verbose
3.3.2は、ディレクトリのJDKに切り替えます
#CDのJRE / libに/管理を入力します/
ファイルディレクトリでのTomcatのconfディレクトリにコピーし、jmxremote.password.templateファイルをは、jmxremote.accessます
#cpはのjmxremote。* /opt/tomcat/apache-tomcat-8.0.48/conf/
3.3.3、は、jmxremote.accessファイルを変更
3.3.4、名前の変更パスワードファイル:
#mvのjmxremote.password.template jmxremote.password
3.3.5、パスワードファイルを編集します
#vimのjmxremote.password
3.3.6は、ファイルを編集した後、それ以外の場合はTomcatの起動しない、アクセスパスワードファイルやファイルのパーミッションを変更します
#chmodの600のjmxremote。*
4、Tomcatを開始
[root@ha bin]# ./startup.sh Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.0.48/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar Tomcat started.
4.1、做完上面操作,使用jdk自带的jvisualvm.exe连接,可以在windows下测试
双击打开jmx连接
4.2、重启tomcat,测试jmx是否还可以连接上
# ./shutdown.sh
4.2.1、再次连接jmx查看是否可以连接上
数据监控图都查看不了,连接不上
为什会出现这个问题?
网上给出的结论是:
tomcat的jmx远程健康是需要两个端口,一个是注册端口,一个是服务端口,之前配置指定的9999端口是注册端口,tomcat在启动的时候会随机指定一个服务端口,由于我们注册端口只有一个,所以在重启服务后,注册端口没有变化,服务端口已经变了,再次通过注册端口连接已经连接不上之前的服务端口了,没有办法指定服务端连接,服务端口是随机的。
有一种方法是设置jmx固定的注册端口和服务端口,通过jar包实现
5、登录tomcat官网(注意,我的tomcat版本是1.8.0的官网上只有1.8.5的也可以使用)
根据自己的tomcat版本找到JMX Remote jar
6、把下载下来的上传到tomcta的lib目录下
获取jar包的连接也可以直接wget到lib目录下
# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/extras/catalina-jmx-remote.jar
7、编辑tomcat的conf目录下的server.xml文件
# vim server.xml
添加下面内容:
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
8、編集Tomcatのbinディレクトリのcatalina.sh
#vimのcatalina.sh
削除パラメータ:
-Dcom.sun.management.jmxremote.port = 9999
9、Tomcatを再起動テスト、JMX登録ポート10001、サービスポート10002
10は、再び接続テストTOMCAT再起動します
JMXは、リモート私たちが理由である、また、接続されていないでしょう、以前に作成した接続をダブルクリックすると、ここでは、接続のPID番号の上、お問い合わせ後、我々はPID番号はTomcatの中のPID番号でlinuxがあることがわかったことに注意すべきです我々はTomcatを再起動するときに我々は新しい接続を作成します接続したいので、新しいPID番号を生成します
11は、私たちの新しいJMXはそれが新しい番号のPIDを取得する際に再び接続しました