You are here

Integrations

Azure - IOT

Download version    6.0    5.x

Included in Opsview Monitor 5.x
Included in Opsview Monitor 6.0
check_circle
Opsview Supported

Azure - Internet of Things Opspack

Azure’s IoT Suite enables users to capture and analyze untapped data to improve organizational efficiency. With everything from remote monitoring to analysis and insights on untapped data, the Azure IoT Suite can help transform your business and easily connect all types of devices.

What You Can Monitor

Opsview Monitor's IoT Opspack provides all the metrics to track your IoT devices. Opsview Monitor empowers developers to monitor the full lifecycle of your IoT deployments by receiving cloud-to-device service metrics.

Service Checks

Service Check Description
d2c.telemetry.ingress.allProtocol Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
d2c.telemetry.ingress.success Number of device-to-cloud telemetry messages sent successfully to your IoT hub
c2d.commands.egress.complete.success Number of cloud-to-device commands completed successfully by the device
c2d.commands.egress.abandon.success Number of cloud-to-device commands abandoned by the device
c2d.commands.egress.reject.success Number of cloud-to-device commands rejected by the device
devices.totalDevices Number of devices registered to your IoT hub
devices.connectedDevices.allProtocol Number of devices connected to your IoT hub
d2c.telemetry.egress.success Number of times messages were successfully written to endpoints (total)
d2c.telemetry.egress.dropped Number of messages dropped because they did not match any routes and the fallback route was disabled
d2c.telemetry.egress.orphaned The count of messages not matching any routes including the fallback route
d2c.telemetry.egress.invalid The count of messages not delivered due to incompatibility with the endpoint
d2c.telemetry.egress.fallback Number of messages written to the fallback endpoint
d2c.endpoints.egress.eventHubs Number of times messages were successfully written to Event Hub endpoints
d2c.endpoints.latency.eventHubs The average latency between message ingress to the IoT hub and message ingress into an Event Hub endpoint, in milliseconds
d2c.endpoints.egress.serviceBusQueues Number of times messages were successfully written to Service Bus Queue endpoints
d2c.endpoints.latency.serviceBusQueues The average latency between message ingress to the IoT hub and message ingress into a Service Bus Queue endpoint, in milliseconds
d2c.endpoints.egress.serviceBusTopics Number of times messages were successfully written to Service Bus Topic endpoints
d2c.endpoints.latency.serviceBusTopics The average latency between message ingress to the IoT hub and message ingress into a Service Bus Topic endpoint, in milliseconds
d2c.endpoints.egress.builtIn.events Number of times messages were successfully written to the built-in endpoint (messages/events)
d2c.endpoints.latency.builtIn.events The average latency between message ingress to the IoT hub and message ingress into the built-in endpoint (messages/events), in milliseconds
d2c.twin.read.success The count of all successful device-initiated twin reads.
d2c.twin.read.failure The count of all failed device-initiated twin reads.
d2c.twin.read.size The average, min, and max of all successful device-initiated twin reads.
d2c.twin.update.success The count of all successful device-initiated twin updates.
d2c.twin.update.failure The count of all failed device-initiated twin updates.
d2c.twin.update.size The average, min, and max size of all successful device-initiated twin updates.
c2d.methods.success The count of all successful direct method calls.
c2d.methods.failure The count of all failed direct method calls.
c2d.methods.requestSize The average, min, and max of all successful direct method requests.
c2d.methods.responseSize The average, min, and max of all successful direct method responses.
c2d.twin.read.success The count of all successful back-end-initiated twin reads.
c2d.twin.read.failure The count of all failed back-end-initiated twin reads.
c2d.twin.read.size The average, min, and max of all successful back-end-initiated twin reads.
c2d.twin.update.success The count of all successful back-end-initiated twin updates.
c2d.twin.update.failure The count of all failed back-end-initiated twin updates.
c2d.twin.update.size The average, min, and max size of all successful back-end-initiated twin updates.
twinQueries.success The count of all successful twin queries.
twinQueries.failure The count of all failed twin queries.
twinQueries.resultSize The average, min, and max of the result size of all successful twin queries.
jobs.createTwinUpdateJob.success The count of all successful creation of twin update jobs.
jobs.createTwinUpdateJob.failure The count of all failed creation of twin update jobs.
jobs.createDirectMethodJob.success The count of all successful creation of direct method invocation jobs.
jobs.createDirectMethodJob.failure The count of all failed creation of direct method invocation jobs.
jobs.listJobs.success The count of all successful calls to list jobs.
jobs.listJobs.failure The count of all failed calls to list jobs.
jobs.cancelJob.success The count of all successful calls to cancel a job.
jobs.cancelJob.failure The count of all failed calls to cancel a job.
jobs.queryJobs.success The count of all successful calls to query jobs.
jobs.queryJobs.failure The count of all failed calls to query jobs.
jobs.completed The count of all completed jobs.
jobs.failed The count of all failed jobs.
d2c.telemetry.ingress.sendThrottle d2c Telemetry Ingress SendThrottle
dailyMessageQuotaUsed Daily Message Quota Used

