How do I monitor Kubernetes applications on Azure Container Services?

Microsft Azure Container Services (ACS) is a distributed platform for building and hosting microservices. Azure Container Services enables you to use Kubernetes as a container orchestration engine. This topic walks you through getting your Kubernetes cluster on ACS monitored by Dynatrace OneAgent.

Kubernetes clusters on ACS are built around common Azure Linux VMs. The Dynatrace OneAgent Azure VM extension can be used to conveniently monitor your cluster. While Kubernetes offers multiple approaches to monitoring, for ACS we recommend using the approach described here as it provides the most complete integration available. For other platforms, you may also be interested in this approach.

Requirements

Get your Dynatrace environment ID and PaaS token

You need to get your Dynatrace environment ID and as well as a PaaS token.

  1. Login with your Dynatrace account.

  2. Select Deploy Dynatrace from the navigation menu.

  3. Click the Set up PaaS integration button.

  4. Your environment ID appears in the Environment ID text box. You'll need this ID to link your Dynatrace account with your PaaS environment. Click Copy to copy the ID to the clipboard. You can do this at any time by revisiting this page.

  5. To generate a PaaS token, click the Generate new token button. The PaaS token is essentially an API token that's used in combination with your environment ID to download Dynatrace OneAgent. As you'll see, there's also a default InstallerDownload token available that you can alternatively use. However, for security reasons, it's recommended that you create several discrete tokens for each environment you have.

  6. Type in a meaningful name for your PaaS token. A meaningful token name might be the name of the PaaS platform you want to monitor (for example, azure, cloud-foundry, or openshift). To view and manage your existing PaaS tokens, go to Settings -> Integration -> Platform as a Service.

  7. Click Generate to create the PaaS token. The newly created PaaS token will appear in the list below. Click Copy to copy the generated token to the clipboard. You can do this at any time by revisiting this page and clicking Show token next to the relevant PaaS token.

Install Dynatrace OneAgent VM extension via Azure CLI 2.0

Replace all values marked with <...> with your actual values.

Login to your Azure account. If you're using Azure Cloud Shell, you can skip this step.

az login

Add the VM extension to the VM nodes.

Execute the following command. Please note that the settings are submitted in JSON format, which requires proper escaping as the command is submitted as a string.

az vm extension set
  -n oneAgentLinux
  --publisher dynatrace.ruxit
  -g "<resource group name>"
  --vm-name "<VM name>"
  --settings "{\"tenantId\":\"<your environment ID>\",\"token\":\"<PaaS token>\"}"

If you're using Dynatrace Managed, be sure to add the server's address to the settings JSON. The value is the address only, without https:// or any subpaths.

--settings "{\"server\":\"<Dynatrace Managed URL>\",\"tenantId\":\"<your environment ID>\",\"token\":\"<PaaS token>\"}"

Install Dynatrace OneAgent VM extension via PowerShell

Replace all values marked with <...> with your actual values.

Open a PowerShell window and sign in to your Microsoft Azure account.

Login-AzureRmAccount

Add the Dynatrace OneAgent Azure VM extension to the VM definition.

Set-AzureRmVMExtension
  -VMName <VM name>
  -ResourceGroupName <resource group name>
  -Name DynatraceOneAgent
  -Publisher dynatrace.ruxit
  -ExtensionType oneAgentLinux
  -TypeHandlerVersion 1.99
  -AutoUpgradeMinorVersion $true
  -Location <VM location>
  -Setting @{ "tenantId"="<your environment ID>"; "token"="<PaaS token>" }

If you're running a Dynatrace Managed on-premises deployment, be sure to add the server's address to the settings JSON. The value is the address only, without https:// or any subpaths.

-Setting @{ "server"="<Dynatrace Managed URL>"; "tenantId"="<your environment ID>"; "token"="<PaaS token>" }

Troubleshooting

If the VM nodes don't show up in the Dynatrace UI, restart all VM nodes.

Note:
Don't forget to restart your services to enable deep monitoring.