AppDynamicsのインストール入門の3回目の記事になります。今回は.NET Coreアプリケーションの監視のためのAppDynamics .NET Agentのインストールについてです。(前々回はJavaアプリケーションの監視、前回は.NET Frameworkアプリケーションの監視でした)
今回のサンプルとして使う.NET Coreアプリケーションは、マイクロソフトのチュートリアルとして使われている以下のURLのASP .NET Coreアプリケーション(Razor)を使います。
https://docs.microsoft.com/ja-jp/aspnet/core/getting-started/?view=aspnetcore-3.1&tabs=windows
Windows以外にもLinuxなどでも動かすことができるのが.NET Coreの魅力ですね! 両方の場合のエージェントのインストール手順をご紹介したいと思います。
前提条件
- AppDynamicsのコントローラ(管理サーバ)にログインできる状態であること。(お持ちでない場合、Free Trial サイトからすぐに期間限定の環境を入手できます)
- .NET Core 3.1のSDKが自身のマシンにインストールされていること。新たにインストールする場合は以下からダウンロードください。
https://dotnet.microsoft.com/download/dotnet-core/3.1
注:古い.NET Coreバージョンでも動作しますが、少し挙動が異なる場合がありますのでご注意ください。
インストール・ステップ (Windows)
手順の参考となるインストール・ドキュメントはこちら
- AppDynamics .NET AgentがWindowsマシンにインストールされたところから始めます。インストールは前回のブログAppDynamicsインストール [.NET Agent編]をご参照ください。※AppDynamicsのバージョン20.3から、従来の.NET Frameworkの監視と同じインストーラを使って.NET Coreも監視できるようになりました!注意:執筆時点(2020/4/30)で最新の.NET Coreバージョン 3.1 を監視するにはAppDynamics .NET Agentバージョン20.3以降が必要です。
- 冒頭で紹介したマイクロソフトのASP .NET Coreのチュートリアルを読んで、ASP.NET Coreアプリケーション(Razor)を動作させてください。手順は非常に簡単で、以下の4つのコマンドを実行するだけです。
dotnet new webapp -o aspnetcoreapp dotnet dev-certs https --trust cd aspnetcoreapp dotnet watch run
ブラウザでhttp://localhost:5001にアクセスすると以下のようなRazorアプリケーションの画面が見えます。
- .NET Agentのconfig.xml構成ファイルに対して監視対象のexe名を指定します。(青字の個所を追加してください)補足:このRazorアプリケーションがIISのプロセスとして稼働するIn-process hosting modelなら、この設定は不要です(IIS automaticのxmlの設定で自動監視されます)。今回はOut-of-process hosting modelでの動作となりますので、exe名の指定が必要です。(両者の違いについてにはこちら)
C:¥ProgramData¥AppDynamics¥DotNetAgent¥Config¥config.xml <?xml version="1.0" encoding="utf-8"?> <appdynamics-agent xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <controller host="xxxx.saas.appdynamics.com" port="443" ssl="true" enable_tls12="true"> <application name="MyTestApp" /> <account name="xxxx" password="xxxxxxxx" /> </controller> <machine-agent /> <app-agents> <IIS> <automatic /> </IIS> <standalone-applications> <standalone-application executable="aspnetcoreapp.exe"> <tier name="RAZOR"/> </standalone-application> <!-- For .NET Core 2.0 app <standalone-application executable="dotnet.exe" command-line="aspnetcoreapp.dll"> <tier name="RAZOR"/> </standalone-application> --> </standalone-applications> </app-agents> </appdynamics-agent>
- 行ったconfig.xmlへの変更を反映するために以下の2つの作業を行います。
- AppDynamics.Agent.Coordinatorの再起動
- 監視対象アプリケーションの再起動
再起動時に[Registered app server agent with Node ID…] が表示されていれば、.NET Agentでの監視が行われている証拠です。
- AppDynamics.Agent.Coordinatorの再起動
- ブラウザでRazorアプリケーションを何回か操作すれば、AppDynamicsコントローラでそのトランザクションが可視化されます。
以上
インストール・ステップ (Linux)
Linuxの場合は以下のドキュメントに記載されたDockerコンテナでの手順で簡単に試すことができます。こちらに沿って実施したいと思います。
https://docs.appdynamics.com/display/PRO45/Install+the+.NET+Agent+for+Linux#Installthe.NETAgentforLinux-binaries
- AppDynamicsのダウンロードサイトより、 .NET Agent – 64-bit linux (zip) の名前のインストーラをダウンロードしてください。
- ドキュメントに書いてある通りの以下の内容のDockerfileを作成します。青字のところがエージェントのインストールに該当するところで、赤字がエージェントを有効化するために必要なCORECLRプロファイラの環境変数の設定です。残りはコントローラへの接続情報を環境変数として設定してます。接続情報は自身の環境値に置き換えて設定してください。
------------------------------------------------------- FROM mcr.microsoft.com/dotnet/core/samples:aspnetapp ####### Requirements # Have the following files alongside the Dockerfile: # * libappdprofiler.so # * AppDynamics.Agent.netstandard.dll ####### Instructions # Building image: docker build --rm -t appdynamicstest:latest . # Running container: docker run --rm -p 8000:80 appdynamicstest:latest # Open the application using http://localhost:8000/ # Copy agent binaries to the image from current folder RUN mkdir -p /opt/appdynamics/dotnet ADD libappdprofiler.so /opt/appdynamics/dotnet/ ADD AppDynamics.Agent.netstandard.dll /opt/appdynamics/dotnet/ # Mandatory settings required to attach the agent to the .NET application ENV CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \ CORECLR_ENABLE_PROFILING=1 \ CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so # Configure connection to the controller ENV APPDYNAMICS_CONTROLLER_HOST_NAME=controller.saas.appdynamics.com ENV APPDYNAMICS_CONTROLLER_PORT=443 ENV APPDYNAMICS_CONTROLLER_SSL_ENABLED=true ENV APPDYNAMICS_AGENT_ACCOUNT_NAME=account-name ENV APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=access-key # Configure application identity in AppDynamics ENV APPDYNAMICS_AGENT_APPLICATION_NAME="My Application" ENV APPDYNAMICS_AGENT_TIER_NAME="Sample Tier" ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance" # It is possible to configure .NET agent using AppDynamicsConfig.json configuration file instead of environment variables # ADD AppDynamicsConfig.json /opt/appdynamics/dotnet/ -------------------------------------------------------
- ダウンロードした.NET Agentのzipファイルを Dockerfileと同じディレクトリに展開してください。
- 以下のコマンドでコンテナを起動します。profiler(Info): .NET Agent (20.4.0) starts successfullyという行が.NET Agentで監視できている証拠です。
docker run --rm -p 8000:80 appdynamicstest:latest
- ブラウザでhttp://localhost:8000にアクセスして、コンテナ上で起動したASP .NET Coreアプリケーションにアクセスします。
- Windowsと同じように、Linuxでの.NET Coreアプリケーションが監視できました。
以上
.NET Coreも、従来の.NET Frameworkアプリケーションと同じように簡単にAppDynamicsで監視できることがわかっていただけたかと思います。
ぜひお試しください。
App Dynamics製品概要、無料トライアルはこちらから
https://www.cisco.com/c/m/ja_jp/appdynamics/product.html