You are here

Azure Linux VMs Monitoring

Requires Opsview Cloud or Opsview Monitor 6
check_circle
Opsview Supported

Host Template: Cloud - Azure - Linux VMs

This host template is one of 31 developed by Opsview to provide the most comprehensive Azure monitoring in the industry.

Azure Linux VMs allow you to monitor various performance metrics for Linux virtual machines, these include metrics for Logical Disk, Memory, Processor, System and Heartbeat. If installed, This Host Template will provide a set of metrics for Linux VMs.

Configuring it requires administrator-level permissions for Azure, or the help of an administrator. 

How does This Host Template differ from OS - Unix Base?
Using OS - Unix Base requires the installation of an Opsview Agent for Linux on the target VM - this may be computationally heavy and intrusive for use with small VMs or highly dynamic environments, or where Microsoft solutions are preferred. However, OS - Unix Base does not require Azure administrator permissions, only the ability to launch and configure a VM with internet connectivity and adjust security groups to let the agent communicate with the Opsview Master.

What does This Host Template offer above Azure - Virtual Machines?
The Azure - Virtual Machines Host Template offers the ability to track VM read/write operations, network traffic in and out, and CPU load. These metrics are gathered via Azure API calls using an administrator defined "Application" or "Service Principal". This Host Template complements Azure - Virtual Machines by offering extended metrics including memory utilization, memory swap space utilization, processor time, disk space, heartbeats, and restart/shutdown history. This requires the additional use a Microsoft-approved, open source log analytics agent, called the Log Analytics VM Extension, which Azure can auto-install on your target VM when you enable Azure Log Analytics.

This Host Template allows you to monitor the performance metrics for Linux virtual machines - in particular memory utilization, memory swap space utilization, processor time, disk space, heartbeats, and restart/shutdown history.

This Host Template includes the following Service Checks:

