Skip to content

Installing in Microsoft Azure

Use this procedure to install the Zenoss Cloud Collector virtual appliance in the Microsoft Azure environment.


The virtual appliance image for Microsoft Azure is available in Zenoss' Shared Image Gallery. To install the image, you need access privileges, which we grant at your request. Simply open a Zenoss Support ticket with a list of the email addresses of one or more Azure accounts. After we grant access, Azure sends an invitation to join our gallery to each address you specify. Accept the invitation by clicking the link in the email, and then you are ready to begin this procedure.


To perform this task, you need:

  • A Microsoft Azure account with permission to create virtual machines.
  • Access privileges to Zenoss' Shared Image Gallery (see the preceding note).
  • A workstation with the Azure CLI tool installed locally.

    Cloud Shell CLI not supported

    Attempts to install the collector with the Azure Cloud Shell fail, because cross-tenant shared galleries are not supported in Microsoft's Azure Portal. Specifically, Microsoft Support says:

    Azure Portal view is tenant wide based. So you see resources per tenant. It is expected to not see the image versions on the 2nd tenant using Azure Portal. The across tenant feature can be only used via PS or CLI.

    Therefore, the Azure CLI must be installed and used locally. The following screen capture shows the error message from an attempt to install the collector appliance with Azure Cloud Shell:



This procedure is based on the Azure documentation at this location and follows PowerShell conventions. In particular, variable declarations assume a PowerShell environment ($VAR="value"). For shells such as Bash, adjust the declarations as required (VAR="value").

Follow these steps:

  1. Open a shell that has Azure CLI installed.

  2. Log in to Azure.

    The following command opens a browser for the login:

    az login
  3. Create a variable for the version of the Azure image to deploy.

    Zenoss updates this procedure each time a new collector image is released. Always refer to these instructions when deploying a new virtual machine.

  4. Create a variable for the Azure location of your collector.

    For example, eastus.

  5. Create a variable for the virtual machine size.

    List the sizes available in the location you selected in the previous step. Choose one from the list and set the variable as desired.

    For example, standard_D4as_v4 meets the minimum requirements for Zenoss Cloud collectors.

    az vm list-sizes --location $LOCATION --query [].name | more
  6. Create a variable for a resource group in the selected location.

    az group list --output json --query "[?location=='$LOCATION'].name"
    $RESOURCE_GROUP="<name of chosen group from list above>"
  7. Create a variable for a name for your appliance.

  8. Create a variable for the location of the image in Zenoss' gallery.

    Copy the following declaration and paste it in your shell:

  9. Create the new virtual machine.

    The following command includes only required flags, but you may include additional flags as desired for your Azure environment. For example, to skip assigning a public IP address, you would add --public-ip-address '""'; to configure networking, add the --subnet and --vnet-name flags; and so on. For more information, please refer to Microsoft documentation.

    az vm create `
      --resource-group "$RESOURCE_GROUP" `
      --name "$VMNAME" `
      --image "$GALLERY_PATH/$VERSION" `
      --enable-agent false `
      --size "$SIZE" `

    Timeout error

    Due to a limitation of the Azure CLI tool, the preceding command returns an error message indicating a timeout and that provisioning of the virtual machine has failed. This is a false positive error and should be ignored; the deploy succeeds. Here is an example of the false positive error message:

    {"status":"Failed","error":{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see for usage details.","details":[{"code":"Conflict","message":"{\r\n  \"status\": \"Failed\",\r\n  \"error\": {\r\n    \"code\": \"ResourceDeploymentFailure\",\r\n    \"message\": \"The resource operation completed with terminal provisioning state 'Failed'.\",\r\n    \"details\": [\r\n      {\r\n        \"code\": \"OSProvisioningTimedOut\",\r\n        \"message\": \"OS Provisioning failure has reached terminal state and is non-recoverable for VM '<vmname>'. Consider deleting and recreating this virtual machine. Also, make sure the image has been properly prepared (generalized).\\r\\n * Instructions for Windows: \\r\\n * Instructions for Linux: \\r\\n \\r\\nAdditional Details: OS Provisioning for VM '<vmname>' did not finish in the allotted time. The VM may still finish provisioning successfully. Please check provisioning state later. Also, make sure the image has been properly prepared (generalized).\\r\\n * Instructions for Windows: \\r\\n * Instructions for Linux: \\r\\n * If you are deploying more than 20 Virtual Machines concurrently, consider moving your custom image to shared image gallery. Please refer to for the same.\"\r\n      }\r\n    ]\r\n  }\r\n}"}]}
  10. Wait 10 minutes, and then verify that your virtual machine exists in the resource group you chose.

    az vm show --name $VMNAME --resource-group $RESOURCE_GROUP

    When the new machine is running, you are ready to proceed to the next step.

Next step

Configure the login password and connect to a Collection Zone (Initializing a collector appliance).