ServiceNow
Visualize ServiceNow resources and monitor them through queries and alerts.
- Installation guide
- ServiceNow data model
- ServiceNow types
Installation
In order to allow JupiterOne to fetch data from your ServiceNow account, we recommend creating a new ServiceNow role with read-only access to your account and assigning that read-only role to a dedicated ServiceNow user.
Configuration in ServiceNow
Follow the ServiceNow documentation to create a new ServiceNow role called
jupiterone_reader
.Create a new access control rule (ACL) to allow access to the
jupiterone_reader
role withType: Record
,Operation: Read
, andRole: jupiterone_reader
. This should be enabled for the following tables (Name
field):sys_user
sys_user_group
sys_user_grmember
incident
sys_db_object
Create a new ServiceNow User called
JupiterOne
. Make a note of the new username/password; you'll need it when configuring your integration in JupiterOne.Open the
JupiterOne
user and assign thejupiterone_reader
role to your newly created user. Note: if ingesting any part of the cmdb, also add thecmdb_reader
role. See this link for more information.(OPTIONAL) For JupiterOne users who wish to create ServiceNow incidents based on JupiterOne alert rules, we suggest creating a
jupiterone_incident_creator
role. Repeat steps 1, 2, and 4 above with the following parameters:1. ServiceNow Role:
name: jupiterone_incident_creator
2. Access Control Rule (ACL) :
Type: Record
,Operation: Create
,Name(table): incident
,Name(fields): *
,Role: jupiterone_incident_creator
4. Role Assignment: Assign
jupiterone_incident_creator
role toJupiterOne
user
Configuration in JupiterOne
To install the ServiceNow integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select ServiceNow. Click New Instance to begin configuring your integration.
Creating a configuration requires the following:
The Account Name used to identify the ServiceNow account in JupiterOne. Ingested entities will have this value stored in
tag.AccountName
when theAccountName
toggle is enabled.Description to assist in identifying the integration instance, if desired.
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLED
and manually execute the integration.Your ServiceNow Hostname (e.g.,
j1.service-now.com
), Username, and Password.Your ServiceNow CMDB Classes to ingest, a comma separated value of classes.
Click Create once all values are provided to finalize the integration.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Data Model
Entities
The following entities are created:
Resources | Entity _type | Entity _class |
---|---|---|
Account | service_now_account | Account |
CMDB Host Object | service_now_cmdb_host | Host |
CMDB Object | service_now_cmdb_object | Configuration |
Incident | service_now_incident | Incident |
User | service_now_user | User |
User Group | service_now_group | UserGroup |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
---|---|---|
service_now_account | HAS | service_now_group |
service_now_account | HAS | service_now_user |
service_now_cmdb_object | ASSIGNED | service_now_user |
service_now_group | MANAGES | service_now_cmdb_object |
service_now_group | HAS | service_now_group |
service_now_group | HAS | service_now_user |
service_now_incident | ASSIGNED | service_now_user |
service_now_user | MANAGES | service_now_cmdb_object |
service_now_user | OWNS | service_now_cmdb_object |
Service Now Cmdb Host
service_now_cmdb_host
inherits from Host
Property | Type | Description | Specifications |
---|---|---|---|
correlationId | string | Derived from the property named: "correlation_id" | |
sysClassNames * | array of string s | ||
installStatus | string | Derived from the property named: "install_status" | |
attributes | string | Derived from the property named: "attributes" | |
businessUnit | string | Derived from the property named: "business_unit.value" | |
environment | string | Derived from the property named: "environment" | |
operationalStatus | string | Derived from the property named: "operational_status" | |
subcategory | string | Derived from the property named: "subcategory" | |
warrantyExpiration | number | Derived from the property named: "warranty_expiration" | |
managedBy | string | Derived from the property named: "managed_by.value" | |
ownedBy | string | Derived from the property named: "owned_by.value" | |
managedByGroup | string | Derived from the property named: "managed_by_group.value" | |
assignedTo | string | Derived from the property named: "assigned_to.value" | |
assetTag | string | Derived from the property named: "asset_tag" | |
substatus | string | Derived from the property named: "substatus" | |
location | string | Derived from the property named: "location.value" | |
department | string | Derived from the property named: "department.value" | |
assetFunction | string | Derived from the property named: "asset_function" | |
installDate | number | Derived from the property named: "install_date" | |
orderDate | number | Derived from the property named: "order_date" | |
comments | string | Derived from the property named: "comments" | |
mode | string | Derived from the property named: "mode" | |
hardwareStatus | string | Derived from the property named: "hardware_status" | |
hardwareSubStatus | string | Derived from the property named: "hardware_substatus" |