Oracle Management CloudのApplication Performance Monitoringをちょっと試してみたいと思っても、実際にWEBアプリケーションの動作する環境を準備しなければいけないのでなかなか面倒です。
ここではJAVAのWEBアプリケーションと必要な環境の構築をDockerを使い、誰でも簡単にAPMを試せる環境を極力簡単に構築する方法をご紹介します。
作成するWebアプリケーション
MySQLにJDBCアクセスするダミーのWEBサンプルアプリケーション。レスポンスが遅くなるような仕掛けあり。
Dockerでの構築イメージ
ここではOracle CloudのAlways FreeにDockerをインストールして、ApacheとMySQLのコンテナを起動します。そしてサンプルのWEBアプリケーションをOMCのAPMで監視するという構成を作成します。OCIのLinuxのVMインスタンスであれば、手順通りのCopy&Pasteで実施できるようにしています。
##Always FreeのVMインスタンスを用意
1. Docker&Docker Composeのインストール
$ sudo yum install docker-engine
$ sudo gpasswd -a $USER docker
$ docker -v
Docker version 19.03.1-ol, build ead9442
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
※ここで今接続しているターミナルを終了して、もう一度新しくターミナルを開き直す
$ sudo systemctl start docker.service
$ sudo systemctl enable docker.service
2.Webアプリのソースをダウンロード&解凍
$ pwd
/home/opc
$ wget https://github.com/westan24/omcapp/archive/master.zip
$ unzip master.zip
$ cd omcapp-master
$ unzip omcapp.zip
$ ls
apmdemo2.war Dockerfile my.cnf person_db_mysql.sql
docker-compose.yml initial.sql omcapp.zip README.md
3.Docker MySQLに必要なフォルダの作成
$ sudo rm -rf ./db
$ sudo mkdir ./db
$ sudo mkdir ./db/mysql_data
$ sudo mkdir ./db/mysql_init/
$ sudo cp initial.sql db/mysql_init/
$ sudo cp person_db_mysql.sql db/mysql_init/
##最新のAPMエージェントをOMCからダウンロードする
Dockerコンテナの作成及び起動
ダウンロードした1.4x_APM_226.zipとregistrationKey.txtの2つのファイルを/home/opc/omcapp-masterにコピーする
$ ls
1.46_APM_226.zip Dockerfile omcapp.zip registrationKey.txt
apmdemo2.war initial.sql person_db_mysql.sql
docker-compose.yml my.cnf README.md
※APMエージェント名をリネーム (APMエージェント名はバージョンごとにインクリメントされるので)
$ mv 1.46_APM_226.zip 1.45_APM_226.zip
$ docker-compose up -d
~色々構築中メッセージが流れる~
Creating mysql ... done
Creating tomcat ... done
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
tomcat catalina.sh run Up 0.0.0.0:8080->8080/tcp
※両方のコンテナがUPされていればOK
-
ブラウザで以下のアドレスにアクセス
- http://computeのPublicIP:8080/apmdemo2/menu
- アクセスできない場合は、8080がOCIのセキュリティリストでオープンしてるか確認
-
サンプルのWebアプリケーション
このWebアプリは途中エラーが発生することもあります。あまり細かいことは気にせずに・・・。
(Log Analyticsのログ分析とかで使えるようにしているので)
実際にAPMでWEBアプリケーションのパフォーマンスを見る
-
ユーザのブラウザ操作履歴の情報を見るに、エンドユーザー・モニタリングの有効化が必要です
- 設定方法は、OMC APM Agentのインストール - .NET編 -を参照して下さい
- https://qiita.com/western24/items/855cee9d2c0a93b8cf79
いかがだったでしょうか?
OMCのInfrastructure MonitoringでDockerの監視やLog AnalyticsでTomcatとMySQLのログを分析するなどの動作検証にもそのまま使えるかと思います。Node.jsのバージョンもまたの機会にご紹介したいと思います。
Oracle Management Cloud関連の情報はこちら