Cisco Japan Blog

AppDynamicsインストール入門 [ .NET Agent編 ~ .NET Coreの監視 ]

1 min read



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 サイトpopup_iconからすぐに期間限定の環境を入手できます)
  • .NET Core 3.1のSDKが自身のマシンにインストールされていること。新たにインストールする場合は以下からダウンロードください。
    https://dotnet.microsoft.com/download/dotnet-core/3.1popup_icon
    注:古い.NET Coreバージョンでも動作しますが、少し挙動が異なる場合がありますのでご注意ください。

インストール・ステップ (Windows)

手順の参考となるインストール・ドキュメントはこちら

  1. 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以降が必要です。
    
    
  2. 冒頭で紹介したマイクロソフトの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アプリケーションの画面が見えます。
      

  3. .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>
    
    
  4.  行ったconfig.xmlへの変更を反映するために以下の2つの作業を行います。
    1. AppDynamics.Agent.Coordinatorの再起動
    2. 監視対象アプリケーションの再起動 
      再起動時に[Registered app server agent with Node ID…] が表示されていれば、.NET Agentでの監視が行われている証拠です。

      
      
  5. ブラウザでRazorアプリケーションを何回か操作すれば、AppDynamicsコントローラでそのトランザクションが可視化されます。

以上


インストール・ステップ (Linux)

Linuxの場合は以下のドキュメントに記載されたDockerコンテナでの手順で簡単に試すことができます。こちらに沿って実施したいと思います。

https://docs.appdynamics.com/display/PRO45/Install+the+.NET+Agent+for+Linux#Installthe.NETAgentforLinux-binaries

  1. AppDynamicsのダウンロードサイトpopup_iconより、 .NET Agent – 64-bit linux (zip) の名前のインストーラをダウンロードしてください。

    
    
  2. ドキュメントに書いてある通りの以下の内容の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/
    -------------------------------------------------------
    
    
  3.  ダウンロードした.NET Agentのzipファイルを Dockerfileと同じディレクトリに展開してください。
    
    
  4. 以下のコマンドでコンテナを起動します。profiler(Info): .NET Agent (20.4.0) starts successfullyという行が.NET Agentで監視できている証拠です。
    docker run --rm -p 8000:80 appdynamicstest:latest 
    
    
  5. ブラウザでhttp://localhost:8000にアクセスして、コンテナ上で起動したASP .NET Coreアプリケーションにアクセスします。
  6. Windowsと同じように、Linuxでの.NET Coreアプリケーションが監視できました。

以上


.NET Coreも、従来の.NET Frameworkアプリケーションと同じように簡単にAppDynamicsで監視できることがわかっていただけたかと思います。

ぜひお試しください。

App Dynamics製品概要、無料トライアルはこちらから
https://www.cisco.com/c/m/ja_jp/appdynamics/product.html

 

Authors

関屋 信彦

セールスエンジニア

AppDynamics

コメントを書く