Azure - Internet of Things Opspack

Azure’s IoT Suite enables users to capture and analyze untapped data to improve organizational efficiency. With everything from remote monitoring to analysis and insights on untapped data, the Azure IoT Suite can help transform your business and easily connect all types of devices.

What You Can Monitor

Opsview Monitor's IoT Opspack provides all the metrics to track your IoT devices. Opsview Monitor empowers developers to monitor the full lifecycle of your IoT deployments by receiving cloud-to-device service metrics.

Service Checks

Service Check Description
d2c.telemetry.ingress.allProtocol Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
d2c.telemetry.ingress.success Number of device-to-cloud telemetry messages sent successfully to your IoT hub
c2d.commands.egress.complete.success Number of cloud-to-device commands completed successfully by the device
c2d.commands.egress.abandon.success Number of cloud-to-device commands abandoned by the device
c2d.commands.egress.reject.success Number of cloud-to-device commands rejected by the device
devices.totalDevices Number of devices registered to your IoT hub
devices.connectedDevices.allProtocol Number of devices connected to your IoT hub
d2c.telemetry.egress.success Number of times messages were successfully written to endpoints (total)
d2c.telemetry.egress.dropped Number of messages dropped because they did not match any routes and the fallback route was disabled
d2c.telemetry.egress.orphaned The count of messages not matching any routes including the fallback route
d2c.telemetry.egress.invalid The count of messages not delivered due to incompatibility with the endpoint
d2c.telemetry.egress.fallback Number of messages written to the fallback endpoint
d2c.endpoints.egress.eventHubs Number of times messages were successfully written to Event Hub endpoints
d2c.endpoints.latency.eventHubs The average latency between message ingress to the IoT hub and message ingress into an Event Hub endpoint, in milliseconds
d2c.endpoints.egress.serviceBusQueues Number of times messages were successfully written to Service Bus Queue endpoints
d2c.endpoints.latency.serviceBusQueues The average latency between message ingress to the IoT hub and message ingress into a Service Bus Queue endpoint, in milliseconds
d2c.endpoints.egress.serviceBusTopics Number of times messages were successfully written to Service Bus Topic endpoints
d2c.endpoints.latency.serviceBusTopics The average latency between message ingress to the IoT hub and message ingress into a Service Bus Topic endpoint, in milliseconds
d2c.endpoints.egress.builtIn.events Number of times messages were successfully written to the built-in endpoint (messages/events)
d2c.endpoints.latency.builtIn.events The average latency between message ingress to the IoT hub and message ingress into the built-in endpoint (messages/events), in milliseconds
d2c.twin.read.success The count of all successful device-initiated twin reads.
d2c.twin.read.failure The count of all failed device-initiated twin reads.
d2c.twin.read.size The average, min, and max of all successful device-initiated twin reads.
d2c.twin.update.success The count of all successful device-initiated twin updates.
d2c.twin.update.failure The count of all failed device-initiated twin updates.
d2c.twin.update.size The average, min, and max size of all successful device-initiated twin updates.
c2d.methods.success The count of all successful direct method calls.
c2d.methods.failure The count of all failed direct method calls.
c2d.methods.requestSize The average, min, and max of all successful direct method requests.
c2d.methods.responseSize The average, min, and max of all successful direct method responses.
c2d.twin.read.success The count of all successful back-end-initiated twin reads.
c2d.twin.read.failure The count of all failed back-end-initiated twin reads.
c2d.twin.read.size The average, min, and max of all successful back-end-initiated twin reads.
c2d.twin.update.success The count of all successful back-end-initiated twin updates.
c2d.twin.update.failure The count of all failed back-end-initiated twin updates.
c2d.twin.update.size The average, min, and max size of all successful back-end-initiated twin updates.
twinQueries.success The count of all successful twin queries.
twinQueries.failure The count of all failed twin queries.
twinQueries.resultSize The average, min, and max of the result size of all successful twin queries.
jobs.createTwinUpdateJob.success The count of all successful creation of twin update jobs.
jobs.createTwinUpdateJob.failure The count of all failed creation of twin update jobs.
jobs.createDirectMethodJob.success The count of all successful creation of direct method invocation jobs.
jobs.createDirectMethodJob.failure The count of all failed creation of direct method invocation jobs.
jobs.listJobs.success The count of all successful calls to list jobs.
jobs.listJobs.failure The count of all failed calls to list jobs.
jobs.cancelJob.success The count of all successful calls to cancel a job.
jobs.cancelJob.failure The count of all failed calls to cancel a job.
jobs.queryJobs.success The count of all successful calls to query jobs.
jobs.queryJobs.failure The count of all failed calls to query jobs.
jobs.completed The count of all completed jobs.
jobs.failed The count of all failed jobs.
d2c.telemetry.ingress.sendThrottle d2c Telemetry Ingress SendThrottle
dailyMessageQuotaUsed Daily Message Quota Used

