Download PDF
Download page VMware Tanzu 用アプリケーション パフォーマンス モニタリングのワークフロー.
VMware Tanzu 用アプリケーション パフォーマンス モニタリングのワークフロー
このトピックでは、Splunk AppDynamics APM タイルによって公開されたマーケットプレイスサービスを使用して、Splunk AppDynamics エージェントで VMware Tanzu アプリケーションをインストゥルメント化するために必要な手順について説明します。Java ビルドパック以外では、マルチビルドパック アプローチが使用されます。これには、言語固有のビルドパックに加えて、タイルによって公開された Splunk AppDynamics 拡張ビルドパックの appdbuildpack が必要です。Java ビルドパックには Splunk AppDynamics エージェントのサポートが直接統合されているため、Splunk AppDynamics ビルドパックを使用する必要はありません。
ご使用になる前に
- Pivotal Network アカウントがない場合は作成します。
- Cloud Foundry Command Line Interface(cf CLI)をインストールします。「Installing the cf CLI」を参照してください。
このドキュメントには、Cloud Foundry™ のドキュメントへの参照が含まれています。Splunk AppDynamics はいかなる権利も所有しておらず、そのようなサードパーティのドキュメントの正確性または完全性について責任を負いません。
Splunk AppDynamics サービスインスタンスの作成
cf CLI またはコマンド プロンプト ウィンドウを開きます。
Pivotal API のエンドポイントとバージョンを特定します。次のコマンドを入力します。
$ cf api
次の出力が表示されます。api endpoint: https<scan>:</scan>//api.my.pivotal.io api version: 2.103.0CODEPivotal エンドポイントにログインします。
cf loginプロンプトが表示されたら、電子メールアドレスと Pivotal パスワードを入力します。
cf 環境に
appdynamicsサービスがあることを確認します。$ cf marketplace -s appdynamics service plan description free or paid pcf-appd pcf-appd free pcf-appd-test pcf-appd-test freeCODEappdynamicsサービスのサービスインスタンスと選択したプランを作成します。$ cf create-service appdynamics pcf-appd appd以下に示されているアプリケーションの対応する言語のワークフローに従います。
Splunk AppDynamics インストゥルメンテーションのワークフロー
サンプル アプリケーション
この GitHub リポジトリで、マルチビルドパック アプローチについて示すサンプルアプリケーションを見つけることができます。
.NET Framework アプリケーション(マルチビルドパック)
.Net Framework アプリケーションは、appdbuildpack ビルドパックが標準の hwc_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.ymlの次のセクションを編集します。buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをdotnetに設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-net memory: 2G buildpacks: - appdbuildpack - hwc_buildpack stack: windows2016 env: APPD_AGENT: dotnet APPDYNAMICS_AGENT_APPLICATION_NAME: my-cf-net-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-app services: - appdCODEcf pushコマンドを使用してアプリケーションをプッシュします。$ cf pushCODE
詳細設定
appdbuildpack では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL および APPD_CONF_HTTP_URL 環境変数が用意されています。詳細については、Cisco AppDynamics 拡張ビルドパックCisco AppDynamics 拡張ビルドパックのドキュメントを参照してください。
.NET Core for Linux アプリケーション(マルチビルドパック)
.Net Core アプリケーションは、appdbuildpack ビルドパックが標準の dotnet_core_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.ymlの次のセクションを編集します。buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをdotnet-linuxに設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション環境変数
APPD_AGENT_HTTP_URLを、Splunk AppDynamics .NET Agent for Linux がホストされているカスタム http URL に設定します。これは、このエージェントが現在 NuGet で使用できないため必要です。詳細については、「Cisco AppDynamics 拡張ビルドパック」を参照してください。次の内容を使用して、
${APPD_CONF_HTTP_URL}/dotnet-linux/AppDynamicsConfig.jsonの場所でエージェント構成ファイルAppDynamicsConfig.jsonがホストされているカスタム URL にAPPD_CONF_HTTP_URLを設定します。{ "feature": [ "FULL_AGENT" ], "log": [ { "outputtype": "console" } ] }CODEアプリケーション マニフェストのサービスセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。
---- applications: - name: cf-net-linux memory: 2G buildpacks: - appdbuildpack - dotnet_core_buildpack env: APPD_AGENT: dotnet-linux APPDYNAMICS_AGENT_APPLICATION_NAME: my-dotnet-linux-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-linux APPD_AGENT_HTTP_URL: http://CUSTOM_REPO/AppDynamics-DotNetCore-linux-x64-VERSION.zip APPD_CONF_HTTP_URL: http://CUSTOM_REPO services: - appdCODEcf pushコマンドを使用してアプリケーションをプッシュします。$ cf pushCODE
詳細設定
appdbuildpack では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL および APPD_CONF_HTTP_URL 環境変数が用意されています。詳細については、Cisco AppDynamics マルチビルドパックのドキュメントを参照してください。
.NET Core Windows アプリケーション(マルチビルドパック)
Windows 用 .Net Core アプリケーションは、appdbuildpack ビルドパックが標準の binary_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.ymlの次のセクションを編集します。buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをdotnet-windowsに設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-net-windows random-route: true memory: 512M path: app.zip command: dotnetHelloWorld.exe stack: windows2016 buildpacks: - appdbuildpack - binary_buildpack env: APPD_AGENT: dotnet-windows APPDYNAMICS_AGENT_APPLICATION_NAME: my-dotnet-windows-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-windows DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true services: - appdCODEcf pushコマンドを使用してアプリケーションをプッシュします。cf pushCODE
詳細設定
appdbuildpack では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL および APPD_CONF_HTTP_URL 環境変数が用意されています。詳細については、Cisco AppDynamics マルチビルドパックのドキュメントを参照してください。
Python アプリケーション(マルチビルドパック)
Python アプリケーションは、appdbuildpack ビルドパックが標準の python_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.ymlの次のセクションを編集します。アプリケーション マニフェストの
buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをpythonに設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-python memory: 500M buildpacks: - appdbuildpack - python_buildpack env: APPD_AGENT: python APPD_APP_NAME: my-python-app APPD_TIER_NAME: cf-python services: - appdCODEアプリケーションをプッシュします。
$ cf pushCODE
詳細設定
appdbuildpack では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、APPD_CONF_HTTP_URL 環境変数が用意されています。詳細については、Cisco AppDynamics マルチビルドパックのドキュメントを参照してください。
GoLang アプリケーション(マルチビルドパック)
Go アプリケーションは、appdbuildpack ビルドパックが標準の go_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
Splunk AppDynamics では、このようなアプリケーションをインストゥルメント化するための SDK が用意されています。SDK API を介して Go エージェントを起動するために必要な設定は、環境変数を介して使用されます。
アプリケーションの
manifest.ymlの次のセクションを編集します。アプリケーション マニフェストの
buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをgolangに設定します。LD_LIBRARY_PATH環境変数を、libappdynamics.so が含まれているフォルダに設定します。os.Getenv("...")を使用して、アプリケーションによって読み取られる内容に基づいて、アプリケーションと階層の環境変数を設定します。アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-go memory: 500M buildpacks: - appdbuildpack - go_buildpack env: APPD_AGENT: golang APPD_APPLICATION_NAME: my-go-app APPD_TIER_NAME: go-tier LD_LIBRARY_PATH: /app/vendor/appdynamics/lib services: - appdCODE以下のスニペットをコピーして貼り付けて、Go エージェントを初期化します。
package main import ( ... appd "appdynamics" ) ... cfg := appd.Config{} cfg.AppName = os.Getenv("APPD_APPLICATION_NAME") cfg.TierName = os.Getenv("APPD_TIER_NAME") cfg.NodeName = os.Getenv("APPD_NODE_NAME") cfg.NodeName = os.Getenv("APPD_NODE_NAME") + ":" + os.Getenv("CF_INSTANCE_INDEX") /* Controller Configuration */ cfg.Controller.Host = os.Getenv("APPD_CONTROLLER_HOST") port, err := strconv.ParseInt(os.Getenv("APPD_CONTROLLER_HOST"), 10, 16) if err != nil { return err } cfg.Controller.Port = uint16(port) cfg.Controller.Account = os.Getenv("APPD_ACCOUNT_NAME") cfg.Controller.AccessKey = os.Getenv("APPD_ACCOUNT_ACCESS_KEY") cfg.InitTimeoutMs = 1000 err = appd.InitSDK(&cfg) if err != nil { fmt.Println(err) } ...CODESplunk AppDynamics Golang エージェントを起動するために必要な設定は、環境変数
APPD_APPLICATION_NAME、APPD_TIER_NAME、APPD_NODE_NAME、APPD_CONTROLLER_HOST、APPD_ACCOUNT_NAME、APPD_ACCOUNT_ACCESS_KEYを介して使用されます。アプリケーションをプッシュします。
$ cf pushCODE
詳細設定
appdbuildpack では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、APPD_CONF_HTTP_URL 環境変数が用意されています。詳細については、Cisco AppDynamics マルチビルドパックのドキュメントを参照してください。
Java アプリケーション
Java アプリケーションは、標準の java_buildpack_offline ビルドパックを使用して Splunk AppDynamics によってインストゥルメント化されます。マルチビルドパック アプローチは Java ビルドパックでサポートされていないため、使用されません。
アプリケーションの
manifest.ymlの次のセクションを編集します。アプリケーションと階層の環境変数を設定します。
必要に応じて、
APPD_CONF_HTTP_URL環境変数を、詳細なエージェント構成ファイルがホストされている URL に設定します。詳細については、エージェントの設定の拡張に関するドキュメントを参照してください。また、log4j2.xml ファイルをオーバーライドしてエージェント出力を STDOUT にリダイレクトする方法の例については、サンプル アプリケーション リポジトリの cf-java-sample および cf-configuration-static アプリケーションを参照してください。必要に応じて、
APPD_CF_NODE_PREFIX環境変数を設定して、ビルドパックによって割り当てられたノード名の先頭に文字列を追加します。アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-java-app memory: 1G random-route: true path: build/libs/cf-java-sample-1.0.jar buildpacks: - java_buildpack_offline env: APPDYNAMICS_AGENT_APPLICATION_NAME: my-java-app APPDYNAMICS_AGENT_TIER_NAME: cf-java-app APPD_CONF_HTTP_URL: http://custom-http-server.com APPD_CF_NODE_PREFIX: my-node-prefix services: - appdCODEアプリケーションをプッシュします。
$ cf pushCODE
詳細設定
VMware Tanzu Java アプリケーションの Splunk AppDynamics インストゥルメンテーションは appdbuildpack を使用しないため、設定は java_buildpack によって直接管理されます。
標準の java_buildpack に関するドキュメントを参照してください。
Node.js アプリケーション(マルチビルドパック)
Node.js アプリケーションは、appdbuildpack ビルドパックが標準の nodejs_buildpack ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.ymlの次のセクションを編集します。buildpacksセクションにappdbuildpackを含めます。アプリケーション環境変数
APPD_AGENTをnodejsに設定します。アプリケーションと階層の環境変数を設定します。
必要に応じて、環境変数
APPDYNAMICS_LOGGER_OUTPUT_TYPEをconsoleに設定して、エージェントログをストリーミングします。必要に応じて、Node.js エージェントパッケージがホストされている内部リポジトリを指すように環境変数
APPD_CDN_BASE_URLを設定します。これにより、パブリックインターネットでホストされ、通常は VMware Tanzu 環境では使用できないデフォルトの Splunk AppDynamics リポジトリがオーバーライドされます。アプリケーション マニフェストの
servicesセクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。applications: - name: cf-node memory: 500M env: APPD_AGENT: nodejs APPDYNAMICS_AGENT_APPLICATION_NAME: my-nodejs-app APPDYNAMICS_AGENT_TIER_NAME: cf-nodejs APPDYNAMICS_LOGGER_OUTPUT_TYPE: console APPD_CDN_BASE_URL: http://internalrepo.com services: - appdCODE必要に応じて、エージェントを設定するための環境変数を指定します。サポートされている環境変数のリストを以下に示します。
環境変数 説明 APPDYNAMICS_AGENT_APPLICATION_NAME Splunk AppDynamics コントローラに報告されるアプリケーション名
APPDYNAMICS_AGENT_TIER_NAME Splunk AppDynamics コントローラに報告されるアプリケーションの階層名
APPD_AGENT_DEBUG エージェントのデバッグレベルのロギングを有効にするには、true に設定します。デフォルトはfalse。 APPD_AGENT_LIBAGENT エージェントのプロキシなしバージョンを制御します。デフォルトは true です。Node.js エージェントのプロキシバージョンを使用する場合は、false に設定します。 APPD_LOG_CONFIG エージェントのログ記録に関連する場所、レベル、およびその他の設定。「Node.js エージェントログ」を参照してください。 アプリケーションをプッシュします。
$ cf pushCODE
デフォルト設定の拡張
プロキシ設定の拡張
プロキシサーバーを使用している場合、コンシューマ アプリケーションは、VMware Tanzu で実行されているアプリケーションがプロキシサーバーと通信するための環境変数として、http_proxy または https_proxy を指定する必要があります。次の手順を実行します。
アプリケーションとコントローラの環境変数を設定します。
HTTP プロキシの場合:
cf set-env http_proxy http://user@password:myproxy....:8080/HTTPS プロキシの場合:
cf set-env https_proxy https://user@password:myproxy....:8080/
アプリケーションを再ステージングします。
cf restage <app-name>コントローラ Web UI にログインし、メトリックブラウザに移動して、アプリケーションが検出およびモニターされていることを確認します。
Splunk AppDynamics のユーザー提供サービスの使用
サービスブローカータイルを使用する上記の手順に加えて、オペレータは appdynamics という名前のユーザー提供サービスを使用して、Splunk AppDynamics でアプリケーションをインストゥルメント化することもできます。
JSON フィールドを指定して、以下の cf cups コマンドを使用します。
ユーザー提供サービスの名前は
appdynamicsにする必要があり、その JSON クレデンシャルには、account-access-key、account-name、host-name、port、およびssl-enabledフィールドが必要です。$ cf cups appdynamics -p '{"account-access-key":"acce$$key", "account-name":"customer1", "host-name":"demo.appdynamics.com", "port":"8090", "ssl-enabled":false}'CODE
VMware Tanzu でのマシンエージェントの展開
このトピックは、VMware Tanzu(VMware Tanzu)プラットフォームにマシンエージェントを展開するために役立ちます。
ご使用になる前に
- アプリケーションを展開、実行、および管理するために、Cloud Foundry での管理者またはスペース開発者のアクセス権を取得します。アクセス権の詳細については、Cloud Foundry のドキュメントを参照してください。
- マシンエージェントをダウンロードします。
マシンエージェントのセットアップ
GitHub リポジトリをセットアップします。
git clone https://github.com/Appdynamics/cloudfoundry-apps cd cloudfoundry-apps/cf-machine-agentCODEマシンエージェントが、ダウンロードポータルから現在のディレクトリにダウンロードされていることを確認します。
MachineAgent-4.5.11.2163.zip cd MachineAgent-4.5.11.2163 (master)$ ls bin local-scripts monitorsLibs conf machineagent.jar readme.txt extensions machineagent.jar.asc readme.txt.asc lib monitors scriptsCODEマシンエージェントの拡張機能がある場合は、
cloudfoundry-apps/cf-machine-agent拡張ディレクトリにコピーします。拡張機能は、extension_folder/{.jar, *.monitor.xml}を含む .zip 形式である必要があることに注意してください。低下要因になっています。$ cp ~/Downloads/rabbitmqmonitor-2.0.2.zip extensions/CODEmanifest.ymlのJAVA_OPTSセクションを編集して、コントローラ情報を追加します。たとえば、詳細を入力した後のmanifest.ymlは次のようになります。--- applications: - name: appdynamics-machine-agent memory: 1G health-check-type: process no-route: true buildpack: java_buildpack_offline path: MachineAgent.zip env: JAVA_OPTS: '-Dappdynamics.agent.accountAccessKey=accessKey -Dappdynamics.agent.accountName=customer1 -Dappdynamics.controller.hostName=mycontroller.com -Dappdynamics.controller.port=<port> -Dappdynamics.agent.applicationName=myAppName -Dappdynamics.agent.uniqueHostId=myUniqueHostId -Dappdynamics.controller.ssl.enabled=false'CODEpackage.shの実行このスクリプトは、拡張機能の zip ファイルをマシンエージェントのモニターディレクトリにパッケージ化し、マシンエージェントをクリーンアップして、VMware Tanzu の要件ごとにファイルの権限を調整します。
$ ./package.sh Creating workdir tmp Moving MachineAgent to tmp dir Unzipping MachineAgent Unzipping Extensions from ../extensions to ./monitors Directory Cleaning MachineAgent - removing *.asc files Adjusting permissions as per requirement from CloudFoundry Packaging MachineAgentCODEcf pushを使用してマシンエージェントを展開します。$ cf pushCODEcf appsを使用してアプリケーションが実行されていることを確認し、コンテナ(home/vcap/app)のアプリケーションログを確認して、拡張機能が機能していることを検証します。$ cf apps Getting apps in org appdynamics-org / space appdynamics-space as admin... OK appdynamics-machine-agent started 1/1 1G 1GCODEMachineAgent.zip内のconf/logging/log4j.xmlファイルで、コンソールにログを記録するように設定できます(デフォルトでは、ファイルシステムにログを記録します)。