By default, this product expects the user to supply a configuration file in the work directory; the work directory is $VCOPS_BASE/user/plugins/inbound/servicenow_adapter3/work
For vROps cloud, the adapter must be run and configured on a cloud proxy.
The configuration file consists of an array of resourceTypes. Each element is explained below in detail.
{ "cmdbSync": {}, "resourceTypes": [ { "vROps": {...}, "serviceNow": {...}, "identifierMapping": [], "groupTypes": [], "groupHierarchies": [[]] }, ... ], "alertingConfigs": [ {...}, ... ] }
Examples of Configuration Files
Below are two examples of functional configuration files:
Configuration File Example A
{ "resourceTypes": [ { "vROps": { "type": { "resourceKind": "VirtualMachine", "adapterKind": "VMWARE" }, "id": { "type": "IDENTIFIER", "field": "VMEntityName" } }, "serviceNow": { "type": { "cmdbCiClass": "cmdb_ci_vmware_instance" }, "id": { "column": "name" } }, "groupTypes": [ { "serviceNowColumn": "u_application", "vROpsGroupType": "Application" }, { "serviceNowColumn": "u_main_business_unit", "vROpsGroupType": "BusinessUnit", "booleanMapping": { "trueValue": "Main", "falseValue": "Other" } } ], "hierarchies": [ [ { "adapterKind": "Container", "resourceKind": "BusinessUnit" }, { "adapterKind":"Container", "resourceKind": "Application" } ] ] } ] }
Configuration File Example B
{ "resourceTypes": [ { "vROps": { "type": { "resourceKind": "VirtualMachine", "adapterKind": "VMWARE" }, "id": { "type": "PROPERTY", "field": "config|name" } }, "serviceNow": { "type": { "cmdbCiClass": "cmdb_ci_vmware_instance" }, "id": { "column": "name" } }, "groupTypes": [ { "serviceNowColumn": "u_application", "vROpsGroupType": "Application" }, { "serviceNowColumn": "u_main_business_unit", "vROpsGroupType": "BusinessUnit", "booleanMapping": { "trueValue": "Main", "falseValue": "Other" } } ], "hierarchies": [ [ { "adapterKind": "Container", "resourceKind": "BusinessUnit" }, { "adapterKind":"Container", "resourceKind": "Application" } ] ] } ] }
Configuration File Example C
{ "resourceTypes": [ { "vROps": { "type": { "resourceKind": "VirtualMachine", "adapterKind": "VMWARE" }, "id": { "type": "IDENTIFIER", "field": "VMEntityName" } }, "serviceNow": { "type": { "cmdbCiClass": "cmdb_ci_vmware_instance" }, "id": { "column": "name" } }, "groupTypes": [ { "serviceNowColumn": "u_application", "vROpsGroupType": "Application" } ], "hierarchies": [ ] } ] }
vROps
the vROps
object in the resourceType defines the type of vROps resource that will be assigned properties based on CMDB columns.
Example:
"vROps": { "type": {...}}
Type
This object describes the resource and adapter kinds. Both are required.
"type": { "resourceKind": "VirtualMachine", "adapterKind": "VMWARE"}
ServiceNow
The serviceNow
object in the resourceType defines the type of ServiceNow CI that should be matched to the vROps resource.
"serviceNow": { "type": {...}}
Type
This object describes the CI Class of the CI that will be matched to the defined vROps ResourceKind.
"type": { "cmdbCiClass": "cmdb_ci_vmware_instance"}
Identifier Mapping
An array of mappings. Each mapping references one ServiceNow column which maps to a vROps Property, Identifier, Name, or vROps UUID. In most cases, using a unique identifier in combination with the vCenter UUID is preferred.
{ "identifierMapping": [ { "serviceNowId": { "column": "object_id" }, "vropsId": { "type": "IDENTIFIER", "field": "VMEntityObjectID" } }, { "serviceNowId": { "column": "vcenter_uuid" }, "vropsId": { "type": "IDENTIFIER", "field": "VMEntityVCID" } } ]}
ServiceNow ID
The column whose value will be matched to the id specified on the defined vROps ResourceKind.
"id": { "column": "vm_instance_uuid"}
VROps ID
This field describes the identification mechanism used to match with a ServiceNow CI. There are 3 different ways this can be defined.
Identifier: This method matches based on the value of the specified resource identifier on the resource. Set
type
toIDENTIFIER
andfield
to the name of the identifier on the ResourceKind.
"id": { "type": "IDENTIFIER", "field": "VMEntityName"}
PROPERTY: This method matches based on the latest value assigned to the specified property. Set
type
toPROPERTY
andfield
to the name of the property on the ResourceKind.
"id": { "type": "PROPERTY", "field": "config|name"}
Name: This method uses the name of the resource in vROps as the value matched by ServiceNow CI. Set
type
toNAME
and do not specify afield
in order to use this method.
"id": { "type": "NAME"}
UUID: This method uses the unique ID generated by vROps as the value matched by ServiceNow CI. Set
type
toUUID
and do not specify afield
in order to use this method.
"id": { "type": "UUID"}
Group Types
The groupTypes array contains a list of mappings from serviceNow columns to vROps groups.
"groupTypes": [ {...}, {...}],
There are two ways to assign these mappings.
Standard: This is used for string-based properties in which the literal string value of the
serviceNowColumn
will be used to create a group named the value specified byvROpsGroupType
. All matched resources will be assigned to the group of typevROpsGroupType
that matches the value of the column. In the example below, if a CI hasu_application
=myApp
in the CMDB, the vROps resource will be assigned to a group of typeApplication
namedmyApp
.
{ "serviceNowColumn": "u_application", "vROpsGroupType": "Application"}
Boolean: This is used for boolean properties only. The
serviceNowColumn
andvROpsGroupType
work as explained above, but instead of assigning the literal value of the column, the adapter will translate it to the values assigned in thebooleanMapping
. In the example below, if a CI returnsu_main_business_unit
=true
, the vROps resource will be assigned to a group of typeBusiness Unit
namedMain
.
{ "serviceNowColumn": "u_main_business_unit", "vROpsGroupType": "Business Unit", "booleanMapping": { "trueValue": "Main", "falseValue": "Other" }}
Additionally, columns may be a reference to an object in another table. To do this, 'dot notation' is used.
{ "serviceNowColumn": "domain_manager.manager.name", "vROpsGroupType": "Domain Manager"}
Boolean mappings can be used (at the top level) as well. The value returned by the referenced table will use the boolean mapping in this case
{ "serviceNowColumn": "domain_manager.manager.active", "vROpsGroupType": "Domain Manager", "booleanMapping": { "trueValue": "Active", "falseValue": "Inactive" }}
Group Hierarchies
Group hierarchies organize the groups. Objects at the top of the hierarchy are considered parents of objects lower on the hierarchy. The resourceKind
is the vROpsGroupType
from the groupTypes
array.
"groupHierarchies": [ [ { "resourceKind": "Business Unit" }, { "resourceKind": "Application" } ]]
It is possible to have multiple hierarchies that reference different vROpsGroupType
s. It is also possible for them to share some of their group types.
"groupHierarchies": [ [ { "resourceKind": "Business Unit" }, { "resourceKind": "Application" } ], [ { "resourceKind": "Business Unit" }, { "resourceKind": "Other Group" } ]]
In the above scenario, Application
and Other Group
are both related to the Business Unit
, but are not considered directly related to one another.
Constraints:
Hierarchies must not be cyclic (
Business Unit
cannot both be a parent and a child ofApplication
). This is for both individual resourceTypes and across all resourceTypes (Business Unit
cannot be a parent ofApplication
for a VM, but a child ofApplication
for a Datastore). The hierarchy object can be assigned"adapterKind": "Container"
, but this can also be omitted since it is the only allowable adapterKind.
All groups must be present in at least one hierarchy on the
resourceType
where it is defined.Similarly, groups in a hierarchy must be defined as a
vROpsGroupType
on theresourceType
where it is defined.
Alert Sync
Alerting configurations for the alert-sync feature define what alerts will be synced between vROps and ServiceNow, and how they will be represented in ServiceNow. The three supported representations are INCIDENT (default), ALERT, and EVENT. Once the vROps alert is present in ServiceNow, the ServiceNow Management Pack performs the following additional features:
If an alert is cancelled in vROps, the corresponding incident or alert in ServiceNow is closed.
If an incident or alert is closed in ServiceNow, the corresponding alert in vROps is suspended. Alerts in vROps are generally triggered automatically by breaching thresholds. Because we cannot control this, if an incident or alert is closed in ServiceNow it should be due to the underlying issue being resolved. Thus, we suspend the Alert in vROps (for a configurable length of time) to allow the alert to resolve. If the threshold(s) is still breached when the alert suspend time has ended, the alert will re-trigger and reopen the ServiceNow incident or alert.
If a synced vROps alert is on a vROps ResourceKind that is present in one of the
resourceTypes
sections above, the ServiceNow Management Pack will create a reference from the incident/alert/eventcmdb_ci
column to the CI representing the resource in ServiceNow. Note: A resourceType section can be created with emptygroupTypes
andhierarchies
arrays for matching to a resource type, without creating any groupings and hierarchies.The ServiceNow Management Pack can be configured to watch a predefined set of incident/alert/event columns and display the current values in the corresponding vROps alert as a series of notes.
Configuration
If alert sync is not desired, alertingConfigs
can be omitted entirely, or an empty list can be used:
"alertingConfigs": []
A typical incident config may look like this:
"alertingConfigs": [ { "callerId": "vROps Service User" "propagateAlertUpdates": true, "retrieveIncidentUpdates": true, "incidentElementsToRetrieve": ["assigned_to.name", "state", "cmdb_ci.sys_id"], "incidentReopenState": "In Progress", "incidentCloseState": "Closed", "vropsSuspendMinutes": 30 }]
Each config contains a callerId
which identifies which config the ServiceNow incident/alert/event comes from. The callerId
does not need to be distinct between alerting configs, however there are some performance benefits if each alertingConfig
has a unique callerId
. Note that in the rare case where multiple vROps instances are monitoring the same vCenter and are pointing to the same ServiceNow instance, the callerId
s should all be distinct between the vROps instances. Note that this list is ordered
"alertingConfigs": [ { "callerId": "VM Admin", ... }, { "callerId": "Storage Admin", ... }]
In each alerting config, the following options are supported:
Parameter |
Type |
Description |
---|---|---|
callerId |
String |
The |
serviceNowDestination |
Enum |
One of |
serviceNowOpenState |
String |
Specifies the ServiceNow state an alerting record will be in when it is opened. The default is |
serviceNowReopenState |
String |
Specifies the ServiceNow state an alerting record will be in when it is reopened. The default is |
serviceNowCloseState |
String |
Specifies the ServiceNow state an alerting record will be in when it is closed. The default is |
category |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
subcategory |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
businessService |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
contactType |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
state |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. Defaults to the value of the corresponding vROps Alert, mapped using |
resolutionCode |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
resolutionNotes |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
onHoldReason |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
impact |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. For Incident and Alert, defaults to the value of the vROps Alert's impact. |
urgency |
String |
Optional additional metadata for incidents/alerts/events that are opened in ServiceNow. |
filters |
Object |
Set of filters that determine which vROps Alerts will get processed in this |
retrieveUpdates |
Boolean |
When set to true, vROps alerts will be suspended when an incident or alert is in a closed state. In addition, any elements specified in |
vropsSuspendMinutes |
Int |
Defines how long (in whole minutes) an alert should be suspended when the corresponding ServiceNow alerting record is marked as closed. |
serviceNowElementsToRetrieve |
Array |
A list of strings corresponding to table columns that are surfaced in vROps alerts as notes. Columns with dot notation are allowed. The default list is |
CMDB Sync
A cmdbSync configuration can be added to the configuration file in order to enable this adapter to populate the CMDB with resources. The configuration object can include the following, each of which will be described in greater detail.
"cmdbSync": { "cmdbSyncMethod": "IRE_API", "syncMode": "POPULATE_AND_DELETE_WHEN_NOT_EXISTING", "objectIdentifierSource": "MOID", "builtInTreeEnabled": true, "customTreesEnabled": false, "additionalColumns": {}, "nameFilter": {} }
Additionally, using CMDB sync requires the user to add a Data Source to the identification rule for each resource type, otherwise columns cannot be updated via IRE.
There are a few CI Class Identification Rules that must be addressed as well.
cmdb_ci_vcenter_datacenter:
Add a rule that uses
object_id
andvcenter_uuid
together to uniquely identify the datacenterIf you have ever used the Discovery plugin, it adds a dependent relationship to
cmdb_ci_cloud_service_account
. Remove this dependency and allow the Datacenter to be an Independent resource.
cmdb_ci_vcenter_datastore
Add a dependent containment relationship to the Datacenter (
cmdb_ci_vcenter_datastore
Contains::Contained
bycmdb_ci_vcenter_datacenter
)
cmdb_ci_esx_server
Add a rule that uses
object_id
andvcenter_uuid
together to uniquely identify the datacenterIf Discovery is being used, you may also need to disable the
correlation_id
rule to avoid duplicate objects.
cmdb_ci_vcenter
Add a rule that uses
instance_uuid
as the unique identifier
Custom Trees
By default, built-in trees are enabled and custom trees are disabled. If you need to change the identification of the built-in classes, or map these resources to different CIs, disable the built-in tree and create your own custom tree to represent vCenter resources.
To add columns to a built-in tree, use additionalColumns rather than defining a custom tree. See Additional Columns below.
To use custom trees, you must enable custom trees in the CMDB Sync Configuration. You must define each custom tree in its own json file under 'work/custom_trees'. When you make the directory 'custom_trees', make sure your vROps user has permission to read from that directory.
Format:
{ "treeName": "Sample Tree Name", "syncClasses": [] }
Tree Name
This is a unique identifier for the tree. It cannot match the name of any other custom trees, or the built-in tree if the built-in tree is enabled.
Sync Classes
Sync classes defined what should be synced to the CMDB. For a tree to be valid, the chosen sync classes must include all identifiers required by the CMDB. Test connection will inform you if there are any issues with any of the sync classes.
{ "classIdentifier": "Sample Class ID", "vROps": {...}, "serviceNow": {...}, "identifierMapping: {...}, "dataColumns": [], "relationships": [], "propertyFilter": {} }
Class Identifier
This is a unique identifier for the class. It cannot match the identifier of any other custom class, or the built-in class if the built-in tree is enabled.
vROps Definition
This is the same object required for ResourceType vROps Definitions
ServiceNow Definition
This is the same object required for ResourceType ServiceNow Definitions
Identifier Definition
The identifier mapping is our way of linking our resources to ServiceNow's CIs. This is a combination of identifiers which uniquely identify the resource. For example, vROps resources should use the vCenter UUID in combination with the MOID (which is what is shown in the example in the link below).
These do not have to be identifiers on either the CMDB side or the vROps side, though they often will be.
This is the same object required for ResourceType Identifier Mapping
Data Columns
Data columns represent the columns that we sync to the CMDB that are not used as part of the identification mapping. See vROps Types and Fields for available options for the vropsType and vropsField parameters.
{ "cmdbColumn": "cpu_name", "vropsType": "PROPERTY", "vropsField": "cpu|cpuModel" }
Relationships
Defines all relationships to children. The childClassIdentifier
is the unique Class Identifier assigned to the child class. The child class must be a part of this tree. The relationshipType
is not required if the CI Class Definition defines only one possible relationship type between the two CI Classes, but is required if there are multiple options.
"relationships": [ { "childClassIdentifier": "CustomDatastore", "relationshipType": "Contains::Contained By" } ]
Property Filter
This is used to filter resources based on properties. An example use-case would be if you wanted to map VMWARE VirtualMachine resources to cmdb_ci_vmware_instance
CIs only when the property summary|config|isTemplate
is set to false. You could make a second Custom Class which maps to cmdb_ci_vmware_template
when summary|config|isTemplate
is set to true from the same vROps ResourceType.
If this is not needed for your class, omit the block.
This sample filters only resources that are not templates.
"propertyFilter": { "conditions": [ { "vropsField": "summary|config|isTemplate", "value": "false", "filterOperation": "EQUALS", "default": false } ], "joiner": "AND or OR" }
Property Filter Value
Set this to the value to search for in the string returned from the vropsField. If your field is a boolean or an integer, set it to the string representation of that boolean or integer (such as "15" or "true")
Property Filter Operation
This specifies how we determine whether the filter condition is met.
Available options:
Option |
Behavior |
---|---|
EQUALS |
The condition is true if the property value returned by vROps exactly matches the provided value |
DOES_NOT_EQUAL |
The condition is true if the property value returned by vROps does not match the provided value |
CONTAINS |
The condition is true if the value returned from vROps contains the provided value |
DOES_NOT_CONTAIN |
The condition is true if the value returned from vROps does not contain the provided value |
Property Filter Default
This specifies how we should evaluate the condition if we cannot retrieve the property in vROps. Since the most common reason this could occur is for vROps to discover a new resource but not complete a collection and thus assign properties yet, we recommend defaulting to false. Using false as default will cause the filter to exclude all resources that do not have this property assigned from the sync.
Property Filter Joiner
This specifies whether we should include the resource if all of the conditions are met (AND) or if at least one of the conditions are met (OR)
Available options:
Option |
Behavior |
---|---|
AND |
All property filters must resolve to true in order to include the resource |
OR |
At least one of the property filters must resolve to true in order to include the resource |
To map a custom tree representing another technology that vROps can monitor, such as AWS, whilst simultaneously using the built-in tree, enable custom trees and leave the built-in tree also enabled.
Custom Tree Example
{ "instructions": "Copy this file to work/custom_trees before you begin to modify it. Remove all 'instructions' objects from this json before attempting to collect using the this custom tree.", "treeName": "Replace this with a unique string which describes what this tree represents (such as 'vCenter')", "syncClasses": [ { "classIdentifier": "Replace this with a unique string which describes what this class represents (such as 'Virtual Machine')", "vROps": { "type": { "resourceKind": "Replace this with the vROps Resource Kind (such as 'Datastore')", "adapterKind": "Replace this with the vROps Adapter Kind (such as 'VMWARE')" } }, "serviceNow": { "type": { "cmdbCiClass": "Replace this with the CI class in the ServiceNow CMDB (such as 'cmdb_ci_vcenter_datastore')" } }, "instructions": "identifierMapping can include any number of identifiers which, when taken together, uniquely identify the resource. If you are syncing vCenter resources, a combination of VMEntityObjectID and VMEntityVCID is generally recommended. These are for this adapter to map back and forth between ServiceNow and vROps. The columns and vROps fields referenced do not have to be identifiers for their platform, though they often are.", "identifierMapping": [ { "serviceNowId": { "column": "The CMDB column (such as 'object_id')" }, "vropsId": { "instructions": "See documentation for a full description of possible types and how to specify fields for them.", "type": "IDENTIFIER", "field": "VMEntityObjectID" } } ], "instructions": "dataColumns includes all other fields that you which to sync to the CMDB that are not used for our identification.", "dataColumns": [ { "instructions": "See documentation for a full description of possible types and how to specify fields for them.", "cmdbColumn": "sample_column", "vropsType": "METRIC", "vropsField": "sample|metric|key" } ], "instructions": "Use the relationships array to define children of the the class. You can only reference classes that are also members of this tree.", "relationships": [ { "childClassIdentifier": "Reference To Another Class In This Tree", "relationshipType": "This is only required if there are multiple possible relationship types between two CI Classes - if it is not defined, the adapter will read the relationship type from the CMDB. The format for this string is 'Contains::Contained by'" } ], "propertyFilter": { "instructions": "This is optional. Remove the propertyFilter object if you don't need it for your resource. If you do need the filter, you can define any number of conditions and whether we should join them all together with AND or OR. Conditions can only be made from vROps properties. Metrics, Identifiers, etc will not work.", "conditions": [ { "vropsField": "The property that we will used from the vROps resource to determine if the condition is met (formatted|like|this)", "value": "The expected value for the condition. Use a string representation even if this is an int or boolean property", "filterOperation": "Whether a resource's property should equal, not equal, contain, or not contain the value in order to be included for this class (acceptable values: EQUALS, DOES_NOT_EQUAL, CONTAINS, DOES_NOT_CONTAIN)", "default": "If the property is not present on the resource, the boolean default determines whether or not to include this resource. Our recommendation and the default for this field is false since it is safer to assume the property has not yet initialized for the resource and we should wait until it is before making the determination." } ], "joiner": "AND or OR" } }, { "instructions": "Define a sync class for every class you want to define and add it to this array." } ] }
Additional Columns
To add properties to the CMDB that are not defined by the built-in tree definition, use the 'additionalColumns' parameter.
This is a mapping from class identifier (See table in Name Filter) to a list of additional columns. An additional column has the following fields:
cmdbColumn: The key of the column that the vROps field will be send to on the CMDB CI Class
vropsType: Where to get this data from in vROps. See the type table below for a list of options
vropsField: Represents the field to sync. See the type table below for a list of options
This example syncs the vROps property 'cpu|cpuModel' to the CMDB column 'cpu_name' on all Host System resources:
"additionalColumns": { "builtInHostSystem": [ { "cmdbColumn": "cpu_name", "vropsType": "PROPERTY", "vropsField": "cpu|cpuModel" } ] }
vROps Types and Fields
When defining a column, this describes available 'vropsType' enums and what should be provided as the 'vropsField' when that type is selected
Type |
Applicable Field |
---|---|
PROPERTY |
The key of the vROps property to sync such as 'cpu|cpuModel' |
IDENTIFIER |
The key of the vROps Identifier to sync sync as 'VMEntityVCID' |
METRIC |
The key of the vROps property to sync such as 'cpu|demand|stress' |
NAME |
This should be left empty. The name of the resource will be used. |
UUID |
This should be left empty. The UUID assigned by vROps for the resource will be used. This is unique to each vROps instances so if the same resource is monitored by multiple vROps instances, this is not an ideal metric to use |
STATIC_STRING |
The value you want assigned to the column. For instance, you could set 'Synced From vROps' to a description column and the column would be set to that value for all resources of the CI Class that we sync. |
Data Source
In order to sync data, the following must be done on ServiceNow:
Add data_source
VMwareTVS
to theChoice List
(you can search
sys_choice.list
in the UI or querysys_choice
in the REST API) with theElement
(element
in REST) attribute set todiscovery_source
and theValue
(value
) andLabel
(label
) attributes set toVMwareTVS
. TheTable
(table
) must be set tocmdb_ci
.Add a Reconciliation Rule for your new
data_source
(VMwareTVS
) on each of the CI classes in >Synced Resources
If this is not done, IRE will not be able to update the resource, but the API still returns a successful response so we are not able to alert/fail collection due to this.
Synced Resources
The following resources from the VMWARE adapter will be synced to the CMDB if CMDB Sync is enabled:
vROps Type |
CI Class |
---|---|
Datastore |
cmdb_ci_vcenter_datastore |
Datacenter |
cmdb_ci_vcenter_datacenter |
HostSystem |
cmdb_ci_esx_server |
ClusterComputeResource |
cmdb_ci_vcenter_cluster |
VMwareAdapter Instance |
cmdb_ci_vcenter |
VirtualMachine |
cmdb_ci_vmware_instance |
Additional information about what properties and relationships we sync can be found in CMDB Synced Metrics.
CMDB Sync Method
Currently, the only supported sync method is the IRE API (IRE_API). This is the default value and specifying it is not required. IRE_API uses ServiceNow's Identification and Reconciliation Engine to resolve vROps resources to the appropriate ServiceNow resources. For this to work properly, the identification rules for the ci classes this adapter populates should not be altered from what ServiceNow includes by default. If rules are edited or removed, we cannot guarantee how the IRE will resolve resources that this adapter sends it.
CMDB Sync using the IRE is not compatible with ServiceNow's Discovery plugin.
Note: The TableAPI is also used for methods the IRE API cannot accomplish such as adding/deleting relationships that have changed which would affect identification and deleting resources if the sync mode is set to allow deletion.
Sync Mode
This specifies how we should sync CIs to the CMDB.
There are 3 options for syncMode:
POPULATE_ONLY: Populates the CMDB, but does not remove CIs. If a resource is Not Existing, it sets the operational status to '6' (retire).
POPULATE_AND_DELETE_WHEN_NOT_EXISTING: Populates the CMDB and removes CIs that have been marked as
Not Existing
in vROpsPOPULATE_AND_DELETE_WHEN_REMOVED: Populates the CMDB and removes CIs that have been removed from vROps. If a resource is Not Existing, it sets the operational status to '6' (retire).
Object Identifier Source
This is used to select which identifier should be used for objects which have both a UUID and a MOID. Currently, this only applies to Virtual Machine resources. If you are populating your CMDB for the first time, we recommend using MOID. If you are using this adapter to add data to a CMDB that has already been populated, check the format of the identifier in the object_id
column for a cmdb_ci_vmware_instance
object and choose the option below that matches it.
There are 2 options for Object Identifier Source:
MOID (default): Also called MoRef ID, this is a required identifier in vROps and looks like
vm-111
. It includes a prefix and a number which is generated by a counter.UUID: This is an optional identifier in vROps and looks like a standard UUID. In most cases, this should be present, but there is a chance that it will not be. We have a few VMs in our test environment which are in bad states that don't have UUIDs, but they do have MOIDs.
For further info about identifiers in vCenter, see
Name Filter
A map from ServiceNow CI Class to a regex filter. Every resource with a name that matches this regex will not be synced to the CMDB. This can be omitted if you intend to include all resources. It will look like this if you wish to ignore all VMs that end in the dev
:
{ "cmdb_ci_vmware_instance": "^.*dev$"}
Note: VM templates are automatically filtered out so there is no need to add a name filter for VM templates.
Configuration Samples
Some sample configuration files are provided for you. They are pre-installed with the Management Pack and located at /usr/lib/vmware-vcops/user/plugins/inbound/servicenow_adapter3/conf/config_samples
. You can use these out-of-the-box, or you can modify the json as described in the (Configuration File)[#Configuration File] section. If you do modify any of the files, it is recommended that you move the modified file to the work
directory. Otherwise, the modified file will be overwritten if you update the Management Pack.
If you wish to use an un-modified configuration file, you will need to specify the path starting with the directory inside config_samples
in the Adapter Configuration.
For example, if you wish to use moid_alerts.json
, you can specify alert/moid_alerts.json
. If you copy it to the work directory so that you can modify it, you only need to specify the name of the file.
Since group configurations are custom to specific customer deployments, we do not include any out-of-the-box samples with group configurations
The following sample configurations are available:
Alerts No Mapping
Location in config_samples
: alert/alerts_no_mapping.json
This is a basic configuration that will send all vROps alerts to ServiceNow as ServiceNow alerts. It does not apply any filters.
Alerts No Mapping
Location in config_samples
: alert/events_no_mapping.json
This is a basic configuration that will send all vROps alerts to ServiceNow as ServiceNow events. It does not apply any filters.
Alerts No Mapping
Location in config_samples
: alert/incidents_no_mapping.json
This is a basic configuration that will send all vROps alerts to ServiceNow as ServiceNow incidents. It does not apply any filters.
MOID Alerts
Location in config_samples
: alert/moid_alerts.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds except VirtualMachine, which uses MOID and vCenter UUID.
MOID Events
Location in config_samples
: alert/moid_events.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds except VirtualMachine, which uses MOID and vCenter UUID.
MOID Incidents
Location in config_samples
: alert/moid_incidents.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds except VirtualMachine, which uses MOID and vCenter UUID.
UUID Alerts
Location in config_samples
: alert/uuid_alerts.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
UUID Events
Location in config_samples
: alert/uuid_events.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
UUID Incidents
Location in config_samples
: alert/uuid_incidents.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
CMDB Sync MOID Populate Only
Location in config_samples
: cmdb_sync/moid_populate_only.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, but it does not delete resources from the CMDB.
CMDB Sync MOID Populate and Delete When Not Existing
Location in config_samples
: cmdb_sync/moid_populate_and_delete_when_not_existing.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when vROps marks them as Not Existing
CMDB Sync MOID Populate and Delete When Removed
Location in config_samples
: cmdb_sync/moid_populate_and_delete_when_removed.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
CMDB Sync UUID Populate Only
Location in config_samples
: cmdb_sync/uuid_populate_only.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, but it does not delete resources from the CMDB.
CMDB Sync UUID Populate and Delete When Not Existing
Location in config_samples
: cmdb_sync/uuid_populate_and_delete_when_not_existing.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when vROps marks them as
Not Existing
CMDB Sync UUID Populate and Delete When Removed
Location in config_samples
: cmdb_sync/uuid_populate_and_delete_when_removed.json
This configuration syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Alerts and Populate Only
Location in config_samples
: combined/moid_alerts_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Alerts and Populate Delete When Not Existing
Location in config_samples
: combined/moid_alerts_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when vROps marks them as Not Existing
Combined: MOID Alerts and Populate When Removed
Location in config_samples
: combined/moid_alerts_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Events and Populate Only
Location in config_samples
: combined/moid_events_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Events and Populate Delete When Not Existing
Location in config_samples
: combined/moid_events_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when vROps marks them as Not Existing
Combined: MOID Events and Populate When Removed
Location in config_samples
: combined/moid_events_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Incidents and Populate Only
Location in config_samples
: combined/moid_incidents_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: MOID Incidents and Populate Delete When Not Existing
Location in config_samples
: combined/moid_incidents_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when vROps marks them as Not Existing
Combined: MOID Incidents and Populate When Removed
Location in config_samples
: combined/moid_incidents_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the object_id
for cmdb_ci_vmware_instance
(Virtual Machine) CIs and the UUID is used as the object_id
for all other CI Classes. This configuration populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: UUID Alerts and Populate Only
Location in config_samples
: combined/uuid_alerts_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, but it does not delete resources from the CMDB.
Combined: UUID Alerts and Populate and Delete When Not Existing
Location in config_samples
: combined/uuid_alerts_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when vROps marks them as
Not Existing
Combined: UUID Alerts and Populate When Removed
Location in config_samples
: combined/uuid_alerts_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow alerts for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: UUID Events and Populate Only
Location in config_samples
: combined/uuid_events_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, but it does not delete resources from the CMDB.
Combined: UUID Events and Populate and Delete When Not Existing
Location in config_samples
: combined/uuid_events_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when vROps marks them as
Not Existing
Combined: UUID Events and Populate When Removed
Location in config_samples
: combined/uuid_events_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow events for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.
Combined: UUID Incidents and Populate Only
Location in config_samples
: combined/uuid_incidents_and_populate_only.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, but it does not delete resources from the CMDB.
Combined: UUID Incidents and Populate and Delete When Not Existing
Location in config_samples
: combined/uuid_incidents_and_populate_when_not_existing.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when vROps marks them as
Not Existing
Combined: UUID Incidents and Populate When Removed
Location in config_samples
: combined/uuid_incidents_and_populate_when_removed.json
This configuration filters vROps alerts to the following ResourceKinds: VirtualMachine, ClusterComputeResource, Datacenter, Datastore, HostSystem. It creates ServiceNow incidents for these vROps alerts and associates them with their CI if it is present in the CMDB. The mapping uses a combination of UUID and vCenter UUID as identifiers for all ResourceKinds.
Also, it syncs vROps resources to the CMDB. The MOID is used as the UUID is used as the object_id
for all CI Classes. It populates the CMDB, and deletes resources from the CMDB when they are deleted from vROps.