Unimus & NetXMS - how to monitor and trigger Unimus jobs in NetXMS
In this guide we will look at how to monitor Unimus device job results in NetXMS, and how to create NetXMS alarms if a device doesn't have a valid backup within a specified timeframe. We will also explore how to run Unimus jobs directly from NetXMS.
Unimus & NetXMS integration
Running Unimus together with NetXMS creates a powerful ecosystem for both monitoring (NMS) and config management (NCM) of your infrastructure. You can integrate both solutions together - use data from NetXMS in Unimus, and vice-versa.
Unimus has a built-in NetXMS importer which allows Unimus to adopt nodes from NetXMS. This allows you to automate device ingestion in your network - both when you are first deploying the systems, as well when you add devices into your network. There is no need to add a device to Unimus and NetXMS separately, just add your device to NetXMS, and Unimus will automatically adopt it. You can read more about how to configure this on our Wiki.
In this article however, we want to look at how to integrate data from Unimus into NetXMS - how to see Unimus job statuses and device data in NetXMS, and how to trigger Unimus jobs directly from NetXMS.
Preparations
There are a few steps to do before we get started:
1) Enable Web Service Proxy in the NetXMS Agent of the node polling your network.
If you are not using Zones in NetXMS, this will be your NetXMS server. If you are using Zones, you will need to enable this on the Zone's proxy.
To enable the Web Services Proxy, we edit the Agent's config:
And add the appropriate setting EnableWebServiceProxy = yes
in the config:
You need to restart the NetXMS Agent for this to take effect.
2) Create scripts required for Web Service Definitions, DCIs and Object Tools.
After the Web Service Proxy is enabled, we need to create a few scripts that other components in NetXMS will use. These scripts provide your Unimus server address the Unimus API token to DCIs and Object Tools which will later use them.
We have prepared an export of these scripts for you, available in the NetXMS Configuration Exports GitHub repo. You can simply download the export and import it in your NetXMS using Tools > Import Configuration...
We will import 4 scripts:
You will need to open the Unimus::getServerAddress
script, and change the returned value to the URL of your Unimus Server.
You will also need to change the API Token in the Unimus::getApiToken
script. You can generate an API token in Unimus in the User management > API tokens
. Click the clipboard button to copy then token, and paste it as the return string in the NetXMS script.
3) Create Web Service Definitions.
Web Service Definitions are also available in the NetXMS Configuration Exports GitHub repo. After you import them, you should be able to see them in Configuration > Web Service Definitions
:
Monitoring Unimus jobs in NetXMS
After the preparations above are finished, we can now import templates that use the Web Service Definitions to pull data from Unimus into NetXMS.
The NetXMS Configuration Exports GitHub repo contains a template export, which when exported creates 2 templates:
We have not included any Auto-Apply Rules in these templates, as each NetXMS deploy is usually quite unique in how nodes are structured. You can apply your own Auto-Apply Rules if you wish. For this article, we will just bind nodes to this template manually.
You should bind your networking devices to the Unimus device data
template, and the Unimus Server node to the Unimus server status
template. For the devices, you should see multiple DCIs created:
There is a threshold on the Unimus device last backup time
DCI, which creates an alarm if a backup was not successful for the device in the last 3 days. You can change this threshold in the DCI config if you wish:
Triggering Unimus jobs from NetXMS
Next step is to create Object Tools which allow you to trigger Unimus jobs directly from NetXMS. The NetXMS Configuration Exports GitHub repo contains Object Tools, which should look like this when imported:
You should see the tools on your nodes under Commands
:
If you wish, you can create Filters
to make sure these tools are only available on Unimus-managed nodes. We have not included any due to the same reason as the Auto-Apply Rules on the templates.
Final words
Hopefully this article can serve as an example on how to integrate Unimus and NetXMS together. If you have any questions, or you run into any issues, please feel free to post in the Support section of our forums, or contact us through our usual support channels.