ServiceNow, anyone?

(imported topic written by @atlauren )

I’m curious if anyone here uses ServiceNow? And if so, have you integrated endpoint data from BigFix into the ServiceNow’s configuration manager database?

And… how’d you go about it?

1 Like

(imported comment written by Pete F)

I too would like to know… we have just implemented Service now ourselves and are still in the early stages of development…

(imported comment written by Tim.Rice)

We also use Service-Now, and are planning to implement the CMDB functions.

For those systems where we have IEM installed, we export properties from the IEM database daily using the SOAP API. We aren’t using the REST API because we started planning for the CMDB before the REST API was available to us. Yes, we’ve been planning the CMDB for THAT long. The implementation keeps being pushed back due to staffing and scheduling issues.

Once the data has been extracted from IEM, the data will be imported into Service-Now by our Service-Now team. How they get it into SN is not something I’m involved it. I simply deliver a Tab Seperated export file once a day.

What I ended up doing seemed pretty straightforward… I went into webreports and made a report of the computers and all hardware information that we needed to import in. This data is mainly used for asset tracking, so it’s mostly service tags, OS info, and the attached peripherals (POS scanner, printers, cash drawer). Then, I wrote a .net application to FTP a target file from the root server to the ServiceNow MID server for consumption - which was copied into “BigFix Enterprise\BES Server\BESReportsData\CustomExe” directory. Then I went into webreports and scheduled the report and used the Customized Executable option on that page. The application I wrote is just a command line application that takes command line variables when called, for example; "IEM-ServiceNowFTP.exe reportfile activityname "

Our applications group will do the transform mapping based on the CSV file that I sent to the MID server to pull the data in. From what my guys tell me - that CSV data is importing into service now.

2 Likes

We are also interested in ServiceNow & BigFix/IEM integration. It would be great if others could post how they are doing it.

(with thanks to jhearnsberger)

I think these integrations can be as simple or complicated as needed. For example, some customers have a simple SOAP query that spits out results which are written to a CSV and then picked up by Service Now for consumption. I spoke with atlauren earlier today and he mentioned another customer is just using a WebReport exported to CSV that is left in the archive on the WR server and then picked up by Service Now.

In the integration that I worked on with the scripted soap query: it was written to return results that were exported to CSV as one row per computer with computer name, user name, ip address, last report time, hardware chassis, RAM, available and consumed disk space, and two other custom property results that were specific to that customer.

2 Likes

And further to what McGough says, it’s really easy to ‘slurp up’ IEM data using something like python and ReST. See my examples for IEM, SUA, and SCA at:
https://www.ibm.com/developerworks/community/blogs/edgeCity/entry/the_young_and_restless_or_web_service_queries_for_the_rest_of_us?lang=en

I just talked to a college local to the bay area about using this same method to import data to S/N.
jps

1 Like

Has anyone integrated SN to execute actions within IEM?

1 Like

This would require RestAPI scripting.

What kind of tasks would you want ServiceNow to be able to kick off?

I am using a simple little tool caled BFExtractToCSV (Google to download it…)

https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/Tivoli%20Endpoint%20Manager/page/Querying%20BigFix%20Data

This tool runs a script and then dumps out the data to a CSV. Then we have Service Now server picking up the csv file from a network share and import the data in to it…

Here are my Scripts…
I put this on one of my relay servers and I created a bat file

Run.bat (I created a windows scheduled job to run with a service account that has rights to web reports… And I scheduled it to run one a week…)

d:\BFExtractToCSV\BFExtractToCSV.exe -U servicenowexport -P servicenowexport -webreport http://epmreports -CustomQuery "servicenowexport"
more +2 servicenowexport.csv > SNE_Final.csv
more +2 servicenowexport.csv > D:\BFExtractToCSV\ServiceNowExport\SNE_Final.csv

queriesConfig.yaml (This is the config file with a bunch of examples I put my service now querie at the bottom…)

