The trouble with OnPrem gateway services
Everyone that have been running the On Premise Data gateway for a while notice that the windows service that is installed on the machine needs to be updated. Microsoft releases a new version about once a month, and in order to maintain support, you need to update about every six months. Updating is a rather manual affair but there is another problem: Knowing which machines that needs to be updated.
The problem
You are running some known, or unknown, number of on premise data gateways in your organization. You need to know the names of the machines that host the Gateway services and the current version of the service.
The issue tend to be that gateways are installed just about everywhere and with little to no documentation. This is one of its main features: The flexibility. Much better than having to go thru the boring rigours of the network.
So you are tasked with finding all the gateways and make sure they are updated. This post help you find the gateways.
Solving it using different tools
There is usually several ways of solving a problem and this is no exception. I will show three different tools and the limitations of each.
Using the Azure Portal
One way of finding the machine name is to use the portal. Find the gateway, look at the overview page and the machine name is right there. However, that is it. You cannot see the service version or if that service version is new or old. You cannot even see if the service is online or not.
So, using the portal is not recommended.
Using the Power Platform Admin center
This very useful management tool actually contains all the information you need, but not in a very mapping-friendly way.
When you log in you get a nice long list of all your gateway clusters for the default region.
You can even get the status (online?) by clicking the arrows symbol to the right, and get the machine name and statuses by clicking the i-symbol next to the clustername in the list.
You can get the machine name in the “device” column and also get the gateway version.
There are some drawbacks though:
- If you have gateways in multiple regions, you need to switch between them all the time. There is no listAll option.
- If you have many installations there is a lot of clicking just to get the status.
- You still do not know if the version is old enough to need an upgrade.
Using a custom script
As luck would have it, I have made a custom PS-script that solves these issues. You can find it on my GitHub page.
The team at Microsoft released a PowerShell Module that allows you to script information about your gateway clusters and machines, so that is what I did. You can download the script and simply run it. I will walk thru the script here.
1. PowerShell 7.x
You need to run this script on PowerShell 7.x, since that is required by the Microsoft module.
2. Download/Install the Gateway Module
Easy, just type Install-Module DataGateway
and go thru the setup.
3. Login to be able to access the gateways
Type: Login-DataGatewayServiceAccount
and login using the account that is granted access to gateway management.
You will only get information about the gateways you are allowed to view. This means that in some cases you might think that there are no gateways, but it’s just your limited access rights.
4. Update the regions array
On row 9 there is an array that contains all the regions you want to map. If you know you only have gateways in eastus, then put that in the array.
As ever, items in an array in PowerShell is separated by a comma.
The region names are the official Azure Region Names.
Here is an example of multiple regions.
$regions = @('northeurope','francecentral','australiaeast')
4. The script
Have you ever done any PowerShell scripting you will see that it is very straight forward:
– For each region: Get All clusters.
– For each cluster: Get Status and Member Gateways.
– For each member gateway: Get the gateway name and machine name.
– Add the row to an output object.
– When done: save the output object to a CSV-file.
5. The output
Beside the obvious ones, like clustername, there are some additional fields that you will find useful.
Header | Description |
---|---|
GatewayMachines | A list of all the machinenames connected to the cluster (hosting a gateway service) |
Cluster Status | Is it online (live) or not? |
Version Status | If “Update is required”: Update your gateway installation. |
Conclusion
You can use the PowerPlatform Admin Center to get almost all the information you need, but the powershell module provides even more and using that in a PowerShell script, you can create a very useful overview of all the gateway installations in your organization.