This architecture plan allows secure communication between your SharePoint Online to CardioLog Analytics tracking app that is located in Azure, to the CardioLog Analytics onprem server that is located in your private network.
This solution consists of Azure App Service with Hybrid Connection.
The Hybrid Connection feature of Azure App Service supports making calls to an endpoint in your private network. Hybrid connections are defined against specific host and port combinations, and don’t require you to expose an internet-accessible endpoint or configure a VPN.
For more information, please see Azure App Service Hybrid Connections
Prerequisites - Azure
- Azure account
- App Service Plan - Basic, Standard or Premium.
Prerequisites – CardioLog Analytics
- Access to the internet from all end users’ workstations, make sure that the azurewebsites.net domain is not blocked by the browsers.
- Making outbound calls from CardioLog Analytics server to Azure over port 443.
Pricing
- There is no additional cost for CardioLog Analytics application.
- There are additional costs for the following cloud components:
Configuration Steps
Step 1 – Create Azure App Service to host the CardioLogAgent web application
- Browse to the Azure Portal
- Web > select App Services
- Click Create
- Create Web App:
- Project Details > Fill out the Subscription and Resource Group
- Instance Details:
- Name: This will be subdomain of .azurewebsites.net. For example, mycompany-cardiologagent.azurewebsites.net
- Publish: Code
- Runtime stack: ASP.NET V3.5
- Operating System: Windows
- Region: select region of your choice. Prefer the closest to your end users.
- App Service Plan > Windows Plan > select or create app service plan
- Click Review + Create and compete the web app creation.
- Once the creation has been completed > go to the app service > Configuration > General settings > Set “Always on” to On > Save
Step 2 – Deploy CardioLogAgent resources into the created App Service
- In the CardioLog installation folder > open CardioLogAgent folder > select all the files and folders, right click and zip them into a zip archive. The resulted .zip file must not include the top level CardioLogAgent folder but only the files and folders.
- In Azure, go to the App Service main screen > App Service Editor > Drag and drop the zip file into the WWWRoot folder
- Right click the zip file > Extract All
Step 3 – Configure CardioLogAgent App Service
In Azure, go to the App Service main screen > App Service Editor > web.config:
<add key="EventCollectorPath" value="http://[CardioLog server name]:[CardioLog port, default is 29999]/EventCollector/monitor.aspx"/>
<add key="CardioLogRoot" value="http://[CardioLog server name]:[CardioLog port, default is 29999]"/>
<add key="overwriteConnectedUser" value="true" />
<add key="UseSPAuth" value="true" />
<add key="CardioLogAgentRoot" value="[app service URL]" />
Note: The app service URL can be found in the App Service > Overview > URL
Step 4 – Configure the hybrid connection endpoint
- In Azure, go to the App Service main screen > Settings > Networking > Hybrid Connections > Configure your hybrid connection endpoints
- Add hybrid connection > Create new hybrid connection:
- Name: name of your choice, for example: cardiologagent-hybrid-connection
- Endpoint Host: [CardioLog server name]
- Endpoint port: [CardioLog port, default is 29999]
- Service bus namespace > Create new:
- Location: select the same location as the App Service
- Name: name of your choice, for example: cardiologagent-service-bus
The steps are detailed here
Step 5 – Configure the Hybrid Connection Manager (HCM) client application
- In Azure, go to the App Service main screen > Settings > Networking > under Hybrid Connections > Configure your hybrid connection endpoints
- Download the HCM
- Install the HCM on the CardioLog Analytics onprem server
- Run the HCM and connect it to the endpoint
- Make sure the endpoint status is CONNECTED
- Test the endpoint:
- App Service main screen > Console
- Type: tcpping [CardioLog server name]:29999
The steps are detailed here
In case the status is NOT CONNECTED, try to restart the HCM or the HCM windows service.
For additional steps see Troubleshooting
Step 6 – Configure the JavaScript tracking code
Upon reaching the configuration step - Running the Configuration Wizard, change the tracking code as follows:
sourceDomain: '[app service URL without https prefix]/js/modern',
eventListenerDomain: '[app service URL without https prefix]',
modules: ['survey-and-message-bar'],
statisticsPath: '[app service URL]/ReportDispatcher.aspx'