ComputerInfo:
relevance: (id of item 4 of it as string &"~;~" & (name of item 4 of it |"") as string &"~;~" & (operating system of item 4 of it |"") as string &"~;~" & (cpu of item 4 of it|"") as string &"~;~" & ((value of result (item 4 of it, item 2 of it)) | “”) as string &"~;~" & ((value of result (item 4 of it, item 1 of it)) | “”) as string &"~;~" & ((value of result (item 4 of it, item 3 of it)) | “”) as string &"~;~" & (last report time of item 4 of it as string|"") as string &"~;~" & (locked flag of item 4 of it as String |"") as string &"~;~" & (relay selection method of item 4 of it|"") as string &"~;~" & (relay hostname of item 4 of it|"") as string &"~;~" & (relay distance of item 4 of it as string |"") as string &"~;~" & (hostname of item 4 of it|"") as string &"~;~" & ((concatenation " " of ((ip addresses of item 4 of it as string))) | “”) as string &"~;~" & ((concatenation " " of (values of results (item 4 of it, item 0 of it))) | “”)) of (item 0 of it, item 1 of it, item 2 of it, item 3 of it, bes computers) of (bes property whose (default flag of it AND name of it = “Subnet Address”) , bes property whose (default flag of it AND name of it = “Free Space on System Drive”) , bes property whose (default flag of it AND name of it = “RAM”) , bes property whose (default flag of it AND name of it = “BIOS”))
delimiter: “~;~“
headers:
- Computer ID
- Computer Name
- Operating System
- CPU
- RAM
- Free Space on System Drive
- BIOS
- Last Report Time
- Is Locked
- Relay Selection Method
- Relay Hostname
- Relay Distance
- Hostname
- IP Addresses
- Subnet Addresses
ComputerProperties:
relevance: (id of item 1 of it as string &”~;~” & (name of item 1 of it |"") &"~;~" & ((concatenation “~;~” of ((if exist results (item 1 of it, item 0 of it) then ((if (error flag of it) then (error message of it) else (concatenations “, " of (values of it))) of results (item 1 of it, item 0 of it)) else “”) of (item 1 of it, elements of item 0 of it))) |”")) of (it, bes computers) of set of bes properties (%propertyNames)
delimiter: "~;~"
headers: (“Computer ID~;~Computer Name~;~”) & concatenation “~;~” of names of elements of set of bes properties (%propertyNames)

FixletInfo:
relevance: (id of it as string & “~;~”& name of it & “~;~”& name of site of it& “~;~”& applicable computer count of it as string & “~;~”& (display source severity of it|"")& “~;~”& (number of actions of it as string )& “~;~”& (category of it | “”) & “~;~” & (download size of it as string | “”) & “~;~”) of fixlets of bes site whose(name of it = “%siteName”)
delimiter: “~;~“
headers:
- Fixlet ID
- Fixlet Name
- Site Name
- Applicable Computer Count
- Source Severity
- Action Count
- Category
- Download Size
AnalysesResults:
relevance: (id of item 1 of it as string &”~;~” & name of item 1 of it &"~;~" & concatenation “~;~” of (values of results (properties of item 0 of it, items 1 of it)) ) of (it, applicable computers of it) of fixlet whose(id of it = %fixletID) of bes site whose( name of it = “%siteName”)
headers: (“Computer ID~;~Computer Name~;~”) & concatenation “~;~” of names of properties of fixlet %fixletID of bes site whose(name of it = “%siteName”)
delimiter: “~;~“
Actions:
relevance: (id of it as string &”~;~” & name of it &"~;~" & name of issuer of it &"~;~" & state of it as string &"~;~" & time issued of it as string &"~;~" & multiple flag of it as string ) of bes actions
headers:
- Action ID
- Action Name
- Issuer Name
- State
- Time Issued
- Multiple Action Group
delimiter: “~;~“
ActionResults:
relevance: ((Name of Computer of it as string |””) &"~;~" & (ID of Action of it as string |"") &"~;~" & (Name of Action of it as string |"") &"~;~" & (Status of it as string|"") &"~;~" & (Detailed Status of it as string |"") &"~;~" & (Line Number of it as string|"") &"~;~" & (Retry Count of it as string | “”)) of results of bes actions whose( id of it = %actionID)
headers:
- Action ID
- Action Name
- Issuer Name
- State
- Time Issued
- Multiple Action Group
delimiter: “~;~”

custom:
relevance: now
delimiter:

servicenowexport:
relevance: (item 0 of it as string & “~;~” & item 1 of it as string) of ((if (exists result (item 0 of it , item 1 of it) and exists values of result (item 0 of it , item 1 of it)) then (concatenation “%0A” of values of result (item 0 of it , item 1 of it)) else ("")) , (if (exists result (item 0 of it , item 2 of it) and exists values of result (item 0 of it , item 2 of it)) then (concatenation “%0A” of values of result (item 0 of it , item 2 of it)) else (""))) of (bes computers , bes property “Computer Name” , bes property “Server Owner”)
delimiter: "~;~"
headers:
- Computer Name
- Computer Owner


So this simply inputs the Computer Name and Computer Owner into Service Now. We plan on adding more infor into the CMDB later on in the future… Like CPU,RAM… And All I have to do is add the fields into

Hope this helps…

I do agree with
mlmcgoug

And her statement of “I think these integrations can be as simple or complicated as needed.” She is 100% correct… We like to keep it very simple…

-Rene

2 Likes

Hello Everyone,
My company has recently purchased BigFix and I have been working heavily to attempt to get it integrated with ServiceNow. Pulling information such as machine information of roughly 18k systems, so that support techs will have all the support information about the system when creating tickets within ServiceNow. Where I am so far is that I have been using web reports to try and crank out the appropriate output that is needed for my company but have found these hurdles:

  1. Web reports based on the analysis included a header box at the top left of the outputted CSV that seems to hamper up the mapping… Is there a way to kill that when its a direct output from an analysis?
  2. I have done a round about way using the web reports to pull the exact same data as what the analysis was pulling without relying on the analysis itself. When I do this, the information that is being pulled that has multiple results is now separated by comma’s vs semi-colons, which also can mess with the import. Not quite sure what to ask on this one, except based on that is there a work around that anyone knows here?

I am working on exploring the option that renehasp was speaking about at what was the tail end of this article. I am just wanting to leverage the forum community and all of your experiences to get a best practice so that I can do what is best for my company, and learn what avenues have been the most successful for you doing this. Any input in the category would be greatly appreciated.

Thank You,
-David

1 Like

Can you provide any of the session relevance you are using in web reports to pull the data?

Hello jgstew,
I appreciate the response, as of this last Friday came up with a solution with the tech that is doing our mapping, and the project is now complete. What the end result was, in case anyone else ends up doing this same thing, is to have an analysis loaded with all the needed properties, and then use a web report to pull all the properties out of the analysis without using the analysis itself, thus far eliminating the title box. Also I would mention that upon working with the person that was doing our mapping, the separating characters that were separating the multiple values were all able to be worked with. So ultimately, project complete. Thank you all.
-David

We are using the REST API (perl code) from Bigfix to extract data and the REST API for Service-Now to push directly into custom Bigfix tables in Service-Now. My custom tables in Service-Now are extended from cmdb-ci so the import then follows cmdb-ci->cmdb-ci-computer and cmdb-ci->cmdb-ci-service. I’ve also added the ability to create an incident based on the relationship of cmdb-ci->cmdb-ci-incident which we will use in change management.

Thanks
Frank

1 Like

Hi David,
I am a BigFix specialist in Texas. I am writing regarding your post on the topic of the BifFix REST API and pulling data from BigFix into ServiceNOW. I have a BigFix client in Texas who is interested to have a conversation with someone who has done this. Would you be willing to have a short conversation with them regarding your experiences? If so, please let me know.

All the best,
Michael

Hello Michael,
So sorry for the delay, there has been quite a few things that have kept me off the forums but now am back on, if this is still a conversation you would like to have I am happy to, but understand at the same point if the subject has been closed due to how long it has been. Let me know.

Thanks,
David

Hey, this was my thread!

/re-subscribe

ServiceNow integration shown at Mastery class - orlando 2019

4 Likes

Get the Packaged Certified application…

1 Like