Appendix

Issues

If the container is restarted, a new IP address is allocated. This could affect and network policies and rules between the MS Teams collector in Azure and the location of the Dashboard server. Consider making the IP address for the container static.

When creating the global reader account, it sets the expiry of the password to 2 years, so this will need to be updated on the MS Teams collector, otherwise the data collection will cease.

Prerequisites

  • Build dashboard server and have the IP address available

  • Open up ports between the dashboard server and the Azure cloud collector

  • Build Azure AD global reader account

  • Build App:

    Please create a dedicated user account on your Microsoft Admin Portal with “Global Reader” privileges.

    See details in Microsoft Admin.

    • VOSS Insights agent will be using this account to collect the information it needs to display the historical Microsoft Teams call details. For further support, please contact the VOSS Team.

    Please register your VOSS Insights agent as an app on your Azure portal using details provided by Microsoft.

    See details in the Microsoft Quickstart

    VOSS agent will be using this account to collect the information it needs to display Microsoft 365 service health status and incidents. For further support, please contact the VOSS Team.

    • You will need your Azure admin portal login details and VOSS provided credentials to install the Azure Container Instance in the relevant ACI context.

    Please contact VOSS support to get your cloud agent access package before any configuration. This package should include:

    • Access link to your VOSS Cloud Agent Webapp via a web portal.

    • A set of credentials to access your VOSS Cloud Agent Webapp via a web portal.

    • An encrypted import module file to enable some of the internal features of the agent.

Azure Container Instance Specification

Following are the minimum technical specifications for a VOSS Cloud Collector in Azure ACI:

2xCPU and 4Gig RAM with no persistent storage.

The email that was sent earlier in the process and the welcome email with log in details will be used to log in to the docker container registry to download the docker image.

On the users PC:

  • Load Docker

  • Load PowerShell

Build the Azure ACI using Docker

  • Reference the Docker Docs for further information.

  • If you have docker installed on your Mac or PC or just installed docker, follow the steps below:

    1. docker logout azure

    2. docker login azure (Follow the on screen instructions and use your admin creds)

    3. docker login layerxdocker.azurecr.io (use the creds provided in your welcome email)

    4. Optional step if your don’t have a Azure context built or as instructed by your Azure Sysadmin.

      • To add a context. docker context create aci [somename]

      • Follow on screen instructions

      • Finally install and run your CI by typing the syntax below – no quotes

        docker --context somename run -d --restart always --cpus 2 --memory 4G -p 5000:5000 layerxdocker.azurecr.io/microsoft-teams-debian:v3
        

Log in into your admin portal using the web browser and confirm ACI is present and running.

Navigate to Azure: Container Instances.

Find container name created in PowerShell and select it.

Take note of the public IP:

../../../_images/Azure-CI-1.png

Container name > Containers.

../../../_images/Azure-CI-2.png

Click Connect.

../../../_images/Azure-CI-3.png

Take the sandbox name and email to VOSS to get a user created and associated for logging into the cloud collector GUI.

Open a New tab: https://<container public IP>:5000

Await the email for user details.

Log in to the GUI.

../../../_images/MS_f0b1e402ff048907.png

Notes

  • PowerShell requires a Windows PC. MAC users can load docker and use the MAC command line

  • PowerShell seems to store credentials for first docker build - need to clear for multi customers, or could be the list context names to see what could be used. Default is the default one but customers might have their own = docker context list