Prerequisites for the Nodinite Azure Monitoring agent
Info
This page is the one home for the prerequisites of the Nodinite Azure Monitoring Agent: software, Azure access, Windows rights, firewall ports, and proxy settings. The Install, Configuration, and Troubleshooting pages link here instead of repeating these facts.
Get started with the Nodinite Azure Monitoring Agent by making sure your environment meets these prerequisites. Meet them, and you get a secure, reliable monitoring solution for your Azure EAI services, from Subscriptions and Resource Groups down to Azure Functions, Web Jobs, and Azure Storage.
- ✅ Ensure secure and least-privilege access to Azure resources
- ✅ Meet all software and network requirements for seamless operation
- ✅ Empower teams to monitor and manage Azure without direct portal access
- ✅ Stay up to date with supported versions and best practices
| Verified | Topic |
|---|---|
| How the agent uses Azure | |
| Software Requirements | |
| Azure User rights and Services | |
| Windows User Rights | |
| Firewall settings | |
| Corporate Forward Proxy |
How the agent uses Azure
The Monitoring Service polls the agent for the state of every Resource it discovers, and sends Remote Configuration changes and Remote Actions to it. The agent then talks to Azure on your behalf:
Diagram: Nodinite Azure Monitoring Agent architecture and required connections. The agent calls the Azure REST API for discovery, monitoring, and Remote Actions, runs Kusto queries against Application Insights for Functions Monitoring, and reads Azure Storage.
Azure services at a glance
| Azure service | Needed for | Required? |
|---|---|---|
| App Registration in Microsoft Entra ID | Every call the agent makes to Azure | ✅ Always |
| Azure Resource Manager (Azure REST API) | Discovery, monitoring, and Remote Actions for all resource types | ✅ Always |
| Application Insights | Azure Functions monitoring (Kusto queries) and Kusto queries you configure | ⚠️ Only for those features |
| Microsoft Graph | App Registration monitoring | ⚠️ Only for that feature |
| Azure Storage data plane | Azure Storage monitoring and actions | ⚠️ Only for that feature |
| Event Hubs data plane | Posting messages to an Event Hub (Post) | ⚠️ Only for that action |
Authentication options
| Option | Used for | Notes |
|---|---|---|
| ✅ App Registration (Application/Client and secret) | The Azure REST API and all management-plane calls | Always required. Assign only the Azure RBAC roles for the features you enable |
| ⚠️ SAS keys / connection strings | Some data-plane integrations, for example Azure Storage in specific scenarios | Depends on the feature and version; RBAC-based access is also available for selected features |
Software Requirements
The Azure Agent usually runs on the Nodinite application server, together with the Core Services. On Windows Server, Nodinite v7 hosts the agent as its own IIS web site, installed through the Nodinite Portal (Agents step). Nodinite v6 installed it as a Windows Service. Virtual machines are supported.
| Product | Nodinite v7 (IIS web site) | Nodinite v6 (Windows Service, ⚠️ Legacy) |
|---|---|---|
| Windows Server | The Nodinite v7 platform requirement | Windows 2025 Windows 2022 Windows 2019 Windows 2016 Windows 2012 R2 Windows 2012 |
| IIS | IIS with the IIS Windows Features | Not used |
| .NET | See the Release Notes for the agent version | .NET Framework 4.8 or later New 6.0 |
Earlier versions of this agent made use of .NET Framework 4.7.2.
Supported Versions
Cloud technologies evolve quickly, and Microsoft deprecates older API versions regularly. Nodinite always supports the APIs that Microsoft supports, so update Nodinite and the Nodinite Azure Agent periodically to stay current.
Make sure to subscribe to our Release Notes.
What Azure User rights and Services does the Azure agent require?
For the Least Privileges, review the Azure Access page, least privileges section. Carefully read and follow the instructions in the Azure Applications Access user guide for specific use, and insights about the least privileges required.
The agent provides features to Read, Write, Manage, and Post data to many Azure-related services.
The agent always uses an App Registration (Application/Client) in Microsoft Entra ID to authenticate with the Azure REST API and manage Azure services and resources. You enter its Tenant ID, Subscription ID, Client ID, and Client Secret per Subscription in the Configuration. Depending on the feature and version, some data-plane integrations can also use SAS keys/connection strings (for example, Azure Storage access in specific scenarios).
Only assign the rights required for the services the customer actually enables. If the customer opts out of a monitoring category, don't add the related Azure RBAC role or delegated permission; keep the App Registration limited to the enabled features only.
- To ease administration, assign the ApplicationId/ClientId the Contributor role.
- To send messages to the Azure Event Hub, add the Azure Event Hubs Data Sender role to the ApplicationId/ClientId (Post).

