During service map discovery, how does it find out running process from url entry point?

Binglin Huang
Tera Expert

I am doing service map/application service discovery and encounter a strange issue, where I am expecting to see Jboss or tomcat pattern got triggered. But it ended up in "general application" pattern. 

I checked the discovery log, the "commandLine" attribute is empty while "executable" and "pid" are found.(see screenshot).

I can confirm the pid retrieve is correct and it has the full command line i need (see screenshot).

The application is on solaris. The OOTB solaris server pattern does not discover running processes. So, for all  our solaris hosts, there is no running process related to them. I know servicenow tries to lookup running process in the table, but it does not affect my another applciation, also on solaris, mapped with no issue.

Anyone knows how servicenow retrieve process information from a given entry point? Like where can i find a command or script to troubleshoot this issue? 

3 REPLIES 3

DuaneNMore
Kilo Guru

If you  open up the jboss pattern you will see that your commandline does not contain any of the needed strings. From my OOTB Jboss Pattern, the first step "match process". Based on a similar analysis of the tomcat pattern what you have shown wouldn't match there either. Finally it falls through to generic application. If it gets by all the other applications it doesn't take much for it to match generic. 

find_real_file.png

Binglin Huang
Tera Expert

My jboss pattern is the same as your screenshot. but the question is, why commandLine field is empty.

DuaneNMore
Kilo Guru

ServiceNow top-down discovery depends upon a couple of things;

first is that the cmdb_running_process table is populated by virtue of vertical discovery for the server in question; 

 Pre Service Mapping Task Scripts: these scripts go drag in the data needed during top-down discovery. In hte case of Solaris and other non-linux variants, the ProcessInfoUnix script is going to be run.  getRunningProcess then just goes to the cmdb_running_process table to drag in the processes running on the designated server and port. 

So go look at the cmdb_running_process table entries for your server to review what that looks like. If Solaris is not pulling in complete information for your processes (which I find unsurprising), then that is likely your problem.