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


Remember Me


0 votes
Current Version
Last Release Date
Compatible With
  • Nagios 4.x
check_exec_oracleNagios Plugin Perl file
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
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;


5- This woorks for Serena Processes

I hope this will help.