Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: Monitor Azure Cobalt 100 Arm64 virtual machines using Dynatrace OneAgent

draft: true
cascade:
draft: true

minutes_to_complete: 30

who_is_this_for: This learning path is designed for developers, DevOps engineers, and platform engineers who want to implement infrastructure and application monitoring using Dynatrace on Arm-based cloud environments.

learning_objectives:
- Deploy Dynatrace OneAgent on Azure Cobalt 100 Arm64 virtual machines
- Configure Dynatrace ActiveGate for secure monitoring communication
- Monitor system resources, processes, and services using Dynatrace
- Validate application monitoring using a sample NGINX workload

prerequisites:
- A [Microsoft Azure account](https://azure.microsoft.com/) with access to Cobalt 100 based instances (Dpsv6)
- Basic knowledge of Linux command-line operations
- Familiarity with SSH and remote server access
- Basic understanding of cloud infrastructure and monitoring concepts

author: Pareena Verma

### Tags
skilllevels: Introductory
subjects: Containers and Virtualization
cloud_service_providers:
- Microsoft Azure

armips:
- Neoverse

tools_software_languages:
- Dynatrace
- NGINX
- ActiveGate

operatingsystems:
- Linux

further_reading:
- resource:
title: Dynatrace Official Website
link: https://www.dynatrace.com
type: website
- resource:
title: Dynatrace OneAgent documentation
link: https://docs.dynatrace.com/docs/observe/infrastructure-monitoring/hosts/installation
type: documentation
- resource:
title: Dynatrace ActiveGate documentation
link: https://docs.dynatrace.com/docs/ingest-from/dynatrace-activegate
type: documentation
- resource:
title: Azure Cobalt 100 processors
link: https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353
type: documentation

### FIXED, DO NOT MODIFY
# ================================================================================
weight: 1
layout: "learningpathall"
learning_path_main_page: "yes"
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
# ================================================================================
# FIXED, DO NOT MODIFY THIS FILE
# ================================================================================
weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation.
title: "Next Steps" # Always the same, html page title.
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
---
title: Install Dynatrace ActiveGate on Azure Ubuntu Arm64 virtual machine
weight: 6

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Install Dynatrace ActiveGate on Azure Ubuntu Arm64

Dynatrace ActiveGate acts as a **secure gateway between monitored environments and the Dynatrace SaaS platform**.
It improves scalability, enables Kubernetes monitoring, and routes monitoring traffic efficiently.

In this guide, you'll install Dynatrace ActiveGate on an **Azure Ubuntu 24.04 LTS Arm64 virtual machine running on Azure Cobalt 100 processors**.

At the end of the installation, ActiveGate will be:

* Installed and running as a system service
* Listening on port **9999** for Dynatrace communication
* Connected to your Dynatrace SaaS environment
* Verified on **Arm64 (Aarch64)** architecture

## Verify OneAgent installation

ActiveGate is commonly installed on a host that already has **Dynatrace OneAgent** installed.
This allows ActiveGate to securely route monitoring traffic from OneAgent to the Dynatrace environment.

Verify that OneAgent is running:

```console
sudo systemctl status oneagent
```

If OneAgent is not installed, install it first using the previous guide.

## Log in to Dynatrace

Open your Dynatrace environment in a browser.

```text
https://<ENVIRONMENT-ID>.live.dynatrace.com
```

**Example:**

```text
https://qzo722404.live.dynatrace.com
```

This is your Dynatrace SaaS environment URL.

## Navigate to the ActiveGate deployment page

From the Dynatrace dashboard:

- Select Deployment status
- Choose ActiveGate
- Install ActiveGate

![Dynatrace deployment status page showing no ActiveGate detected alt-txt#center](images/activegate1.png "Dynatrace ActiveGate not yet installed")

Dynatrace will generate an installation command specifically for your environment.

## Select ARM architecture

On the installer configuration page:

- Platform → Linux
- Architecture → ARM64

![Dynatrace Install ActiveGate page showing deployment type Linux and architecture ARM selection alt-txt#center](images/activegate-install.png "Dynatrace ActiveGate installation configuration")

This ensures that the installer downloads the Arm64-compatible ActiveGate binaries.

## Copy the ActiveGate installer command

Dynatrace generates a command similar to the following:

**Download ActiveGate:**

```console
wget -O Dynatrace-ActiveGate-Linux-arm.sh \
"https://<ENVIRONMENT-ID>.live.dynatrace.com/api/v1/deployment/installer/gateway/unix/latest?arch=arm" \
--header="Authorization: Api-Token <API_TOKEN>"
```

Example:

```console
wget -O Dynatrace-ActiveGate-Linux-arm.sh \
"https://qzo72404.live.dynatrace.com/api/v1/deployment/installer/gateway/unix/latest?arch=arm" \
--header="Authorization: Api-Token DT_API_TOKEN"
```

**Verify signature:**

```console
wget https://ca.dynatrace.com/dt-root.cert.pem ; ( echo 'Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="--SIGNED-INSTALLER"'; echo ; echo ; echo '----SIGNED-INSTALLER' ; cat Dynatrace-ActiveGate-Linux-arm64-1.331.24.20260210-044521.sh ) | openssl cms -verify -CAfile dt-root.cert.pem > /dev/null
```
![Dynatrace ActiveGate installer command for Linux ARM64 environment alt-txt#center](images/activegate-installation-commands.png "Dynatrace ActiveGate installer command")

**Install ActiveGate as the privileged user:**

```console
sudo /bin/bash Dynatrace-ActiveGate-Linux-arm64-1.331.24.20260210-044521.sh
```

The installer automatically performs the following tasks:

- Downloads ActiveGate components
- Installs the ActiveGate service
- Configures communication with Dynatrace SaaS
- Starts the ActiveGate service

The output is similar to:
```output
2026-03-12 05:59:21 UTC Starting Dynatrace ActiveGate AutoUpdater...
2026-03-12 05:59:21 UTC Checking if Dynatrace ActiveGate AutoUpdater is running ...
2026-03-12 05:59:21 UTC Dynatrace ActiveGate AutoUpdater is running.
2026-03-12 05:59:21 UTC Cleaning autobackup...
2026-03-12 05:59:21 UTC Removing old installation log files...
2026-03-12 05:59:21 UTC
2026-03-12 05:59:21 UTC --------------------------------------------------------------
2026-03-12 05:59:21 UTC Installation finished successfully.
```

## Verify the ActiveGate service

Check that the ActiveGate service is running.

```console
sudo systemctl status dynatracegateway
```

The output is similar to:
```output
● dynatracegateway.service - Dynatrace ActiveGate service
Loaded: loaded (/etc/systemd/system/dynatracegateway.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-03-12 05:59:07 UTC; 1min 7s ago
Process: 20280 ExecStart=/opt/dynatrace/gateway/dynatracegateway start (code=exited, status=0/SUCCESS)
```
This confirms that ActiveGate started successfully.

## Verify the ActiveGate communication port

ActiveGate communicates using port 9999.

**Verify that the port is listening:**

```console
sudo ss -tulnp | grep 9999
```

The output is similar to:
```console
tcp LISTEN 0 50 *:9999 *:* users:(("java",pid=20319,fd=403))
```

This confirms that ActiveGate is accepting incoming connections.

## Confirm ActiveGate in Dynatrace UI

Open the Dynatrace web interface and navigate to:

```text
Deployment Status → ActiveGates
```

You should see your ActiveGate instance listed with:

- Host name
- Version
- Status: Connected

![Dynatrace Deployment Status page showing ActiveGate instance connected and running alt-txt#center](images/activegate-ui.png "Dynatrace ActiveGate deployment status")

![Dynatrace ActiveGate details page displaying modules architecture and configuration alt-txt#center](images/activegate-details.png "Dynatrace ActiveGate details view")

## Test application monitoring with Nginx

To validate that Dynatrace is collecting monitoring data correctly, deploy a simple web server on the virtual machine. Dynatrace OneAgent will automatically detect and monitor the process.

### Install Nginx

Update the package index and install the Nginx web server.

```console
sudo apt update
sudo apt install -y nginx
```
## Check the Nginx service status.

```console
sudo systemctl status nginx
```

The output is similar to:

```output
Active: active (running)
```

## Verify process detection in Dynatrace

Dynatrace OneAgent automatically discovers running processes and services.

Return to the Dynatrace web interface and navigate to:

```text
Infrastructure & Operations → Hosts
```

Select your monitored host and open:

```text
Processes
```

You should see a process similar to:

- nginx
- Dynatrace automatically begins collecting metrics such as:
- CPU usage
- memory consumption
- network activity
- request throughput

![Dynatrace Infrastructure Explorer showing NGINX process monitoring on an ARM64 host alt-txt#center](images/nginx-monitoring.png "Dynatrace NGINX process monitoring dashboard")

## What you've accomplished

You've successfully installed Dynatrace ActiveGate on your Azure Ubuntu Arm64 virtual machine. Your environment now includes:

- Dynatrace OneAgent performing host monitoring
- ActiveGate routing monitors traffic securely
- Communication with Dynatrace SaaS through port 9999
- Full compatibility with Arm64-based Cobalt 100 processors
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: "Overview of Azure Cobalt 100 and Dynatrace"

weight: 2

layout: "learningpathall"
---

## Azure Cobalt 100 Arm-based processor

Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on Arm Neoverse N2, Cobalt 100 is a 64-bit CPU that delivers strong performance and energy efficiency for cloud-native, scale-out Linux workloads such as web and application servers, data analytics, open-source databases, and caching systems. Running at 3.4 GHz, Cobalt 100 allocates a dedicated physical core for each vCPU, which helps ensure consistent and predictable performance.

To learn more, see the Microsoft blog [Announcing the preview of new Azure VMs based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).

## Dynatrace

Dynatrace is an AI-powered observability and application performance monitoring (APM) platform used to monitor applications, infrastructure, logs, and user experience across cloud and on-premises environments. Dynatrace provides automatic discovery, full-stack monitoring, and real-time analytics to help teams understand system behavior and quickly identify performance issues.

Dynatrace automatically maps dependencies between services, hosts, containers, and applications using intelligent automation and topology mapping. The platform uses AI-driven analysis to detect anomalies and identify root causes across complex distributed systems.

There are three main components of Dynatrace:

- **Dynatrace OneAgent:** a lightweight monitoring agent installed on hosts that automatically collects metrics, logs, and traces from applications and infrastructure. Learn more in the [Dynatrace OneAgent documentation](https://docs.dynatrace.com/docs/ingest-from/dynatrace-oneagent).

- **Dynatrace ActiveGate:** a secure gateway component that routes monitoring traffic, enables cloud integrations, and provides additional monitoring capabilities such as Kubernetes monitoring and synthetic monitoring. Learn more in the [Dynatrace ActiveGate documentation](https://docs.dynatrace.com/docs/ingest-from/dynatrace-activegate).

- **Dynatrace Platform (SaaS or Managed):** the central observability platform that processes monitoring data, provides dashboards, AI-driven root cause analysis, and system-wide visibility across applications and infrastructure. See the [Dynatrace documentation portal](https://docs.dynatrace.com/docs) for more details.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Create a firewall rule on Azure
weight: 4

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Configure Azure firewall for Dynatrace ActiveGate

To allow external traffic on port **9999** for Dynatrace ActiveGate running on an Azure virtual machine, open the port in the Network Security Group (NSG) attached to the virtual machine's network interface or subnet.

{{% notice Note %}} For more information about Azure setup, see [Getting started with Microsoft Azure Platform](/learning-paths/servers-and-cloud-computing/csp/azure/).{{% /notice %}}

## Create a firewall rule in Azure

To expose the TCP port **9999**, create a firewall rule.

Navigate to the [Azure Portal](https://portal.azure.com), go to **Virtual Machines**, and select your virtual machine.

![Azure portal Virtual Machines page showing list of running VMs with details like status, location, and size alt-txt#center](images/virtual_machine.png "Virtual Machines")

In the left menu, select **Networking** and in the **Networking** select **Network settings** that is associated with the virtual machine's network interface.

![Azure portal Network settings page showing network interface and security group configuration alt-txt#center](images/networking.png "Network settings")

Navigate to **Create port rule**, and select **Inbound port rule**.

![Azure portal showing Create port rule dropdown with Inbound port rule option highlighted alt-txt#center](images/port_rule.png "Create rule")

Configure it using the following details:

- **Source:** Any
- **Source port ranges:** *
- **Destination:** Any
- **Destination port ranges:** **9999**
- **Protocol:** TCP
- **Action:** Allow
- **Priority:** 1000
- **Name:** dynatrace-activegate

After filling in the details, select **Add** to save the rule.

![Azure portal inbound security rule configuration form showing port 9999, TCP protocol, and Allow action alt-txt#center](images/inbound_rule.png "Network settings")

The network firewall rule is now created, allowing Dynatrace ActiveGate to communicate over port **9999**.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading