【改訂版_2024年7月】Oracle JMS設定、入門の入門編　〜貴社のJavaポートフォリオの管理強化に向けて、オラクルクラウドサービスJMSを、触ってみよう！　

＜本マニュアルの趣旨＞
OCIクラウドサービスとして、組織内のJavaポートフォリオをモニター管理するJMS機能の関しての「入門の入門編」です。
詳細は、下記Workshopに記載されておりますが、オプション設定等も詳述されており、いきなり下記の資料を読むのは、初めての方には非常に敷居が高いと思います。

■ Manage Java Runtimes, Applications and Managed Instances Inventory with Java Management Service （Workshop）
https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=912&clear=RR,180&session=106831188377065

■ Getting Started with Java Management Service （Document)
https://docs.oracle.com/en-us/iaas/jms/doc/getting-started-java-management-service.html

本稿では、「入門の入門編」として、被管理マシンにインストールされたJVMを検出しモニターする部分のみをOCI上で設定します。「JMSを触ってみよう。」と言うレベルでのマニュアルを目指しております。JMSには基本機能と有料版機能がありますが、本稿では、基本機能の内でも、とりわけ「入門機能」に絞り込んでおります。

＜本稿で目指す設定＞
「JMSを触ってみる。」と言う立ち位置から、「OCIクラウド上でJMS機能を稼働させ、被管理マシン（クライアントPC）上にあるJVMをモニターする。」と言う設定に絞り込みます。（JMSには多様な機能がありますが、本稿では、「JVMのバージョンとベンダー情報の表示」と言う機能に絞り込みます。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/83f71917-881b-f88a-3c9d-d524065eb5ac.png)

＜事前に用意するもの＞
・ OCI（Oracleクラウド）無料版のアカウント設定
・ Linuxマシン、Windowsマシン、Macマシン（下記では、Google Cloud上で設定したUbuntu 20の仮想インスタンスを使用）

＜大まかな手順＞
1.  OCIクラウド上でのアカウント設定
2.  OCIクラウドでのJMSサーバ設定（Fleet設定）
3.  被管理マシンでのJMS Agentの設定
4.	モニター／監視

＜作業詳細＞
1.　OCIクラウド上でのアカウント設定　：　目標５分
WorkshopのLab１に記載。（オプション設定の記載が多く、膨大な記述となっているが、今回は基本機能を触ってみるのが趣旨なので、”optional”と記載がある部分は全て無視して設定を進めます。）

２．OCIでのJMSサーバ設定（Fleetの設定）　目標10分
WorkshopのLab2に記載。（同様に、”optional”と記載がある部分は全て無視。）
Fleet作成後の状態

![名称未設定3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/0db77e08-f037-3b57-4968-b036c1478847.png)
ここをクリックすると、画面が切り替わる。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/e275a281-012f-13ac-d940-00ce3891913b.png)

そうすると、①Agent　InstallerをDLできる画面に切り替わります。

３．被管理マシンでのJMS Agentの設定(JDK8 v361 or higherが必要)
WorkshopのLab3とLab４はとりあえず、飛ばします。
Lab３では、Javaアプリ挙動監視の為の設定であるが、今回は、「インストールされているJVMモニター」と言う最も基本的な機能に絞るので、Lab３は無視。
また、Lab４は、Advanced機能設定に関してなので、同じく無視。

まず、サポートされている被管理マシンを確認しよう！
https://docs.oracle.com/en-us/iaas/jms/doc/system-requirements.html#GUID-9C3D3785-5BCC-4F3F-AD38-B3DDB47472A5

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/c901d530-4a11-61be-481b-bba37ad8f739.png)

**** 2023年12月現在、Debianはサポートされておりません！ *****

■ DL必要なソフトウエア
①Management Agent Installer

＜OCIからDLする。＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/096cddfd-12ee-0553-bca4-ad6cb144f4fc.png)

■　Ubuntu20での設定作業（x86/64、Google Cloud上に仮想インスタンスで構築）
・　/home/opc と言うフォルダを作成し、
・　そこに、Management Agent Software(jms_setup_v9.0.59_linux-x86_64.tar.gz)とJMS_agent_configuration.rspをDLし

・　Management Agent Softwareをunzipし、
```
sudo tar -xvf jms_setup_v9.0.60_linux-x86_64.tar.gz
```
・　その上で、下記コマンドを走らせる。