Example: Assigning the Azure Event Hubs Data Sender role in the Azure Portal. - To monitor Azure Storage, configure access according to your selected approach in the agent. Some scenarios use Connection Strings, while RBAC-based access is also available for selected features. See RBAC reading for Azure Storage.
- To monitor Azure Key Vault, assign the App Registration (Application/Client) the Key Vault Reader role.
- To monitor Azure Functions, enable Azure Monitoring. You must tie an Application Insights instance to the Azure Function Web Site hosting the Functions you want to monitor. Include access rights as described in the next item.
- Application Insights Monitoring (Kusto query execution and Functions Monitoring) requires the App Registration to have Delegated permissions to read data. Filter on Application Insights API and check the Data.Read checkbox.
- Some features, like Web Jobs History, require you to set
SCM Basic Auth Publishing CredentialstoOn. - The APIM Monitoring requires membership in the
API Management Service Contributorrole.
What Windows User Rights does the Azure agent require?
The agent runs under a service identity, usually on the Nodinite application server:
- Nodinite v7: the IIS application pool identity of the agent web site, set in the Nodinite Portal (Agents step).
- Nodinite v6 (legacy): the account of the Windows Service.
Use a domain account (preferred) or a local named account, and grant it access and run-time rights. Follow the 'How to set logon as a Windows service right' user guide for detailed instructions. All Azure access goes through the App Registration.
What Firewall settings are required for the Azure agent?
Where you install the Nodinite Azure Agent in relation to the Nodinite Monitoring Service and the Azure endpoints it calls determines your firewall configuration. The diagram shows every host involved, with the agent on its own server; each arrow starts at the side that opens the connection.
Key Vault, SCM sites) roEH(fa:fa-border-outer Event Hubs namespace) end subgraph "DNS Server" roDNS(fa:fa-signs-post DNS) end subgraph "Azure Service Bus Relay (optional)" roRelay(fa:fa-cloud Relay namespace) end roMonitoringService -->|"Agent site port (v7) / 8000 (v6)"| roNI roNI -->|"443"| roEntra roNI -->|"443"| roARM roNI -->|"443"| roGraph roNI -->|"443"| roData roNI -.->|"5671, 5672, 443"| roEH roNI -.->|"Proxy port"| roProxy roProxy -.->|"443"| roARM roNI -->|"53"| roDNS roMonitoringService -->|"53"| roDNS roMonitoringService -.->|"443, 5671-5672, 9350-9354"| roRelay roNI -.->|"443, 5671-5672, 9350-9354"| roRelay
Network diagram: the Monitoring Service calls the agent; the agent gets a token from Microsoft Entra ID and calls the Azure APIs over HTTPS, directly or through a corporate forward proxy. Dashed arrows are optional hops.
Note
When the agent runs on the Core Services Server (the typical installation), you need no firewall rule between the Monitoring Service and the agent. The Web Client and Web API reach the agent only through the Monitoring Service.
Between the Monitoring Service and the Azure agent
The Monitoring Service opens every connection; the agent never calls it. On Windows Server, Nodinite v7 hosts the agent as its own IIS web site, on a port you set per environment in the Nodinite Portal (Servers step, Agents step).
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Inbound | Core Services Server | Agent Server | TCP (HTTPS/HTTP) | Agent site port | Poll the agent, send configuration, run Remote Actions | v7. No fixed default; use the port set in the Portal. Only when the agent is on a remote server. Use HTTPS; see hardening |
| Inbound | Core Services Server | Agent Server | TCP | 8000 | Same, for Windows Service agents | ⚠️ v6 and earlier only (legacy MSI installer on remote servers) |
Option: Service Bus Relaying (cloud or hybrid)
Use Service Bus Relayed connections when Nodinite and the agent are on different networks. Both sides connect outbound to the Azure Relay namespace, so neither server needs an inbound rule. Nodinite uses the same principle as the on-premises data gateway; see 'Adjust communication settings for the on-premises data gateway' and the 'Azure Relay FAQs'.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | Azure Relay (*.servicebus.windows.net) |
TCP | 443 | HTTPS | All versions |
| Outbound | Agent Server | Azure Relay (*.servicebus.windows.net) |
TCP | 5671, 5672 | Secure AMQP | All versions |
| Outbound | Agent Server | Azure Relay (*.servicebus.windows.net) |
TCP | 9350 - 9354 | Net.TCP | All versions |
| Outbound | Core Services Server | Azure Relay (*.servicebus.windows.net) |
TCP | 443, 5671, 5672, 9350 - 9354 | Monitoring Service side of the relay | Same ports as the Agent Server |
Tip
For guidance on configuring, testing, and troubleshooting AMQP ports 5671 and 5672, see AMQP Port Configuration - 5671 and 5672.
Between the Azure agent and Microsoft Azure
The agent signs in with the App Registration (Service Principal) and works through the Azure SDKs, which call the Azure REST API under the hood (plus a few direct REST API calls where an SDK lacks a feature, and Microsoft Graph), and the data-plane endpoints of the resources you monitor. All traffic is outbound; Azure needs no inbound rule. Allow these hostnames (public Azure cloud), as listed in Azure Monitor endpoint access and firewall configuration:
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | Target (Microsoft Entra ID, login.microsoftonline.com) |
TCP (HTTPS) | 443 | Get access tokens for the App Registration | Always required |
| Outbound | Agent Server | Target (Azure Resource Manager, management.azure.com) |
TCP (HTTPS) | 443 | Discover and monitor resources, run Remote Actions | Always required |
| Outbound | Agent Server | Target (Microsoft Graph, graph.microsoft.com) |
TCP (HTTPS) | 443 | Read App Registration secrets, certificates, and permission grants | Only for App Registration monitoring |
| Outbound | Agent Server | Target (Azure Storage, *.blob.core.windows.net, *.file.core.windows.net, *.queue.core.windows.net, *.table.core.windows.net) |
TCP (HTTPS) | 443 | Read blobs, file shares, queues, and tables | Only for Storage accounts monitored by connection string or data-plane RBAC |
| Outbound | Agent Server | Target (Application Insights / Log Analytics, api.applicationinsights.io, api.loganalytics.io) |
TCP (HTTPS) | 443 | Run Kusto (KQL) queries | Only for Azure Functions monitoring, which requires Application Insights on the Function App, and for Kusto queries you configure against Application Insights or Log Analytics data you already have. No other feature uses Application Insights or Log Analytics |
| Outbound | Agent Server | Target (Event Hubs namespace, <namespace>.servicebus.windows.net) |
TCP (AMQP over TLS) | 5671, 5672 | Send messages to an Event Hub | Only for the Post action. See AMQP Port Configuration - 5671 and 5672 |
| Outbound | Agent Server | Target (Event Hubs namespace, <namespace>.servicebus.windows.net) |
TCP (HTTPS) | 443 | Event Hubs management operations, and AMQP over WebSockets | When only 443 is open, AMQP over WebSockets is the alternative; see the Event Hubs firewall FAQ |
| Outbound | Agent Server | Target (Key Vault, <vault>.vault.azure.net) |
TCP (HTTPS) | 443 | Read certificate metadata | Only for Key Vault monitoring |
| Outbound | Agent Server | Target (App Service SCM site, <app>.scm.azurewebsites.net) |
TCP (HTTPS) | 443 | Read Web Job History | Only for Web Jobs History, which requires SCM Basic Auth Publishing Credentials set to On |
| Outbound | Agent Server | Target (other resource data-plane endpoints) | TCP (HTTPS) | 443 | Read resource data | Only for resources monitored by connection string, for example Cosmos DB (*.documents.azure.com) |
| Inbound | Target (Microsoft Azure) | Agent Server | TCP | 443 | Response traffic | Automatically allowed by stateful firewall inspection |
Note
Azure resource-level network rules can still block the agent, even when your own firewall allows the traffic:
- Resource firewalls (Storage account firewall, Event Hubs IP filters, Function App access restrictions): add the Agent Server's outbound IP address or virtual network to the allow list.
- Private Link / Private Endpoint: the Agent Server needs a network path to the private endpoint (same VNet, VNet peering, VPN, or ExpressRoute).
- NSGs, Azure Firewall, or virtual appliances: allow outbound TCP 443 from the Agent Server to the hostnames above.
- Non-HTTPS protocols or custom ports (rare): verify the target service protocol and ports before you deploy.
Review the resource's Networking settings in the Azure portal, or ask your cloud network administrators.
Between the Azure agent and the corporate forward proxy
Required only when all outbound HTTPS traffic must pass a corporate forward proxy; see Corporate Forward Proxy Configuration. The proxy then opens the HTTPS connections to the Azure hostnames above.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | Corporate Forward Proxy | TCP (HTTP/HTTPS) | Proxy port | Route Azure API calls through the proxy | Port defined by your proxy (the value in proxyaddress) |
| Outbound | Corporate Forward Proxy | Target (Microsoft Azure) | TCP (HTTPS) | 443 | Forward the calls to Azure | Allow the hostnames listed above on the proxy |
Between the servers and DNS
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | DNS Server | TCP/UDP | 53 | Name resolution | Resolve the Azure hostnames, the proxy, the Core Services Server, and (with relaying) *.servicebus.windows.net. A local hosts file can replace DNS for internal names, but not for Azure hostnames |
| Outbound | Core Services Server | DNS Server | TCP/UDP | 53 | Name resolution | Resolve the Agent Server |
Important
Stateful Firewalls: Most Windows Firewall implementations are stateful, so response traffic for established outbound connections is allowed automatically. The inbound response rules above are for reference and troubleshooting.
Corporate Forward Proxy Configuration
In many enterprise environments, all outbound HTTP/HTTPS traffic from servers must route through a corporate forward proxy (such as a Zscaler, Squid, or Blue Coat appliance). The Azure Monitoring Agent makes outbound calls to Azure REST APIs, Azure Storage, and Application Insights on port 443, so this applies directly.
Note
Why Windows Services don't pick up proxy settings automatically: The agent runs as a Windows Service under a dedicated service account, not as an interactive user. Windows Services do not inherit the browser proxy settings from WinINET (Internet Explorer / system proxy settings). Without explicit proxy configuration, the .NET runtime inside the service process has no proxy configured and all outbound requests to Azure endpoints silently fail or time out, even though a browser on the same machine works fine.
.NET Framework 4.8 – exe.config approach
Add a <system.net> section to the agent's exe.config file. This instructs the .NET Framework runtime to route all WebRequest and HttpClient traffic through the proxy.
<system.net>
<defaultProxy>
<proxy
usesystemdefault="True"
proxyaddress="http://proxy.corp.example.com:3128"
bypassonlocal="True"
/>
<bypasslist>
<!-- Bypass the proxy for all internal corporate domains -->
<add address=".*\.internal\.example\.com$" />
<!-- Bypass for a specific public domain, but not certain subdomains -->
<add address="^(?!.*\.(api|service)\.example\.com$).*\.example\.com$" />
</bypasslist>
</defaultProxy>
</system.net>
| Setting | Purpose |
|---|---|
usesystemdefault="True" |
Fall back to the system proxy if the explicit address is unreachable |
proxyaddress |
Explicit proxy host and port |
bypassonlocal="True" |
Skip the proxy for addresses on the local subnet / single-label hostnames |
bypasslist |
Regex patterns for addresses that should bypass the proxy (e.g. internal DNS domains, specific public domains) |
Important
The
bypasslistentries are .NET regular expressions, not simple wildcards. Test your patterns carefully — an overly broad bypass may expose traffic to the wrong route, and an overly narrow one may route internal traffic through the proxy unnecessarily.
What Azure Services does the Functions Monitoring require?
You must enable Application Insights for Azure Functions to use them with Nodinite Functions Monitoring.
The agent uses custom Kusto queries to get logs and evaluate the state and metrics of executions.
Microsoft covers this topic in the How to configure monitoring for Azure Functions user guide.
Frequently asked questions
Additional solutions to common problems and the Nodinite Azure Monitoring Agent FAQ appear in the Troubleshooting user guide.
How do I enable Logging using Azure API Management Services?
Review the APIMGMT - Logging user guide to enable Nodinite Logging with Azure API Management Service APIs.
How do I enable Logging using Azure Functions?
Review the Serilog user guide to enable Nodinite Logging with Azure Functions.
How do I monitor and log Azure Logic Apps?
Use the separate Azure Logic Apps Logging and Monitoring Agent; it has its own prerequisites. For Azure Service Bus, use the Message Queueing Agent; for Azure SQL, use the Database Monitoring Agent.