Oracle Databases Instances are getting discovered without instances name

Santosh Kumar8
Giga Contributor

Hi All,

I am getting this issue with Oracle database instances discovery where database instances are getting discovered without instance name. This issue i am getting when using patterns. 

Its difficult to identify database without name as there can be more than one instances on one host

1 ACCEPTED SOLUTION

SiD2
ServiceNow Employee
ServiceNow Employee

Thanks for confirming, this is an open issue only in Newyork version and we fixed in Orlando.

Actually the wrong identification section is getting executed because of the LINUX os type check.

Kindly remove the LINUX os type check as this identification section is mean to run only on Solaris OS. So remove that condition so that proper 2nd identification section runs.

Save and publish the pattern, After syncing pattern with mid try running fresh discovery on your linux machine, you should not see this issue anymore.

We have a KB article as well for the same.

https://hi.service-now.com/kb_view.do?sys_kb_id=551d275bdb7bcc98414eeeb5ca96196f

Please mark Helpful / Accept Solution so that it helps others with similar questions.

View solution in original post

30 REPLIES 30

SiD2
ServiceNow Employee
ServiceNow Employee

So in the horizontal discovery log of this solaris server, in the discovery status you will see the list of patterns executed.

You will find the list of patterns executed, can you open the oracle pattern log from there and i hope you get some errors there.

Just check and let me know, provide screenshots if possible.

Please mark Helpful / Accept Solution so that it helps others with similar questions.

DB Instance pattern never kicks in for solaris server. I checked Discovery Definition->CI Classification->All  here also none of the solaris related process is added here under application and thats true as DB Instance pattern is not even getting kicked in. 

If you look at SSH credential requirement you would see - lsof is required to identify running processes. 

This is the error and warning i see on solaris server discovery. I have 3 DB instances running over it and non are getting discovered 

find_real_file.png

 

We discover Oracle on Solaris fine and do not have lsof installed. Lsof is needed to map ports to process ids. In order to populate the cmdb_running_process table and collect enough informatoin for the classifier to get kicked off you need to have ps run for solaris servers; in particular when "Solaris - Application Dependency Mapping". 

If you are doing service mapping and try to discover processes on your server by Port, you might run into trouble, but it should be able to do horizontal discovery just fine. 

This Solaris ADM probe look for lsof. so you are saying even if we dont have this access it should be fine as long as we have 'ps" access for active processes. 

Solaris - Active Connections

lsof.sh

lsof -iTCP -n -P -F pcnfT -z$1

@DuaneNMore  we have all access for PS command however my solaris admin says that we cant have lsof on solaris. somehow i see all pids while running discovery with DB instance pattern is not getting triggered post solaris ADM. in linux system post unix ADM, Oracle DB instance pattern is getting triggered but not on solaris, o thought its because of missing lsof. If you did any changes in OOTB patter to get this working or its working with OOTB pattern only.

   

In the Solaris ADM Multiprobe, the ps command collects and populates the cmdb_running_process table. In essence the lsof command is collecting and populating the cmdb_tcp however, one of the sensors links the 2, filling in the "Listening on" and "Connectiing to" columns on the cmdb_running_process table, and populating the PID and process table on cmdb_tcp.

If you are doing top-down (i.e. Service Mapping) discovery, the port Oracle is listening on is important because connections strings usually specify a port (such as 1521).

Horizontal discovery doesn't look for port, if it makes it to the pattern you are passing it a PID. So the summarized version is:

  1. Solaris ADM runs and collects the running process table.
  2. Process Classifiers are run; In this case the Oracle Instance Classifier runs. 
  3. The classifier matches a process and triggers the appropriate probes. SInce this is type=unix it should trigger "Oracle DB on Unix" Horizontal Discovery Probe. 
  4. When this probe is kicked off; since this is Horizontal Discovery it is expecting a Host Name/IP and PID to be passed in to it. 

Go to the Oracle Classifier and open it up and look at the condition:

CI Classification->Processes->Oracle Instance:

find_real_file.png

Now Go To Your Solaris Server, open up the RUnning Processes related list and put that condition into the condition builder:

find_real_file.png

Notice there are no values in the Listening On or Connecting To columns. That is because I don't have lsof installed. For each one which matches the condition it is going to kick off the "Oracle DB on Unix" Horizontal Pattern listed at the bottom of the Oracle Classifier in the "Triggers Probes" related List:

find_real_file.png

At this point if you want to complete the simulation you would open up the pattern launch the debugger for the first identification section; select Debug Type=Horizontal and then enter the hostname and PID for the process.