Let’s first talk about how data is synced between the Remote System and “State”. State is ConnectMagic’s internal representation of the data. It is only held in memory for better performance. When ConnectMagic is started (or restarted), it first obtains a view of State by querying the Remote System via the API. State is made up of multiple DataSets, one per class of information.
These classes will generally correspond to concepts held in your remote systems, but needn’t have precisely the same meaning and may be filtered.
For example, there may be a single “Hardware Inventory” table in one system, but filtered queries may mean that ConnectMagic maps them into two DataSets: “Network Devices” and “System Devices”. When all systems have been queried, ConnectMagic considers what actions should be taken.
Objects are created, updated and deleted via each system’s API. ConnectMagic can cross-reference between classes, enriching one with data from another. For example, it may be possible to tag a Router from the “Network Devices” DataSet with an Id from the “Account” Dataset.
In this example, we’re going to synchronise LogicMonitor with AutoTask PSA. We’re going to consider “Account” and “Configuration Item” classes in AutoTask PSA, and “Resource Group”, “Resources”, “Dashboard Group” and many other classes in LogicMonitor. We are going to use AutoTask PSA to manage Customer Accounts, and LogicMonitor to discover and manage Devices.
Firstly, note that we define two DataSets in ConnectMagic:
Let’s look at Account first. The Create/Delete direction is from AutoTask to LogicMonitor. This means that:
- If an Account is created in the AutoTask PSA, ConnectMagic can be configured create the following items in LogicMonitor:
- Resource Group
- Dashboard Group
- Netscan Group
- Collector Group
- Role Group
- One or more Roles
- If any of these are accidentally deleted in LogicMonitor, ConnectMagic will recreate them
- If an Account is marked “terminated” in AutoTask PSA, ConnectMagic will clean these items up from LogicMonitor – this can provide considerable savings, ensuring that system licenses are only used where needed
- If a stray Device or Dashboard is created in LogicMonitor, ConnectMagic will remove it – this can prevent accidentally leaking data with non-approved configuration
Although the creation and deletion of objects is controlled by the Create/Delete direction, data can flow between individual fields in either direction via “Mappings”.
Data can be combined, split and transformed as part of this process, using the power NCalc expression evaluation language.
The following diagram shows that although the Create/Delete direction is from AutoTask to LogicMonitor, the LogicMonitor Resource Group Id and Dashboard Group Id can be stored in AutoTask PSA user-defined fields (UDFs)
For LogicMonitor Resources, the Create/Delete direction is reversed and objects discovered in LogicMonitor are created as CIs in AutoTask. AutoTask Ids can be mapped back into LogicMonitor, meaning that alerts raised by LogicMonitor can be correctly mapped to CIs in AutoTask Incidents.