はじめに
DynatraceでAzureのログを取得取得する方法に、直接Dynatraceに送信する方法を紹介しました。
-
DynatraceでAzureを監視してみる。Azureからログを取得する。 - 技術的な何か。
はじめに DynatraceでAzureと連携した場合のログの収集方法について紹介します。Azure のログはEvent Hubsを介してFunctionsがDynatraceに送信する方法を紹介しま
level69.net
ログの取得する方法として3つ紹介しました。
- Dynatraceに直接送信する。
- 新規にActiveGateを使用して送信する。
- 既存のActiveGateを使用して送信する。
後者の2つを紹介しています。
新規にActiveGateを使用して送信する
リージョン毎にActiveGateを作成します。
これは、Dynatraceのスクリプトによって作成されます。
この場合、ActiveGate毎に障害点になりうることも考慮が必要かとも思います。
削除時の注意事項として仮想ネットワークの削除が途中で止まる場合にmicrosoft.network/networkprofiles(非表示にされているもの)も削除が必要です。
取得できるログ
- Storage account (Microsoft.Storage/storageAccounts)
- Storage Account Blob Service (Microsoft.Storage/storageAccounts/blobServices)
- Azure App Service plan (Microsoft.Web/serverfarms)
- Azure Function App (Microsoft.Web/sites)
- Virtual Network (Microsoft.Network/VirtualNetworks)
- Subnet (Microsoft.Network/virtualNetworks/subnets)
- Network Profile (Microsoft.Network/networkProfiles)
- Container Instance (Microsoft.ContainerInstance/containerGroups)
既存のActiveGateを使用して送信する
すでにActiveGateがある場合はそれを利用することが可能です。
この場合、ActiveGateが障害点となりすべてのデータ収集が行えなくなる可能性もあります。
注意事項として、WindowsサーバーにActiveGateをインストールしたものではフォワーダーがデプロイできませんでした。設定で行えるのかもしれません。Linuxのバージョンを利用する必要があるかもしれません。
ActiveGateを冗長化する方法としてLoadBalancerを利用して冗長化を試してみました。動作保証はないですが動いているような気がします。ログの転送は行えていますが、ログの内容を確認していないので保証はできません。
取得できるログ
- Storage account (Microsoft.Storage/storageAccounts)
- Storage Account Blob Service (Microsoft.Storage/storageAccounts/blobServices)
- Azure App Service plan (Microsoft.Web/serverfarms)
- Azure Function App (Microsoft.Web/sites)
前提条件
前回の環境が構築されていること。イベントハブまで構築されていること。
-
DynatraceでAzureを監視してみる。Azureからログを取得する。 - 技術的な何か。
はじめに DynatraceでAzureと連携した場合のログの収集方法について紹介します。Azure のログはEvent Hubsを介してFunctionsがDynatraceに送信する方法を紹介しま
level69.net
構築
新規にActiveGateを使用して送信する
-
Azure Logs — Dynatrace Docs
Use Azure log forwarding to ingest Azure logs.
www.dynatrace.com
2種類のトークンが必要となります。
- APIトークン
- Ingest logs
- PaaSトークン
- Installer Download
- Support Alert
それぞれ異なる権限です。
下記を実行します(WSL)。
DEPLOYMENT_NAME=<your_deployment_name> TARGET_URL=<your_environment_URL> TARGET_API_TOKEN=<your_API_token> TARGET_PAAS_TOKEN=<your_PaaS_token> RESOURCE_GROUP=<your_resource_group> EVENT_HUB_CONNECTION_STRING=<your_Event_Hub_connection_string>
- DEPLOYMENT_NAME:Functionsの名前
- TARGET_URL:DynatraceのURL(例:https://iax12345.live.dynatrace.com/)
- TARGET_API_TOKEN:上記で作成したトークン
- TARGET_PAAS_TOKEN:上記で作成したトークン
- RESOURCE_GROUP:Functionsの作成するリソースグループ(Functionsはリソースグループのリージョンになります)
- EVENT_HUB_CONNECTION_STRING:イベントハブのSASトークンの接続文字列
wget -q https://github.com/dynatrace-oss/dynatrace-azure-log-forwarder/releases/latest/download/dynatrace-azure-logs.sh -O dynatrace-azure-logs.sh && chmod +x ./dynatrace-azure-logs.sh \ && ./dynatrace-azure-logs.sh --deployment-name $DEPLOYMENT_NAME --target-url $TARGET_URL --target-api-token $TARGET_API_TOKEN --target-paas-token $TARGET_PAAS_TOKEN --resource-group $RESOURCE_GROUP --event-hub-connection-string $EVENT_HUB_CONNECTION_STRING --use-existing-active-gate false
既存のActiveGateを使用して送信する
-
Azure Logs — Dynatrace Docs
Use Azure log forwarding to ingest Azure logs.
www.dynatrace.com
下記のトークンが必要となります。
- APIトークン
- Ingest logs
下記を実行します(WSL)。
DEPLOYMENT_NAME=<your_deployment_name> TARGET_URL=<your_environment_URL> TARGET_API_TOKEN=<your_API_token> RESOURCE_GROUP=<your_resource_group> EVENT_HUB_CONNECTION_STRING=<your_Event_Hub_connection_string>
REQUIRE_VALID_CERTIFICATE=false
- DEPLOYMENT_NAME:Functionsの名前
- TARGET_URL:ActiveGateのURL(例:http://ActiveGateのIP:9999/e/iax12345/)
- TARGET_API_TOKEN:上記で作成したトークン
- RESOURCE_GROUP:Functionsの作成するリソースグループ(Functionsはリソースグループのリージョンになります)
- EVENT_HUB_CONNECTION_STRING:イベントハブのSASトークンの接続文字列
- REQUIRE_VALID_CERTIFICATE:false(証明書の確認を行わないことを明示的)
wget -q https://github.com/dynatrace-oss/dynatrace-azure-log-forwarder/releases/latest/download/dynatrace-azure-logs.sh -O dynatrace-azure-logs.sh && chmod +x ./dynatrace-azure-logs.sh \ && ./dynatrace-azure-logs.sh --deployment-name $DEPLOYMENT_NAME --target-url $TARGET_URL --target-api-token $TARGET_API_TOKEN --resource-group $RESOURCE_GROUP --event-hub-connection-string $EVENT_HUB_CONNECTION_STRING --use-existing-active-gate true --require-valid-certificate $REQUIRE_VALID_CERTIFICATE
これは冗長構成にした場合も変わりません。TARGET_URLがLoadBalancerのIPアドレスになります。
確認
それぞれ問題なくログが取得されていることを確認してください。
まとめ
ActiveGateを利用してログを転送する方法を紹介しました。これはVNET内にアクセスをとどめたい場合、ER経由でオンプレのデータを扱いたいときなどのケースが考えられると思います。それなりに使うケースがあると思います。取得できるログも異なるので注意が必要ですが、コストなども考慮するとコンテナで立ち上げるのが良いかと思います。