Prerequisites

The monitoring plugin for this Opspack has been tested with Python 2.7. In order for the Opspack to run, you will need to have some Python packages installed by running the pip python package tool.

If a cryptography error occurs when trying to install the Azure packages, you can run the commands which should fix the problem.

Debian and Ubuntu

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip

CentOS and RHEL

sudo yum install gcc libffi-devel python-devel openssl-devel python-pip

Common

When python-pip is installed, you can then run:

sudo pip install --upgrade pip==9.0.2
sudo pip install --upgrade setuptools
sudo pip install --upgrade requests
sudo pip install nagiosplugin
sudo pip install azure
sudo pip install azure-monitor

Setup Azure for Monitoring

To monitor you Azure environment, you need to configure it for monitoring

This requires Administrator access on Azure. You need to retrieve the following credentials:

  • Subscription ID
  • Tenant/Directory ID
  • Client/Application ID
  • Secret Key

Step 1: Find Subscription ID

The Subscription ID can be found in the Subscriptions section under the All services section from the Azure dashboard

Find Azure Subscription ID

Find Azure Subscription ID

Step 2 : Find the Tenant/Directory ID

The Tenant/Directory ID can be found in the Azure Active Directory under the Properties section from the Azure dashboard

Find Azure Tenant/Directory ID

Step 3: Find the Client/Application ID for your application

You need to create and register your application if you haven't already. Use the following documentation from Microsoft: Create an Azure Active Directory application

The Client/Application ID can be found in Azure Active Directory under the App registrations section from the Azure dashboard

Find Azure Client/Application ID

Step 4: Generate the Secret Key for your application

You will need to create a Secret Key for your application, once this has been created its value will be hidden so save the value during creation

To create the Secret Key, select your application from the list, select the Settings within your application and then select the Keys option

There you can create a new key by adding the description and expiration period and the value will be generated

Create Secret Key

