- 8 minutes to read

Installing the Nodinite Microsoft BizTalk Server Monitoring Agent

This guide teaches how to install the Nodinite Microsoft BizTalk Server Monitoring Agent in order to perform BizTalk Server Monitoring.

NOTE: You must be a local administrator to have the right to install Windows Services

Before you begin

Make sure you comply with the Prerequisites for the BizTalk Server Monitoring agent.

Step 1: Start the installer

Double-click on the MSI file to start the installation of the Microsoft BizTalk Server Monitoring Agent.
msi

Step 2: Accept End User License Agreement (EULA)

The Licensee is ultimately responsible for making sure Nodinite products are used according to the End User License Agreement. Make sure you have the assigned formal rights to install and perform modifications to the target environment before you continue installing any Nodinite products.

EULA
You must accept the terms in the License Agreement to continue

The EULA provided by the installer is the generic standard EULA. Your organization may have signed another version part of a formal agreement.

Step 3: Welcome screen

On successful execution of the MSI file, a Welcome screen is presented.

Welcome
Welcome screen

Click the 'Next' button to continue the installation process or click on the 'Cancel' button to quit the installer.

Step 4: Custom setup

Select the Components and Location for the installation. We recommend that you stick with the default settings.
Custom Setup Custom setup

Click the 'Next' button to continue with the installation process or click on the 'Cancel' button to quit the installer.

Step 5: Service Account Information

Enter the credentials for the Account to run Microsoft BizTalk Server Monitoring Agent. Depending on the connection string settings this account will be used to log on and query the databases being monitored.

Domain: The name of the Domain the Server belongs to. If a local account is being used, use the name of the server or a . (dot) as Domain
User: The name of the account
Password: The password for the account.

NOTE: The account must have 'Log on as Service Right'

Domain service account Enter domain, user name and password for the service account

Click the 'Next' button to continue with the installation process or click on the 'Cancel' button to quit the installer.

Insufficient Privileges

Error message when account information does not meet Prerequisites.
Insufficient Privileges

If you get this message, the most common reason is that the account is not allowed to run as a service or is not a local Administrator on the server. Follow the guide How to set Logon as a Service right and click retry. If the problem remains, click cancel and restart. Make sure to enter valid credentials!

Tip: Check the local event log if there are errors (both System and Application)

Step 6 Completed setup

The last step of the installation gives either a success or a premature exit.
Successful installation example
Completed

Failed installation example: A failed installation will render a premature exit
Premature Exit

Click the Finish button to Exit and quit the installer.

When the setup has finished the default text editor will open a text file named 'README.txt'. The README.txt file holds additional information that you need to add the agent as a Monitoring Agents.
README.txt

Step 7: Add Agent as a new Monitoring Agent Configuration

The last installation step would be to install the Monitoring Agent as a new Monitoring Agents from within the Web Client with information as provided from the README.txt file in the previous step.


Support

Contact our Support for additional guidance if you fail to resolve the installation problem.

NOTE: Additional information to aid the troubleshooting may exist in the Windows Event Logs..

Frequently asked questions

Additional solutions to common problems and the FAQ for the Nodinite BizTalk Server Monitoring agent exist in the Troubleshooting user guide.

Configure BizTalk Monitor Agent for High Availability

If you require High Availability Monitoring of your BizTalk Server environment, then, you can configure the Nodinite Microsoft BizTalk Server Monitoring Agent in a fail-over configuration.

  • Supports stand-alone Windows Servers (at least two nodes are required to get High Availability and you somehow need to deal with a name acting as the entry point. Windows Fail-over cluster does this for you)

    You should always have a fail-over cluster anyway if you are using POP3 and FTP/SFTP Adapters, read more here

  • Supports Windows fail-over cluster
    • Service can be either clustered, using the Windows fail-over cluster manager (recommended), OR
      • If you go for this option, you need to install the binaries on the shared disk. (install on both nodes, at least one fail-over operation is required to move the disk to the other node)
    • Service can run on multiple nodes without being configured in a Windows fail-over role
  • Flexible SQL Server run-time

Prerequisites

  • You must install your BizTalk Server environment in a Windows Server fail-over cluster configuration.
  • You need a new cluster name (Client access point) in use to access the agent on the active instance. Please verify that the entry exists in DNS when you are done.
    • You must have a unique IP-address for this name.

    MAX 15 chars or you might get DNS related problems

  • You must install the Nodinite Monitoring Database. If you already have the database installed, make sure it is updated to the latest version
    • Support for SQL Server Always-on exists, but you must manually configure the initial synchronisation
  • Download and install the latest DacFX.

