Windowsサービスとスタンドアロンアプリケーションの.NETエージェントの構成
.NET エージェントは、IIS アプリケーションのみを自動的にインストゥルメント化します。ただし、以下の手順に従って、Windows サービスやスタンドアロン .NET アプリケーションをインストゥルメント化するように .NET エージェントを手動で構成できます。
Web アプリケーションが処理中のハンドラとして実行するように設定されていない場合、アプリケーションは または として実行することがあります。
はじめる前に
Windows サービスとスタンドアロン .NET アプリケーションをインストゥルメント化するには、.NET エージェント構成ファイル config.xml を編集します。
開始する前に、インストゥルメント化するサービスまたはアプリケーションがネイティブアプリケーションや別のタイプのアプリケーションではなく、.NETアプリケーションであることを確認します。コマンドラインから次のように入力します。
tasklist /m "mscor*"
出力には、mscor * で始まる dll を使用しているプロセスがリストされます。
Windows サービスとスタンドアロン アプリケーションをホストするサーバーで、以前 IIS アプリケーションのインストゥルメント化を行っている場合、サーバーにはすでに config.xml ファイルがあるはずです。
- Windows 用 .NET エージェントのインストール。
- Splunk AppDynamicsエージェント構成ユーティリティを実行します。
IIS アプリケーションをインストゥルメント化しない場合は、階層の手動命名方式を選択して、IIS アプリケーションの階層を割り当てる手順を省略します。これにより IIS アプリケーションのインストルメンテーションが無効化され、対象の Windows サービスまたはスタンドアロン アプリケーションのみをインストゥルメント化できるようになります。
ユーティリティにより次の構成タスクが実行されます。
- ログディレクトリの場所を変更し、権限を割り当てます。
- コントローラへの接続を構成およびテストします。
-
エージェント用ビジネスアプリケーションを設定します。
.NETエージェントの手動構成
.NET エージェントのコントローラプロパティを構成すると、スタンドアロン アプリケーション エレメントを config.xml に追加することで Windows サービスまたはスタンドアロン アプリケーションのインストゥルメント化が実行されます。
構成ファイルのサンプル
次の config.xml 例は、Windows サービスおよびスタンドアロン アプリケーションのインストルメンテーションを示しています。
<?xml version="1.0" encoding="utf-8"?>
<appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<controller host="mycontroller.mycompany.com" port="8090" ssl="false">
<application name="My Business Application" />
</controller>
<machine-agent />
<app-agents>
<IIS>
<applications />
</IIS>
<standalone-applications>
<standalone-application executable="MyWindowsService.exe" command-line="-x">
<tier name="Windows Service Tier" />
</standalone-application>
<standalone-application executable="MyStandaloneApp.exe">
<tier name="Standalone Tier" />
</standalone-application>
</standalone-applications>
</app-agents>
</appdynamics-agent>
.NET Core アプリケーションが実行可能ファイルとしてパブリッシュされている場合は、実行可能ファイル名とコマンドライン(オプション)を指定することによって、.NET Framework アプリケーションと同様に設定できます。ただし、アプリケーションがライブラリとしてパブリッシュされている場合は、dotnet.exe ツールを呼び出すことによって開始されます。
次の設定例は、dotnet.exe によってホストされている .NET Core スタンドアロン アプリケーションをインストゥルメント化する方法を示しています。
<?xml version="1.0" encoding="utf-8"?>
<appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<controller host="mycontroller.mycompany.com" port="8090" ssl="false">
<application name="My Business Application" />
</controller>
<machine-agent />
<app-agents>
<IIS>
<applications />
</IIS>
<standalone-applications>
<standalone-application executable="dotnet.exe" command-line="MyApp.dll"> //command-line option instructs the agent to monitor only "MyApp"
<tier name="DotNet Core Tier" />
</standalone-application>
</standalone-applications>
</app-agents>
</appdynamics-agent>
トラブルシューティング
断続的な Windows サービスのインストルメンテーションの消失
Windows サービスをインストゥルメント化するときに、インストゥルメント化されたサービスが AppDynamics.Agent.Coordinator の前に初期化される場合があります。
次の手順では、Windows 2008 および Windows 2012 以降でこの問題を解決する方法について説明します。
Windows 2008
Windows 2008Windows 2008 を使用している場合は、AppDynamics サポートにお問い合わせください。
Windows 2012 以降
Windows >= 2012インストゥルメント化された Windows サービスの前に AppDynamics.Agent.Coordinator サービスが初期化されるようにするには、レジストリを変更する必要があります。レジストリキー @HKLM:\SYSTEM\CurrentControlSet\Control\EarlyStartServices(早期開始サービスのリスト)で、AppDynamics.Agent.Coordinator_service を追加します。