Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
check_exec_oracle
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!
- 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.
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
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)
Be the first to review this listing!