- 8 minutes to read

Installing the Nodinite Microsoft BizTalk Server Monitoring Agent

This guide shows you how to install the Nodinite Microsoft BizTalk Server Monitoring Agent for robust, scalable BizTalk Server monitoring.

Note

You must be a local administrator to install Windows Services.

Before you begin

Ensure you meet all Prerequisites for the BizTalk Server Monitoring Agent.

Step 1: Start the installer

Double-click the MSI file to launch the installation of the Microsoft BizTalk Server Monitoring Agent.
msi
Start the installer by double-clicking the MSI file.

Step 2: Accept End User License Agreement (EULA)

The Licensee is responsible for ensuring Nodinite products are used according to the End User License Agreement. Make sure you have the formal rights to install and modify the target environment before proceeding.
EULA
You must accept the terms in the License Agreement to continue.

Note

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

Step 3: Welcome screen

Upon successful execution of the MSI file, a welcome screen will be presented.
Welcome
Welcome screen.

Click the 'Next' button to continue the installation process or 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 the installation process or 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.
Domain service account
Enter domain, user name and password for the service Account.

Important

The account must have 'Log on as Service Right'

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

Insufficient Privileges

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

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.
Completed
Successful installation example.

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

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
README.txt file with additional agent information.

Step 7: Add Agent as a new Monitoring Agent Configuration

The last installation step is to add the Monitoring Agent as a new Monitoring Agents from within the Web Client using the information provided in the README.txt file from the previous step.


Support

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

Note

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

Frequently asked questions

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

Configure BizTalk Monitor Agent for High Availability

If you require High Availability monitoring of your BizTalk Server environment, 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 for High Availability; you need a name acting as the entry point. Windows Fail-over cluster does this for you)

    You should always have a fail-over cluster 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 choose this option, 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) 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.

      Important

      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 synchronization
  • 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, 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=True;Connection Timeout=60;TrustServerCertificate=True" - 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.

    Note

    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.

    Note

    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 switch between the active node. Usually, the Windows fail-over cluster service provides this name. If you do not have a Windows fail-over cluster, you can use the following script to update the local hosts file on the Nodinite Application Server to toggle the active node.

Configuration Steps

  1. Use 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. 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