Service Check Name Description Default Thresholds (Warning, Critical) UOM
Azure - Linux VM - Memory The percentage of used memory and the available memory in bytes [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Memory Swap Space The percentage of swap space used [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Processor Time The percentage of processor time [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Processor Privileged Time The percentage of processor privileged time [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Logical Disk Space The percentage of used logical disk space [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - System Uptime The system uptime [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Heartbeat The time between the last two heartbeats [Default Timespan = 5mins, Default Check Interval = 5mins] N/A NA
Azure - Linux VM - Restarts The number of restarts, and information on the user and command invoke history [Default Timespan = 1440mins, Default Check Interval = 1440mins] N/A NA
Azure - Linux VM - Shutdowns The number of shutdowns, and information on the user and command invoke history [Default Timespan = 1440mins, Default Check Interval = 1440mins] N/A NA

NOTE: The "Default Timespan" given for these Service Checks refers to the time period we use when retrieving metrics from Azure.

NOTE: See details about Nagios thresholds here.

Setup Azure Log Analytics

This Opspack utilises Azure Log Analytics to collect data directly from your Azure Virtual Machines. To enable Azure Log Analytics follow the steps outlined below. If you already have an Azure Workspace, you can skip Step 1.

Step 1: Create a Workspace

In the Azure portal, click All Services and filter for Log Analytics workspaces. Select Log Analytics workspaces.

Select All Services

Select Log Analytics workspaces

Click Create, and then fill in the fields as described:

  • Select a Subscription from the drop-down list.
  • Select an existing Resource Group or create a new one.
  • Provide a Name such as DefaultWorkspace.
  • Select the Region your VMs are deployed to.
  • Optionally, you can click Next : Pricing tier to select the Pricing Tier you use.

Create Log Analytics Workspace

After providing the required fields click Review + Create and then Create.

From the list of Log Analytics workspaces, select the workspace you just created.

From the left-hand menu, select Overview.

Make a note of the Workspace ID as this will be required when configuring the Opspack.

Make a note of the Workspace ID

Step 2: Enable the Log Analytics VM Extension

Log Analytics can be enabled on existing Azure Linux and Windows VMs using the Log Analytics agent.

In the Azure portal, click All Services and filter for Log Analytics workspaces. Select Log Analytics workspaces.

Click All service

Select Log Analytics workspaces

From the list of Log Analytics workspaces, select the workspace you created earlier.

From the left-hand menu, under Workspace Data Sources, select Virtual Machines.

Azure Log Analytics Virtual Machines

From the list of virtual machines, select the virtual machine you wish to install the agent on. Notice that the Log Analytics Connection for the VM indicates that it is Not connected.

Log Analytics connection is not connected

Select the virtual machine and then click Connect. The agent will be installed and configured for your Log Analytics workspace. Please note, this process may take a few minutes to complete.

Azure Log Analytics Connect

After the agent has been installed and connected, the Log Analytics Connection will be updated to This workspace.

Log Analytics connection updated to This Workspace

Step 3: Collect performance data

In the Azure portal, click All Services and filter for Log Analytics workspaces. Select Log Analytics workspaces.

Select All Services

Select Log Analytics workspaces

From the list of Log Analytics workspaces, select the workspace you created earlier.

From the workspace's left menu, select Agents configuration.

Select Agents Configuration

Select Linux Performance Counters.

Enable the following performance counters, by clicking + Add performance counter, then searching for and selecting them from the dropdown list:

  • Logical Disk\Free Megabytes
  • Logical Disk\% Used Space
  • Memory\Available MBytes Memory
  • Memory\% Used Memory
  • Memory\% Used Swap Space
  • Processor\% Processor Time
  • Processor\% Privileged Time
  • System\Uptime

Ensure each Instance field contains an asterisk * as shown.

After adding the required performance counters, click Apply to save the configuration.

Click Apply to save the configuration

Then select the Syslog tab.

Enable the following facilities, by clicking + Add facility, then searching for and selecting them from the dropdown list:

  • syslog
  • kern
  • authpriv
  • daemon

Make sure all checkboxes under Emergency, Alert, Critical, Error, Warning, Notice, Info, Debug are ticked as shown.

Make sure checkboxes are ticked.

Finally, select the Storage Account Logs option under your workspace, and add the storage account related to your Virtual Machine.

Azure Log Analytics Storage Account Logs

Verify Log Analytics Agent is running correctly (optional)

To verify the agent is connected and operating correctly, run the following command on your Azure VM.

/opt/microsoft/omsagent/bin/omsadmin.sh -l

It should return a status similar to:

Primary Workspace: <workspaceId> Status: Onboarded(OMSAgent Running)

If the Agent is not connected to a workspace, connect it to your chosen workspace using the following command.

/opt/microsoft/omsagent/bin/omsadmin.sh -w <workspace id> -s <shared key> [-d <top level domain>]

If the agent is connected but not running, restart the agent using the following command.

sudo /opt/microsoft/omsagent/bin/service_control restart

Finally, verify the agent is operating correctly by running the following command again.

/opt/microsoft/omsagent/bin/omsadmin.sh -l

Usage Instructions

To use this Host Template you will need to provide access to the subscription you wish to monitor

Navigate to the Subscriptions section and select your Subscription.

In the Subscription to be monitored, click Access Control (IAM).

Then click the Add button, select the required role and select the application, once for each of the following roles:

  • Reader

Access Control

Add Reader role

Repeat these steps for each subscription you wish to monitor.

Step 1: Add this Host Template

Add the Cloud - Azure - Linux VMs Host Template to your Opsview Monitor host. If the resource you're monitoring has no hostname or public IP, then open the Advanced settings pane and change Host Check Command to Always assumed to be UP.

For more information, refer to Opsview Knowledge Center - Adding Host Templates to Hosts.

Step 2: Add and configure variables required for this Host Template

The Service Checks in this Host Template use the following variables, and they will be added to your Opsview Monitor instance when you import the Opspack:

AZURE_CREDENTIALS

The Value is not used and therefore can be set to anything. Override the arguments with your Azure Credentials.

Parameter Position in Variable Name Description
--subscription-id Arg1 Subscription ID The Subscription ID of your Azure Subscription
--client-id Arg2 Client ID The Client ID of your Azure Subscription
--secret-key Arg3 Secret Key The Secret Key of your Azure Subscription
--tenant-id Arg4 Tenant ID The Tenant ID of your Azure Subscription

AZURE_RESOURCE_DETAILS

The Value is not used and therefore can be set to anything. Override the arguments with your Azure Resource Details.

Parameter Position in Variable Name Description
--resource-group Arg1 Resource Group Name of the Azure resource group to be monitored
--resource-name Arg2 Resource Name Name of the Azure resource to be monitored

AZURE_LOG_ANALYTICS_DETAILS

The Value is not used and therefore can be set to anything. Override the arguments with your Log Analytics Details.

Parameter Position in Variable Name Description
--workspace-id Arg1 Workspace ID The Workspace ID for Log Analytics
--log-timespan Arg2 Log Query Timespan (Minutes) The Timespan for counting VM Restart and Shutdown events, in minutes

AZURE_COMPUTER_NAME

Set this value to the hostname of the Azure VM you want to monitor if it is different from the resource name. If your VM has been joined to a domain you will need to specify the FQDN.

Parameter Position in Variable Name Description
--host-name Value Computer Name Hostname of your Azure Computer (This will take precedence over the resource name variable)

For more information, refer to Opsview Knowledge Center - Adding Variables to Hosts.

For mode-specific help, run the plugin with the -h -m <mode> flags. This will list the required and optional Variable Arguments for that mode. The appropriate mode for each Service Check is listed here:

Service Check Name Mode
Azure - Linux VM - Memory Az.Linux.VM.Memory
Azure - Linux VM - Memory Swap Space Az.Linux.VM.Memory.Swap.Space
Azure - Linux VM - Processor Time Az.Linux.VM.Processor.Time
Azure - Linux VM - Processor Privileged Time Az.Linux.VM.Processor.Privileged.Time
Azure - Linux VM - Logical Disk Space Az.Linux.VM.Logical.Disk.Space
Azure - Linux VM - System Uptime Az.Linux.VM.System.Uptime
Azure - Linux VM - Heartbeat Az.Linux.VM.Heartbeat
Azure - Linux VM - Restarts Az.Linux.VM.Restarts
Azure - Linux VM - Shutdowns Az.Linux.VM.Shutdowns

Step 3: Apply changes and the system will now be monitored

Azure Linux VMs Service Checks