Step-by-step guide

  1. Install the Nodinite Microsoft BizTalk Server Monitoring Agent on at least two BizTalk Nodes according to the general instructions on this page and then stop the Windows Service on the secondary node(s).

  2. If this is the first installation, make sure the Monitoring Database is installed and operational.

  3. On the main node, Change the following fields in the Settings.json file (Make the change on one node and then copy/replace on the other nodes)

    • "HighAvailability": true,
    • "HighAvailabilityNodeName": "%Monitor Agent Node Name%" - Use the local node name where the agent is installed (should match content from the table HighAvailabilityNodes in the Monitoring Agent database). If this value is not set, the host-name will be used.
      HighAvailabilityNodes table
    • "MonitorAgentConnectionString": "Server=%NODINITESQLSERVERNAME%;Database=Nodinite_MonitoringAgent_BizTalk;Integrated Security=SSPI;Connection Timeout=60" - The SQL Server instance with the BizTalk Server Monitoring Database
  4. Cluster the Microsoft BizTalk Server Monitoring Agent Windows Service as a generic service on the BizTalk fail-over cluster.

    MAX 15 chars or you might get DNS related problems

  5. Next, you need a 'Client access point' to access the active instance node with the Monitoring Agent. This is the name to use in step 8. The Cluster Role containing the generic service (the Nodinite BizTalk Monitoring Agent) must include a resource with the cluster name / IP-address. You cannot put the agent in the default role of the cluster, you must create a new Role.

  6. Bring the clustered service online from any of the BizTalk processing nodes where the agent was installed

  7. Open the file Readme.txt. The provided "URIs" should now use the BizTalk cluster name.

    This cluster name MUST exist in your DNS

  8. Make sure the 'Service URI' in the Connection tab is updated (use the cluster name from step 5.)
    Service URL

Toggle hosts file using a Powershell script

You need a cluster name, or at least an Alias to swith between the active node. Usually, the Windows fail cluster service provides this name. If you do not have a Windows fail over cluster, then you can use the following script to use the local hosts file on the Nodinite Application Server to toggle the active node.

Configuration Steps

  1. Use the The Nodinite Windows Server Monitoring Agent and the PowerShell feature.

  2. Add a configuration using the PowerShell script

    1. Change The IP addresses to the BizTalk nodes with the Nodinite BizTalk Server Monitoring Agent
  3. Change the Service URL for the BizTalk Monitoring agent entry in the Remote Configuration.

    1. http://NodiniteBizTalkAgent:8000/Nodinite/Monitor/Agent/BizTalk/IsAlive
  4. In the Advanced tab (Remote Configuration for the BizTalk Server Monitoring Agent), make sure to allow retries
    Retry count

  5. Make a test by stopping the Nodinite BizTalk Server Monitoring Agent one at a time and inspect the host file, or run a cmd-prompt with "ping -t NodiniteBizTalkAgent", you should see the IP switch accordingly within a minute or so


$IpNumbers = @("10.0.1.1", "10.0.1.2")
$Domain = "NodiniteBizTalkAgent"

$UrlTemplate = "http://@@@IP@@@:8000/Nodinite/Monitor/Agent/BizTalk/IsAlive"
$WindowsHostFilePath = "C:\Windows\System32\Drivers\etc\hosts"

function Test-Ip {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [string]
        $Url
    )

    try {
        
        $response = Invoke-RestMethod -Uri $url -ErrorAction Stop
        
        $contentString = $response -replace "^\xEF\xBB\xBF", ""
    
        if ($contentString -eq "true") {
            return $true
        }
    }
    catch {
    }

    return $false
}

function Update-Ip {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [string[]]
        $Ips,

        [switch]
        $Add
    )
    
    foreach ($IpnumberToCall in $Ips) {
        $url = $UrlTemplate.replace('@@@IP@@@', $IpnumberToCall)
    
        if (Test-Ip -Url $url) {
            if ($Add) {
                Add-Content -Path $WindowsHostFilePath -Value ([System.Environment]::NewLine + $IpnumberToCall + " " + $Domain + [System.Environment]::NewLine) -Force
            }
            else {
                try
                {
                    $HostFileContent = Get-Content -Path $WindowsHostFilePath -ErrorAction Stop
                    if (![String]::IsNullOrEmpty($HostFileContent))
                    {
                        $HostFileContent = $HostFileContent.Replace($HostFileRow, ($IpnumberToCall + " " + $Domain))
                        Set-Content -Path $WindowsHostFilePath -Value $HostFileContent -Force
                    }
                    else
                    {
                        Write-Warning "Failed to update the Hosts file, the hosts file is unexpectedly empty"
                    }
                    
                }
                catch
                {
                    Write-Error ("There is a problem reading the hosts file" + " " + $_)
                }
            }
            echo "Last node tried:" $IpnumberToCall
			return
        }
    }
   
    Write-Error "There is no BizTalk node available at this time"
}

try
{
    $HostFileContent = Get-Content -Path $WindowsHostFilePath -ErrorAction Stop
    $HostFileRow = ($HostFileContent | Select-String -Pattern $Domain | Select-Object -First 1).Line

    if ($null -eq $HostFileRow) {
        Update-Ip -Ips $IpNumbers -Add           
        break
    }

    $IpNumber = $HostFileRow.Split(' ') | Select-Object -First 1

    $url = $UrlTemplate.replace('@@@IP@@@', $IpNumber)
    $statusCurrentIp = Test-Ip -Url $url

    if (!$statusCurrentIp) {
        $IpNumbersToCall = $IpNumbers | Where-Object { $_ -ne $IpNumber }
        Update-Ip -Ips $IpNumbersToCall
    }
    else
    {
        echo "Last node tried:" $IpNumber
    }

}
catch
{
    Write-Error ("There is a problem reading the hosts file" + " " + $_)
}

   

Next Step

Configuration of the agent
Update
Uninstall

Add or manage a Monitoring Agent Configuration
Monitoring Agents
Prerequisites for BizTalk Monitoring Agent
Web Client