.sh を走らせて、Management Agent Softwareをインストールする。
```
root@ubnntu20-instance-20240802-1645:/home/opc# ls
JMS_agent_configuration.rsp  app                 jms_setup_v9.0.59_linux-x86_64.tar.gz  uninstaller.sh
README.txt                   installJMSAgent.sh  runtime
root@ubnntu20-instance-20240802-1645:/home/opc# sudo bash installJMSAgent.sh
Identifying operating system...
Operating system identified as Linux, CPU architecture: amd64.
Executed as root user.
Able to find configuration file with name: JMS_agent_configuration.rsp.
Beginning installation using the JMS installer. 
Successfully installed JDK 8.
Setup Java Management Service (script deployMgmtAgent.sh, version 9.0)
~~~~~~~~~~~~~
~~~~~~~~~~~~~
Please make sure that you delete /tmp/jms-input.rsp or store it in secure location.

==================================================================================================================
Cleanup temporary files (install key, downloaded zip and rpm files) and packages installed by script...
Please make sure that you delete this script /tmp/deployMgmtAgent.sh or store it in secure location.

==================================================================================================================
Verifying status of JMS installation...

Management Agent installation has been completed with 'Java Management service plugin (Service.plugin.jm)'
        JMS advanced features can be enabled on this instance.
Agent was successfully registered using key fleet-20240715-1601 (ocid1.managementagentinstallkey.oc1.iad.amaaaaaaiirc77aa5umxctkvrhnydu75sympvg2rw6eklsh6i7fqfmx7guvq).
Instance has been assigned to JMS fleet fleet-20240715-1601 (ocid1.jmsfleet.oc1.iad.amaaaaaaiirc77aalq2lrhdn4s52co4h3jdlavlxijxnzvatyb5bygst5p3a).

A copy of this installation log can be found at /var/log/oracle/JMSInstallScript/JMSInstallScriptLogs-02Aug2024-151917-4652.log

```

202４年７月時点でのInstallation ScriptのサポートOSは下記。（＃）
https://docs.oracle.com/en-us/iaas/jms/doc/system-requirements.html#GUID-9C3D3785-5BCC-4F3F-AD38-B3DDB47472A5
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/dcff6be9-c87d-8273-716e-b2907fedf72d

また、management agentの確認コマンドはこちら。
```
root@ubnntu20-instance-20240802-1645:/home/opc# sudo systemctl status mgmt_agent
● mgmt_agent.service - mgmt_agent
     Loaded: loaded (/etc/systemd/system/mgmt_agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-08-02 15:22:56 UTC; 15min ago
```

もし、起動していないなら、スタートさせる。
```
root@ubnntu20-instance-20240802-1645:/home/opc# sudo systemctl start mgmt_agent
```

因みに、JMS Agentを止める時はこちら。
```
sudo systemctl stop mgmt_agent
```

起動したら、Control+C で抜ける。（Mac M1の場合）

上のコマンドを走らせた時に、「jqが見つからない。」と言う下記の様なエラーが出る事がある。
この場合は、jqをインストールしましょう！
jqのインストールには、下記の２スッテプ（updateしてから、jqインストール）が必要。

```
sudo apt -y update
sudo apt -y install jq
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/6020fd4b-da0e-e2fb-1789-2eb238ca74d8.png)

４. モニター／監視
FleetをOCI上で確認する手順。まず、”Observability & Management”から”Fleet”を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/3cd5eac8-8282-a6ac-3c80-46512c4c734e.png)

下記の例では、３つのFleetが存在。モニターしたいインスタンスをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/0f77fd30-4a3b-01c0-fe1d-45812652d92b.png)
Oracle JDK８とJDK19が、仮想インスタンスで起動している事が確認可能。（但し、反映まで、２０~30分のタイムラグがある。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2634867/52b6c271-1b00-2d59-c210-fffc6318d651.png)
尚、有料モデルにVersion-upすると、この画面から、JDKをアンイストールしたり、新たにインストールする事が可能となります。

END


（＃）　尚、Installation Scriptが対応していないOSで、".shファイル"を走らせると下記の様なエラーが出る。

インストールコマンドは下記。
```
sudo bash ./sudo bash JMS_fleet-20230227-1320_linux.sh 
```


```
$ sudo bash ./JMS_fleet-20230227-1320_linux.sh 
Setup Java Management Service (script JMS_fleet-20230227-1320_linux.sh, version 6.0)
Tue Mar  7 03:45:29 UTC 2023
Detected CentOS linux distribution (version 7)
Forcing Management Agent installation for CentOS linux distribution
Script was forced to install Management Agent
===============================================================================================================
Check for the prerequisite software and install missing packages
Found /bin/java executable in PATH
JDK path is /usr/lib/jvm/jdk1.8.0_361/bin/java
===============================================================================================================
Download and configure Management Agent
Download Management Agent from https://objectstorage.us-phoenix-1.oraclecloud.com/n/idtskf8cjzhp/b/agent_images/o/Linux-x86_64/latest/oracle.mgmt_agent.rpm
Script JMS_fleet-20230227-1320_linux.sh failed to download Management Agent rpm file.
Using /tmp/jms-mgmt_agent.rpm to install Management Agent.
error: open of {code:BucketNotFound,message:Either the bucket named 'agent_images' does not exist in the namespace 'idtskf8cjzhp' or you are not authorized to access it} failed: No such file or directory
Script JMS_fleet-20230227-1320_linux.sh failed to detect version of Management Agent. Please, check file /tmp/jms-mgmt_agent.rpm is valid.
Please refer troubleshooting guide https://docs.oracle.com/en-us/iaas/jms/doc/troubleshooting.html for more details.
[yojironishikawa@centos7x-intelx64 jvm]$ 
```