LoginSignup
1
0

More than 1 year has passed since last update.

Azure Application Insights のログを集める

Last updated at Posted at 2022-07-22

はじめに

Log Analytics の Basic Logs を検証するにあたり、Application Insights のログがとりあえず必要になりました。今回は以下のspring boot 公式のサンプルアプリを実行し、そのログを Application Insights に送ります。
https://github.com/spring-guides/gs-spring-boot

この記事はアプリ開発の経験はないがアプリのログをとにかく確認したい人向けのものになります。ゴールは Application Insights のログを取得することです (;^_^A

アプリ開発したことない人向けなので何も設定されていない前提で一からやる手順を記載しています。
そのため、今回利用するサンプルアプリは maven を使用してビルドすることから、maven をインストールしたり、maven は Java ツールのため Java を事前にインストールしたりします。

Java Deployment Kit (JDK) のインストール

Java ツールである maven の仕様に向け、JDK をインストールします。
既存の環境に JDK が入っているかはコマンドプロンプトを立ち上げ、以下のコマンドを入力します

javac -version

以下の応答が返ってきた場合、JDK が入っていないためインストールが必要です。
image.png

以下サイトよりインストーラーをダウンロードします。
※Oracle プロファイルの作成が必要です。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ダウンロードした「jdk-8u341-windows-x64.exe」を実行します。
image.png

[次へ] をクリックします。
image.png

必要に応じてインストール先を変更し、[次(N)>]をクリックします。
image.png

インストールを待ちます。
image.png

新しくポップアップウィンドウが出てきます。
コピー先フォルダを必要に応じて指定し、[次(N)>]をクリックします。
image.png

[閉じる]をクリックします。
image.png

参考資料として以下が指摘されます。
https://docs.oracle.com/javase/8/docs/

JDKをインストールしたら、環境変数にて JDK に関する設定を行い、Java が正しく動作するようにします。
環境変数には「ユーザー環境変数」と「システム環境変数」の2種類がありますが、JDKの動作のためには「システム環境変数」を設定します。
設定・追加する環境変数は「Path」と「JAVA_HOME」の2つです。

今回の端末は Windwos 10 のため、以下の順に推移します。
[スタートメニュー] - [設定] - [システム] - [システムの詳細設定]

[システムのプロパティ]が立ち上がるので、[環境変数] をクリックします。
image.png

[システム環境変数] にて [Path] を選択し、[編集] をクリックします。
image.png

[新規] ボタンを押して、以下のパスを入力します。バージョンによってフォルダ名は異なるためご注意ください。

C:\Program Files\Java\jdk1.8.0_341\bin

続いて「JAVA_HOME」の環境変数を作成します。
[システム環境変数] にて [新規(W)..] をクリックし、以下の内容を入力し [OK] をクリックします。
変数名 : JAVA_HOME
変数値 : C:\Program Files\Java\jdk1.8.0_341
image.png

ここまで設定が完了したらコマンドプロンプトを立ち上げて、以下のコマンドを実行します。

java -version
//または
javac -version

設定が入っていれば、下記の応答が返ってきます。
image.png

参考:
https://eng-entrance.com/java-install-jdk-windows#JDK-3

maven のインストール

以下サイトにアクセスします。

「Binary zip archive」をダウンロードします。
Mavenを自分でビルドする場合のみ、ソースアーカイブを使用してください。
image.png

「apache-maven-3.8.6-bin.zip」をすべて展開します。
回答したファイルである「apache-maven-3.8.6」を「C:\Program Files」配下に移動します。

JDK の際と同様に環境変数を指定します。
[スタートメニュー] - [設定] - [システム] - [システムの詳細設定]の順に遷移します。
[システムのプロパティ]が立ち上がるので、[環境変数] をクリックします。
[システム環境変数] にて [Path] を選択し、[編集] をクリックします。
image.png

[新規] ボタンを押して、以下のパスを入力します。バージョンによってフォルダ名は異なるためご注意ください。

C:\Program Files\apache-maven-3.8.6\bin

設定が完了したら、コマンドプロンプトを立ち上げ低下のコマンドを入力・実行します。

mvn -v
//または
mvn --version

以下の応答が返ってきたら設定は無事完了しています。
image.png

参考:
https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
https://maven.apache.org/install.html

spring boot サンプル アプリケーションを実行する

spring boot の以下リポジトリから git clone をします。
https://github.com/spring-guides/gs-spring-boot.git

私は Visual Studio Code を立ち上げて、「Clone Git Repositry..」を選択しました。
image.png

[Clone from URL...] を選択すると、自分のローカルディレクトリにリポジトリの中身をコピーできます。
image.png

私は今回 Cディレクトリ直下に「gs-spring-boot」を配置しました。

おそらく以下のサイトからダウンロードしても同様のことができると思います。
https://start.spring.io/

リポジトリからコピーしたフォルダの「initial」配下に移動し、「initial」ディレクトリ配下にあるアプリ本体をmavenでビルドします。以下コマンドをコマンドプロンプトにて実行します。

cd C:\gs-spring-boot\initial
mvn clean package

このようなビルド画面が続きます。
image.png

完了すると以下の表示が確認できます。
image.png

「spring-boot-initial-0.0.1-SNAPSHOT.jar」によってアプリの稼働確認をします。
image.png

以下コマンドを実行します。

cd C:\gs-spring-boot\initial\target
java -jar spring-boot-0.0.1-SNAPSHOT.jar

成功すると以下のようにブート画面が確認できます。
image.png

http://[::1]:8080 にアクセスして、ブラウザに「Greetings from Spring Boot!」と表示されればアプリのビルドは成功となります。
image.png

8080 を使用しているプロセスがあると失敗するため、まず 8080 ポートを使用しているプロセスを以下コマンドプロンプトを使用して特定します。

netstat -ano | findstr 8080

確認したプロセス ID (PID) によるタスクを kill します。

taskkill /F /pid <任意の PID>

サンプルアプリケーションの実行は以上となります。

次に Application Insights を作成し、このサンプルアプリケーションに Application Insights SDK を使ってテレメトリを収集してみます。

Application Insights の作成

Azure Portal にアクセスします。
Azure サブスクリプションがすでにある前提で話は進んでいきますので、ご注意ください🙇

はじめに Application Insights のログを格納基盤として、Log Analytics ワークスペースを作成します。
Log Analytics については以下の記事の冒頭部分が参考になりますと幸いです。

検索バーにて「Log Analytics ワークスペース」を検索し、クリックします。
image.png

[+作成]をクリックしたのちに以下項目を選択または新規作成し、[作成]をクリックします。
サブスクリプション: <任意のサブスクリプションを選択>
リソース グループ: <テナント内で一意なリソースグループ名>
名前: <Log Analytics ワークスペースの名前>
地域: <リソースグループと同じ地域の選択を推奨>
image.png

Log Analytics ワークスペースが作成されたことを確認し、終了します。

次に、検索バーにて「Application Insights」を検索し、クリックします。
image.png

[+作成]をクリックしたのちに以下項目を選択または新規作成し、[作成]をクリックします。
サブスクリプション: <任意のサブスクリプションを選択>
リソース グループ: <テナント内で一意なリソースグループ名>
名前: <Application Insightsの名前>
地域: <リソースグループと同じ地域の選択を推奨>
リソースモード: ワークスペースベース
Log Analytics ワークスペース: <先ほど作成した Log Analytics ワークスペースを指定>
image.png

リソースの作成が完了しました。
image.png

Application Insights とアプリの接続

以下のサイトから Application Insights の SDK をダウンロードします。
https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-in-process-agent
ダウンロードした SDK およびファイル「applicationinsights-agent-3.3.0.jar」をgs-spring-boot\initial\lib ディレクトリに配置します。

Application Insights のリソースにアクセスします。
[概要]ペインの[接続文字列]をコピーします。
image.png

接続文字列はアプリケーションのテレメトリ データの送信先を定義する文字列です。

「applicationinsights.json」という名前のファイルを「applicationinsights-agent-3.3.0.jar」と同じディレクトリに配置します。このファイルは以下テキストを含みます。

{
  "connectionString": "<コピーした接続文字列>"
}

「applicationinsights-agent-3.3.0.jar」を Java エージェントとして指定して、コマンドプロンプトから以下のコマンドを実行することで Java アプリケーションを起動します。

cd C:\gs-spring-boot\initial\lib
java -javaagent:applicationinsights-agent-3.0.3.jar -jar target/spring-boot-0.0.1-SNAPSHOT.jar

この後、何度か http://[::1]:8080 にアクセスしてください。
ここまでで、Application Insights の作成とアプリケーション ログの収集構成が完了となります。

Application Insights のログ確認

Azure Portal にアクセスします。
Application Insights のリソースにアクセスします。
[概要]ペインにて表示されているダッシュボードより、ログが収集できていることを確認します。
image.png

[監視|ログ] ペインに遷移します。
以下の非常に簡易的な KQL を入力し、[実行]をクリックします。

requests
| take 5

内容は「request」というデータテーブルからイベントを 5 件取得しています。
request テーブルにはアプリケーションへのアクセス ログが収集されます。

結果は以下の通りです。
image.png

無事ログが採取できていたため、本検証は以上とします。

参考:
SIOS TECH.LAB 様の以下記事を参考にさせていただきました。
https://tech-lab.sios.jp/archives/23948#i-5

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0