DEV Community

Cover image for Mastering Azure Monitor: Deployment and Configuration
Rahimah Sulayman
Rahimah Sulayman

Posted on

Mastering Azure Monitor: Deployment and Configuration

Introduction

While working on a comprehensive deployment of Azure Monitor, I hit a common but frustrating wall: the dreaded SubscriptionIsOverQuotaForSku error. Instead of stopping, I pivoted—re-engineering my deployment across Korea Central and East US to maintain uptime and visibility(since we're in a learning environment).

In this post, I’ll walk you through how I deployed a hybrid environment featuring Windows Server (IIS), Linux (Ubuntu), and a SQL-backed Web App, all while configuring the observability layers needed to keep a modern enterprise running.

This exercise should take approximately 30 minutes to complete.

Prepare your bring-your-own-subscription (BYOS)

This set of lab exercises assumes that you have global administrator permissions to an Azure subscription.

1.In the Azure Portal Search Bar, enter Resource Groups and select Resource groups from the list of results.

rg

2.On the Resource Groups page, select Create.

create

3.On the Create a Resource Group page, select your subscription and enter the name rg-alpha. Set the region to East US, choose Review + Create, and then choose Create.

name

create

NOTE: This set of exercises assumes that you choose to deploy in the East US Region, but you can change this to another region if you choose. Just remember that each time you see East US mentioned in these instructions you will need to substitute the region you have chosen.

Create App Log Examiners security group

In this exercise, you create an Entra ID security group.

1.In the Azure Portal Search Bar, enter Azure Active Directory (or Entra ID) from the list of results.

Entra

2.On the Default Directory page, select, + Add, then Groups.

grps

3.On the New Group page, provide the values in the following table and choose Create.

Property Value
Group type Security
Group name App Log Examiners
Group description App Log Examiners

grps

Deploy and configure WS-VM1

In this exercise, you deploy and configure a Windows Server virtual machine.

1.In the Azure Portal Search Bar, enter Virtual Machines and select Virtual Machines from the list of results.

vm

2.On the Virtual Machines page, choose Create and select Azure Virtual Machine.

azurevm

3.On the Basics page of the Create A Virtual Machine wizard, select the following settings and then choose Review + Create.

Property Value
Subscription Your subscription
Resource Group rg-alpha
Virtual machine name WS-VM1
Region East US
Availability options No infrastructure redundancy required
Security type Standard
Image Windows Server 2022 Datacenter: Azure Edition – x64 Gen2
VM architecture x64
Size Standard_D4s_v3 – 4 vcpus, 16 GiB memory
Administrator account prime
Password [Select a unique secure password] P@ssw0rdP@ssw0rd
Inbound ports RDP 3389

create

create

create

4.Review the settings and select Create.

create

5.Wait for the deployment to complete. Once deployment completes choose Go to resource.

gtr

6.On the WS-VM1 properties page, choose Networking.

ntwk

7.On the Networking page, select the RDP rule.

8.On the RDP rule space, change the Source to My IP address and choose Save.

rdp

This restricts incoming RDP connections to the IP address you’re currently using.
9.On the Networking page, choose Add inbound port rule.

portrules

inboundrules

10.On the Add inbound security rule page, configure the following settings and choose Add.

Property Value
Source Any
Source port ranges *
Destination Any
Service HTTP
Action Allow
Priority 310
Name AllowAnyHTTPInbound

rules

11.On the WS-VM1 page, choose Connect.

connect

12.Under Native RDP, choose Select.
13.On the Native RDP page, choose Download RDP file and then open the file. Opening the RDP file opens the Remote Desktop Connection dialog box.

14.On the Windows Security dialog box, choose More Choices and then choose Use a different account.

15.Enter the username as .\prime and the password as the secure password you chose in Step 3, and choose OK.
securitybox

16.When signed into the Windows Server virtual machine, right-click on the Start hint and then choose Windows PowerShell (Admin).

17.At the elevated command prompt, type the following command and press Enter. Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools

Installing

18.When the installation completes run the following command to change to the web server root directory. cd c:\inetpub\wwwroot\
19.Run the following command. Wget https://raw.githubusercontent.com/Azure-Samples/html-docs-hello-world/master/index.html -OutFile index.html

complete

Deploy and configure LX-VM2

In this exercise you deploy and configure a Linux virtual machine.

1.In the Azure Portal Search Bar, enter Virtual Machines and select Virtual Machines from the list of results.

createvm

2.On the Virtual Machines page, choose Create and select Azure Virtual Machine.
vmcreate

3.On the Basics page of the Create A Virtual Machine wizard, select the following settings and then choose Review + Create.

Property Value
Subscription Your subscription
Resource Group rg-alpha
Virtual machine name Linux-VM2
Region East US
Availability options No infrastructure redundancy required
Security type Standard
Image Ubuntu Server 20.04 LTS – x64 Gen2
VM architecture x64
Size Standard_D2s_v3 – 2 vcpus, 8 GiB memory
Authentication type Password
Username Prime
Password [Select a unique secure password] P@ssw0rdP@ssw0rd
Public inbound ports None

vm

vm

4.Review the information and choose Create.

review

5.After the VM deploys, open the VM properties page and choose Extensions + Applications **under **Settings.

xtensn

6.Choose Add and select the Network Watcher Agent for Linux. Choose Next and then choose Review and Create. Choose Create.

nightwatcher

create

NOTE: The installation and configuration of the OmsAgentForLinux extension will be performed in Exercise 2 after the Log Analytics workspace is created.

Deploy a web app with an SQL Database

1.Ensure that you’re signed into the Azure Portal.
2.In your browser, open a new browser tab and navigate to https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/web-app-sql-database

3.On the GitHub page, choose Deploy to Azure.
github
4.A new tab opens. If necessary, re-sign into Azure with the account that has Global Administrator privileges.
5.On the Basics page, select Edit template.

edittemplate

6.In the template editor, delete the contents of lines 158 to 174 inclusive and delete the “,” on line 157. Choose Save.

deletelines

7.On the Basics page, provide the following information and choose Next.

Property Value
Subscription Your subscription
Resource Group rg-alpha
Region East US
Sku Name F1
Sku Capacity 1
Sql Administrator Login prime
Sql Administrator Login Password [Select a unique secure password] P@ssw0rdP@ssw0rd

create

error
Quota limits are often region-specific. If you are hitting a zero-limit in one location, another might have availability.
Go back to the Basics tab and try switching the Region to a major hub like East US, West US 2, or North Europe.

In my specific case, Korea Central is often a good alternative when am faced subscription roadblocks in other regions recently.
Hence, I changed the resource group to rg-alpha2 and Region to Korea Central.

NOTE: If you absolutely need that specific region and size, you have to ask Microsoft to "unlock" it for you.

change

8.Review the information presented and select Create.

create

9.After the deployment completes, choose Go to resource group.

gtd

overview

Deploy a Linux web app

1.Ensure that you’re signed into the Azure Portal.
2.In your browser, open a new browser tab and navigate to https://learn.microsoft.com/en-us/samples/azure/azure-quickstart-templates/webapp-basic-linux/
3.On the GitHub page, choose Deploy to Azure.

deploytoazure

4.On the Basics page, provide the following information and choose Next.

Property Value
Subscription Your subscription
Resource Group rg-alpha
Region East US
Web app Name AzureLinuxAppWXYZ (assign a random number to the final four characters of the name)
Sku S1
Linux Fx version php 7.4

details

5.Review the information and choose Create.

error
So I changed the resource group and Region again.

change

create
Deployment failed because the webApp name already exists, click on Redeploy and edit the name.

failed to deploy
6.Now that Deployment is complete, Go To Resource.

resource

Conclusion

The "Invisible Skill of Cloud Engineering
Setting up a multi-tier environment on Azure is more than a checklist of installations, it is a lesson in resiliency. This project challenged me to manage a hybrid ecosystem—bridging Windows Server management, Linux observability, and SQL-backed web applications, all while navigating real-world infrastructure constraints like subscription quotas and regional limitations.

Top comments (0)