Home Directory Utilities check_exec_oracle

Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

check_exec_oracle

Rating
0 votes
Favoured:
0
Current Version
1.0
Last Release Date
2015-04-02
Compatible With
  • Nagios 4.x
License
GPL
Hits
9875
Files:
FileDescription
check_exec_oracleNagios Plugin Perl file
Nagios CSP

Meet The New Nagios Core Services Platform

Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.

Monitoring Made Magically Better

  • Nagios Core on Overdrive
  • Powerful Monitoring Dashboards
  • Time-Saving Configuration Wizards
  • Open Source Powered Monitoring On Steroids
  • And So Much More!
check_exec_oracle
This nagios plugin checks all the processes necessary for a specific service like :
- mqseries
- oracle
- dimension cm (serena)
- any application running a list of processes
This plugin checks all the processes necessary to get an application available. For example to have Oracle DataBase up and running you must have a lot of running processes (22 in my case).
This plugin checks the 22 processes according to a predefined array composed by one row per process.
Each row has the following format :

:::

- process_name : name of the process (result of a ps command)
- description : a description of the process role
- presence : indicates if process is mandatory (value 1) or not (value 0)
- number : value set by the plugin, indicates the number of running processes

This array is set via a specific plugin procedure (initializeProcArray), an example is given below for Oracle

sub initializeProcArray {
setProcArrayRow('ora_pmon',"Process Monitor Process",1,0);
setProcArrayRow('ora_psp0',"Application Trigger monitor",1,0);
setProcArrayRow('ora_vktm',"virtual keeper of time",1,0);
setProcArrayRow('ora_gen0',"general task execution background process",1,0);
setProcArrayRow('ora_diag',"diagnostic dumps and executes global oradebug commands",1,0);
setProcArrayRow('ora_dbrm',"database resource manager",1,0);
setProcArrayRow('ora_dia0',"hang detection and deadlock resolution",1,0);
setProcArrayRow('ora_mman',"internal database tasks",1,0);
setProcArrayRow('ora_dbw0',"Database Writer Process",1,0);
setProcArrayRow('ora_lgwr',"Log Writer Process",1,0);
setProcArrayRow('ora_ckpt',"Checkpoint Process",1,0);
setProcArrayRow('ora_smon',"System Monitor Process",1,0);
setProcArrayRow('ora_reco',"Recoverer Process",1,0);
setProcArrayRow('ora_mmon',"various manageability-related background tasks",1,0);
setProcArrayRow('ora_mmnl',"light-weight manageability-related tasks",1,0);
setProcArrayRow('ora_d000',"Dispatcher Process",1,0);
setProcArrayRow('ora_s000',"Shared Server Process",1,0);
setProcArrayRow('ora_qmnc',"Queue Monitor Coordinator",1,0);
setProcArrayRow('ora_q000',"Queue Monitor Server Process",1,0);
setProcArrayRow('ora_q001',"Queue Monitor Server Process",1,0);
setProcArrayRow('ora_smco',"space management coordinator",1,0);
setProcArrayRow('ora_emnc',"process for database event management and notifications",1,0);
setProcArrayRow('ora_w000',"Slave Space Management Coordinator Process",1,0);
}

The plugin is launched with the following command

chack_exec_oracle -w -c

Two examples are given below.

I changed this plugin to check Serena (Dimension CM) processes. The changes are listed below :
1 - Change headerMessage variable :
my $headerMessage="Serena processes control";
2 - Change initializeProcArray as following
sub initializeProcArray {
setProcArrayRow('dmlsnr',"Process dmlsnr",1,0);
setProcArrayRow('dmpool.x',"Process dmpool.x",1,0);
setProcArrayRow('dmpoolhlp.x',"Process dmpoolhlp.x",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('dmemail',"Process dmemail",1,0);
setProcArrayRow('dmschedule',"Process dmschedule",1,0);
setProcArrayRow('dmdeploysrv.x',"Process dmdeploysrv.x",1,0);
setProcArrayRow('dmlcasrv.x',"Process dmlcasrv.x",1,0);
setProcArrayRow('dmupgradesrv.x',"Process dmupgradesrv.x",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('perl',"Process perl dimensionCm",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('java',"Process java Dimension CM",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('dmappsrv.x',"Process dmappsrv.x",1,0);
setProcArrayRow('dmlibsrv.x',"Process dmlibsrv.x",1,0);
}

3 - Change ps command line like this

@listeProc = split(/n/,(`ps -eaf | grep dimension | grep -v grep | tr -s ' ' ';'`));

4 - Replace code
if($execProc =~ m/(ora_.*)_(.*)/){
($trace)? print("execProc filtre : $1n"):();
my $runningProcess = $1;
countExecProcesses(%procName,$runningProcess);
}

by
countExecProcesses(%procName,$execProc);

5- This woorks for Serena Processes

I hope this will help.