- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 09:24 AM
Hi, I am new to ServiceNow Discovery, I understand that we define customize tables/classes as per requirement from OOB (data modeling etc.). Then we setup Mid-Servers/probes etc.
I am confused to understand below.
When discovery scan gets results, how that data goes to the exact/actual table. For example, how discovered data from probe will go-to computer table/class ?
Is there any place where we have to setup before we run the probe?
Thanks in advance.
Regards
Cameron
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 10:30 AM
Hi Kamran,
Discovery is mostly OOB, give it a range of IPs and setup a schedule and most of the data will auto-populate the right tables. There are some oddities that you'll have to adjust to, i.e. Storage tables populate instead of disk tables and once you start to mature your instance, you may need to get some custom OIDs for specific network gear in your environment.
IMO, the hardest part of Discovery was getting your schedules worked out. You need to have a solid understanding of your network, I suggest getting with your network engineers and get them to bless what you can and can't discover before doing anything.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 10:30 AM
Hi Kamran,
Discovery is mostly OOB, give it a range of IPs and setup a schedule and most of the data will auto-populate the right tables. There are some oddities that you'll have to adjust to, i.e. Storage tables populate instead of disk tables and once you start to mature your instance, you may need to get some custom OIDs for specific network gear in your environment.
IMO, the hardest part of Discovery was getting your schedules worked out. You need to have a solid understanding of your network, I suggest getting with your network engineers and get them to bless what you can and can't discover before doing anything.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 10:34 AM
Hi,
Please follow below links which tells you about discovery architecture and how sensor script cretes, update CIs.
Getting Started with Agentless Discovery - ServiceNow Wiki
Discovery Agentless Architecture - ServiceNow Wiki
Regards,
Sachin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 11:20 AM
Hi, Thanks for your reply, I reviewed the link. Here is my another confusion. I have a custom table under class Servers ( Public_Safety-Servers). I want the discovery results into this custom table. 2nd question is how will discovery understand which data will go under which attribute ? I have some custom attributes in that table.
Thanks in advanced.
Cameron

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 11:48 AM
If you want discovery to populate custom table, then you will have to create discovery classier, custom probes and custom sensors, schedules,crednetials ... .
If you want to populate custom field for existing sensor, then you can follow below steps as example.
1. Create table cmdb_ci_computer => create field "Motherboard" with Element name "u_motherboard"
2. Application navigator => Probes => new
Name: Motherboard
Class: WMI Probe
ECC queue WMIRunner
ESS queue name WMI:Motherboard
SAVE
3. WMI Fields => New
WMIPath: Win32_BaseBoard.Manufacturer
Probe: Motherboard
WMI Fields => New
WMIPath: Win32_BaseBoard.Product
4. => Sensors => New
Add code
new DiscoverySensor({
process: function(result) {
current.u_motherboard_model = result.Win32_BaseBoard.Product;
current.u_motherboard_manufacturer = result.Win32_BaseBoard.Manufacturer;
},
type: "DiscoverySensor"
});
5. Create a new Business Rule where set current.u_motherboard = current.u_motherboard_manufacturer.toString().split(" ")[0] + " " + current.u_motherboard_model
Regards,
Sachin