Utilities

check_exec_oracle

Description:

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

Compatible With

  • Nagios 4.x

License

GPL


Project Files
Project Photos
Project Notes
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.
Reviews (0) Add a Review
Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
0 (0)
Favorites
0
Views
9,857