Submit a ticketCall us

AnnouncementsAre You “Flying Blind?”

When it comes to your complex IT infrastructure, you want to ensure you have a good grasp of what’s going on to avoid any fire drills that result from guesswork. Read our white paper to learn how proactively monitoring your IT environment can help your organization while giving you peace of mind.

Get your free white paper.

Home > Success Center > Log & Event Manager (LEM) > Log & Event Manager (LEM) Documentation > Log & Event Manager Installation Guide > Deploy LEM to Microsoft Azure

Deploy LEM to Microsoft Azure

SolarWinds Log & Event Manager (LEM) is not currently available in the Azure Marketplace—it’s deployed manually by users. Deployment is initiated via Azure CLI 2.0, and can be installed on Windows, macOS, Linux (also Windows Subsystem for Linux), and then run in a prepared Docker image.

This guide covers deployment from Windows (PowerShell) and Linux (Bash—also applies to Docker).

SolarWinds provides a ZIP archive containing two VHD files. The first file (SolarWinds-LEM-Azure-6.6.0-disk1-system.vhd) contains an operating system based on Linux Debian. The second file (SolarWinds-LEM-Azure-6.6.0-disk2-data.vhd) serves as the data partition. The layout is similar to the VMware and Hyper-V appliance.

Download this guide as a PDF.

Deployment Overview

Azure CLI 2.0 must be installed on Windows or Linux systems. After CLI is authenticated, users can control Azure via API by executing CLI commands. Commands are executed remotely.

First, the VHDs must be uploaded to the Azure Blob Storage. Second, disks are created from the uploaded VHD files. The created disks are attached to the new virtual machine: Log & Event Manager Appliance.

The following sections describe how to create an Azure virtual machine.

LEM sizing

For sizing criteria, SolarWinds use three basic sizes of LEM deployment: small, medium, and large. For more details about sizing, see the LEM system requirements.

Azure virtual machine size overview

Virtual machine size basically defines the amount of resources it could consume. The machine size defines the number of CPU cores, memory size, temporary disk size, etc. The size of the virtual machine can be changed anytime, even after the machine is deployed.

The cost of the size may change within different locations/regions. A region is the geographic area grouping data centers in that location. It gives users the ability to run applications where needed.

Find more information on the Microsoft website:

Azure storage sizing overview

There are two types of disks in Azure: managed and unmanaged. For production systems, it’s recommended to only use managed disks since replication, etc. is handled automatically. The procedures in this document describe creating managed disks.

Managed disks

Azure offers three types of managed disks: Premium SSD, Standard SSD (Preview), and Standard HDD. Managed disks are only available for Locally Redundant Storage (LRS).

The total cost of the disk depends on a few factors. For more information, see Managed disks pricing on the Microsoft website.

Recommended VM size and storage for LEM

Always check the SolarWinds LEM VM hardware requirements page and Azure sizing guidelines to help determine the appropriate size. Consider the recommendations below for your deployment.

Recommended disk size

SolarWinds recommends Standard SSD (Preview) and Standard HDD disks for small and medium deployments, and premium SSD for large deployments.

Recommended machine size

Before defining your machine size, see the Linux VM in Azure size guidelines on the Microsoft website in addition to the LEM system requirements.

Deploy LEM via Azure CLI 2.0

Follow the procedures below to deploy LEM via Azure CLI 2.0:

  1. Create and manage storage accounts and define resource groups and locations.
  2. Get the storage access key.
  3. Deploy VHD disks to the cloud.

Prerequisites

LEM is deployed via Azure CLI 2.0. It’s a cross-platform command line tool by Microsoft. To get started with the CLI, see Get started with Azure CLI 2.0 on the Microsoft website.

To install CLI on Windows, Linux, or run from the Docker image, see Azure CLI 2.0 on the Microsoft website.

When installed, log in with any authentication option.

Running the az login command is recommended.

For more details and other options, see Sign in with Azure CLI 2.0 on the Microsoft website.

Create and manage storage accounts, resource groups, and locations

A storage account in Azure is a namespace that provides access and storage data objects. The storage account name is needed for most of the commands listed below. We’ll save the string into the environment variable which is read by commands (if the environment variable doesn’t exist, you must specify the storage account for each command requiring the name). Find more information about Azure storage accounts on the Microsoft website.

A resource group is a space that holds related manager resources. Find more information about resource group terminology on the Microsoft website.

To create or manage storage accounts, see Create a storage account on the Microsoft website.

If your storage account already exists, you can list it in Azure CLI by running the following command:

az storage account list

Also, the resource group name and location are present in JSON output. For more details about listing the storage account in the command line, see the az storage account list topic on the Microsoft website.

Storage accounts, locations, and resource groups are also available in the Azure web user interface under Home > Storage accounts.

The storage account name, location, and resource group names are needed for running additional commands. List them and maintain for later use.

Get the storage access key

The storage account key is a 512b access key used for authentication when accessing the storage account. It’s generated automatically when the storage account is created. For details about keys, regeneration of the keys, etc., see the az storage account list topic on the Microsoft website.

List storage account keys in Azure CLI with the command below:

az storage account keys list --account-name <ACCOUNT_NAME> --resource-group <RESOURCE_GROUP>

Replace the ACCOUNT_NAME and RESOURCE_GROUP strings with the storage account and resource group names obtained in the previous section. The command will list two storage account keys in JSON format (default format, but can be changed): primary (key1) and secondary (key2). You can use either key.

Deploy VHD disks to the cloud

Before deployment, locate the following information you obtained in the previous sections. Each value stored in a variable in the following commands is typed as a token (for example, <TOKEN>), and should be replaced with the code snippets below. Replace whole token string, including the angle brackets.

  • Storage account name (<STORAGE_ACCOUNT>)
  • Storage account key (<ACCESS_KEY>)
  • Resource group (<RESOURCE_GROUP>)
  • Location (<LOCATION>)
  • Storage size - sku (<SKU>)
  • Virtual machine size (<VM_SIZE>)

If you are missing anything from the list above, review the previous sections.

Additionally, the virtual machine name and disk names should be considered before deployment.

  • Virtual machine name (<VM_NAME>)
  • Disk 1 (system) name (<DISK1>)
  • Disk 2 (data) name (<DISK2>)

Boot diagnostics

Boot diagnostics is basically a screen shot of a video output of the virtual machine. Enabling this feature is optional, but required before creating a support ticket with the SolarWinds Helpdesk. The support representative needs the support key shown in the screen shot. The command to enable the feature for both Linux and Microsoft is listed in step six below.

Deploy from PowerShell (Windows)

Lines starting with the # character are just comments. The back quote (`) character on the end of lines is for multi-line commands.

  1. Run PowerShell where Azure CLI 2.0 is installed, and then log in to the API.
  2. Extract the Azure disks from the ZIP archive downloaded from the SolarWinds Customer Portal.
  3. In PowerShell, initialize the variables by executing the following commands:
    # authentication and location data
    $env:AZURE_STORAGE_ACCOUNT="<STORAGE_ACCOUNT>"
    $env:AZURE_STORAGE_ACCESS_KEY="<ACCESS_KEY>"
    $resourceGroup="<RESOURCE_GROUP>"
    $vmLocation="<LOCATION>" 
    
    # disk and machine size
    $sku="<SKU>"
    $vmSize="<VM_SIZE>"
    
    # disk names
    $disk1Name="<DISK1>"
    $disk2Name="<DISK2>" 
    
    # virtual machine name
    $vmName="<VM_NAME>"
    
    # vhd disk filenames
    $disk1Filename="SolarWinds-LEM-Azure-6.6.0-disk1-system.vhd"
    $disk2Filename="SolarWinds-LEM-Azure-6.6.0-disk2-data.vhd"
    
  1. To upload the files, run the following PS commands:
    # upload system and data disks
    az storage blob upload --container-name vhds-built --type page –file `
     $disk1Filename --name $disk1Name 
    
    az storage blob upload --container-name vhds-built --type page --file `
     $disk2Filename --name $disk2Name
    
  1. To create the disks, run the following PS commands:
    # get blob urls
    $blobUrlDisk1=az storage blob url --container-name vhds-built --name ` 
     $disk1Name -–output tsv 
    
    $blobUrlDisk2=az storage blob url --container-name vhds-built --name `
     $disk2Name -–output tsv 
    
    # create system and data disks
    az disk create --resource-group $resourceGroup --sku $sku --name $disk1Name `
     --source $blobUrlDisk1 
    
    az disk create --resource-group $resourceGroup --size-gb "250" --sku $sku `
     --name $disk2Name --source $blobUrlDisk2
    
  1. To create and configure the virtual machine, run the following PS commands:
    # create a machine and enable boot diagnostics
    az vm create --resource-group $resourceGroup --size $vmSize `
     --public-ip-sku "Basic" --location $vmLocation --name $vmName `
     --os-type "linux" --attach-os-disk $disk1Name --attach-data-disks `
     $disk2Name 
    
    az vm boot-diagnostics enable --name $vmName --resource-group `
     $resourceGroup --storage $env:AZURE_STORAGE_ACCOUNT

Deploy from Bash (Linux or Docker)

Lines starting with the # character are just comments. The back slash (\) character on the end of lines is for multi-line commands.

  1. Run Bash shell (WSL or native) where Azure CLI 2.0 is installed, and then log in to the cloud.
  2. Extract Azure disks from the ZIP archive downloaded from the SolarWinds Customer Portal.
  3. Initialize the variables used in the following commands. Copy each line to the command line.
    # authentication and location data 
    export AZURE_STORAGE_ACCOUNT="<STORAGE_ACCOUNT>"
    export AZURE_STORAGE_ACCESS_KEY="<ACCESS_KEY>"
    resourceGroup="<RESOURCE_GROUP>"
    vmLocation="<LOCATION>" 
    
    # disk and machine size
     sku="<SKU>"vmSize="<VM_SIZE>"
    
    # disk names
    disk1Name="<DISK1>"disk2Name="<DISK2>"  
    
    #virtual machine name
    vmName="<VM_NAME>"
    
    # vhd disk filenames
    disk1Filename="SolarWinds-LEM-Azure-6.6.0-disk1-system.vhd"
    disk2Filename="SolarWinds-LEM-Azure-6.6.0-disk2-data.vhd"
  1. To upload the files, run the following commands:
    # upload system and data disks
    az storage blob upload --container-name vhds-built --type page –file \
     $disk1Filename --name $disk1Name>
    
    az storage blob upload --container-name vhds-built --type page --file \
     $disk2Filename --name $disk2Name
  1. To create the disks, run the following commands:
    # get blob urls
    blobUrlDisk1=$(az storage blob url --container-name vhds-built --name \
     $disk1Name -–output tsv) 
    
    blobUrlDisk2=$(az storage blob url --container-name vhds-built --name \ 
     $disk2Name --output tsv)
    
    # create system and data disks
    az disk create --resource-group $resourceGroup --sku $sku \
     --name $disk1Name --source $blobUrlDisk1
    
    az disk create --resource-group $resourceGroup --size-gb "250" --sku $sku \
     --name $disk2Name --source $blobUrlDisk2
  1. Create a virtual machine, and then enable boot diagnostics.
    # create a machine and enable boot diagnostics 
    az vm create --resource-group $resourceGroup --size $vmSize \
     --public-ip-sku "Basic" --location $vmLocation --name $vmName \
     --os-type "linux" --attach-os-disk $disk1Name --attach-data-disks \
     $disk2Name 
    
    az vm boot-diagnostics enable --name $vmName --resource-group \
     $resourceGroup --storage $AZURE_STORAGE_ACCOUNT

Configure networking

By default, the inbound firewall rule allowing SSH is enabled for a new Linux machine. If needed, you can disable SSH from the outside world for a LEM appliance. To see all default rules created per virtual machine, see the Default security rules topic on the Microsoft website.
Configure firewall rules based on your specific needs. Review the LEM port and firewall requirements here.
The following example shows security rules for a LEM Azure deployment:

FirewallSettingsSM.png

 

Disclaimer: Please note, any content posted herein is provided as a suggestion or recommendation to you for your internal use. This is not part of the SolarWinds software or documentation that you purchased from SolarWinds, and the information set forth herein may come from third parties. Your organization should internally review and assess to what extent, if any, such custom scripts or recommendations will be incorporated into your environment.  You elect to use third party content at your own risk, and you will be solely responsible for the incorporation of the same, if any.

Last modified

Tags

Classifications

Public