Step 5: Provide access to the subscription you wish to monitor

Navigate to the Subscriptions section and select the Subscription you selected before

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

Then click the Add button, select Reader and select the application

Add Subscription to Application

Add Subscription to Application

If you are running more than one subscription these steps will need to be done for each one you wish to monitor

Setup and Configuration

To configure and utilize this Opspack, you simply need to add the 'Cloud - Azure - Virtual Machines' Opspack to your Opsview Monitor system

Step 1: Add the host template

Add Host Template

Step 2: Add and configure variables required for this host

Add 'AZURE_CREDENTIALS' to the host and set the Resource Group as its variable value

Then override the Subscription ID, Client ID, Secret Key and Tenant ID

Add Variables

Step 3: Reload and the system will now be monitored

View Output

Prerequisites

The monitoring plugin for this Opspack has been tested with Python 2.7. In order for the Opspack to run, you will need to have some Python packages installed by running the pip python package tool.

If a cryptography error occurs when trying to install the Azure packages, you can run the commands which should fix the problem.

Debian and Ubuntu

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip

CentOS and RHEL

sudo yum install gcc libffi-devel python-devel openssl-devel python-pip

Common

When python-pip is installed, you can then run:

sudo pip install --upgrade pip==9.0.2
sudo pip install --upgrade setuptools
sudo pip install --upgrade requests
sudo pip install nagiosplugin
sudo pip install azure
sudo pip install azure-monitor

Setup Azure for Monitoring

To monitor you Azure environment, you need to configure it for monitoring

This requires Administrator access on Azure. You need to retrieve the following credentials:

  • Subscription ID
  • Tenant/Directory ID
  • Client/Application ID
  • Secret Key

Step 1: Find Subscription ID

The Subscription ID can be found in the Subscriptions section under the All services section from the Azure dashboard

Find Azure Subscription ID

Find Azure Subscription ID

Step 2 : Find the Tenant/Directory ID

The Tenant/Directory ID can be found in the Azure Active Directory under the Properties section from the Azure dashboard

Find Azure Tenant/Directory ID

Step 3: Find the Client/Application ID for your application

You need to create and register your application if you haven't already. Use the following documentation from Microsoft: Create an Azure Active Directory application

The Client/Application ID can be found in Azure Active Directory under the App registrations section from the Azure dashboard

Find Azure Client/Application ID

Step 4: Generate the Secret Key for your application

You will need to create a Secret Key for your application, once this has been created its value will be hidden so save the value during creation

To create the Secret Key, select your application from the list, select the Settings within your application and then select the Keys option

There you can create a new key by adding the description and expiration period and the value will be generated

Create Secret Key

Step 5: Provide access to the subscription you wish to monitor

Navigate to the Subscriptions section and select the Subscription you selected before

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

Then click the Add button, select Reader and select the application

Add Subscription to Application

Add Subscription to Application

If you are running more than one subscription these steps will need to be done for each one you wish to monitor

Setup and Configuration

To configure and utilize this Opspack, you simply need to add the 'Cloud - Azure - Virtual Machines' Opspack to your Opsview Monitor system

Step 1: Add the host template

Add Host Template

Step 2: Add and configure variables required for this host

Add 'AZURE_CREDENTIALS' to the host and set the Resource Group as its variable value

Then override the Subscription ID, Client ID, Secret Key and Tenant ID

Add Variables

Step 3: Reload and the system will now be monitored

View Output

v1.1-opsview-5

ODI-476 - Bug fix for plugin not consistently returning results

Due to timezone issues, the plugin would occasionally not return results. This is now fixed.

ODI-536 - Plugin change '-H' IP address to match MS API

IP address obtained (from autodiscovery) now matches the host via Azure API.

v1.0-opsview-5

ODI-5 - Azure Opspacks

Initial release for Azure Opspacks

v2.0-opsview-6

ODI-1154 Release Opspacks for Opsview Monitor 6.0

Initial release of Opspack to work with Opsview Monitor 6.0