Build precise queries to find exactly what you need
Press ESC to close
Your review has been submitted and is pending approval.
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
Current Version
1.0
Last Release Date
2015-04-02
Owner
Elio Canale-Parola
Download URL
https://github.com/elio78/nagios/blob/master/check_exec_oracle
License
GPL
Compatible With
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>:<description>:<presence>:<number>
- 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 <warning_threshold> -c <critical_threshold>
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.
You must be logged in to submit a review.
To:
From: