You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

  • System Monitors are tools that execute repeated checks for availability of software components. 
    • For example, Nagios® is an Open Source System Monitor that is available at http://www.nagios.org.
    • An ecosystem of more or less compatible System Monitors has evolved, e.g. op5®, Checkmk and many others.
  • Users can monitor JS7 by use of Open Source licensed products and by commercially licensed products that check the availability of the JOC Cockpit, Controller and Agents..

Active Checks and Passive Checks

  • Active Checks are initiated from the System Monitor server and are performed on a regular basis, e.g. every 5 minutes.
    • The only purpose of Active Checks is to verify the availability of the JobScheduler application. 
    • This type of check does not provide information about the execution status of individual jobs.
    • The System Monitor Plugins explained in this article are intended for Active Checks only.
  • Passive Checks are initiated from the JOC Cockpit and report individual execution results to a System Monitor.

Download and Installation of the Plugins

Download

The following Plugins are available for download:

Both Plugins include to check availability of JOC Cockpit.

Installation

Copy the files to the plugin directory of your System Monitor installation.

Configuration of the Plugins

The configuration for the JS7 Controller and Agent Plugins includes to define

  • a System Monitor Command that specifies the parameterization of the Plugin and
  • a System Monitor Service that is the visible point of control in the System Monitor console.

JobScheduler Controller Plugin

Sample Configuration

Sample JS7 Controller Plugin Command configuration
# 'check_jobscheduler_with_joc' command definition
define command {
    command_name                check_js7_controller
    command_line                /opt/plugins/check_js7_controller.pl -j $ARG1$ -i $ARG2$ -a $ARG3$ -t $ARG4$
}
Sample JobScheduler Master Service configuration
 define service {
 use                             generic-service                 
 host_name                       localhost
 service_description             JS7Controller
 is_volatile                     0
 check_period                    24x7
 max_check_attempts              1
 normal_check_interval           1
 retry_check_interval            1
 contact_groups                  admins
 notification_options            w,u,c,r
 notification_interval           960
 notification_period             24x7
 check_command     check_js7_controller!http://localhost:4446!jobscheduler!test:test!5!
 active_checks_enabled           1          
 passive_checks_enabled          0  
}

Parameterization

Parameter


Data Type

Default

Description

-j--joc-urlStringURL of JOC Cockpit (HTTP and HTTPS are supported)
-i--idStringID of a JS7 Controller
-a--accountStringAccount for HTTP authentication with JOC Cockpit (<user:password>)

-c

--cafile

String

Location of a certificate file or a CA bundle file to verify the SSL connection to JOC Cockpit

-C

--capath

String

Path to a directory that includes certificate files or CA bundle files to verify the SSL connection to JOC Cockpit

-s--hostname-verificationn/afalseThis switch activates SSL hostname verification

-t

--timeout

Number

30

Timeout in seconds for establishing the connection to JOC Cockpit

-d--detailedn/afalse

If set then status information for each Controller instance is returned. A Cluster can include two Controller instances.

Example:

Example Active Check for JS7 Controller
# The JS7 Controller is operated for the ID 'jobscheduler' and JOC Cockpit has the URL http://localhost:4446 with the account (user and password 'test') enabled
 
<path_to_plugins>/check_js7_controller.pl -j http://localhost:4446 -i jobscheduler -a test:test

Notes

  • JOC Cockpit installation since 2.0.0 is required.
  • Perl > 5.8 is required and some Perl packages are required. You can download and install Perl packages from e.g. http://www.cpan.

    • HTTP::Request

    • LWP::UserAgent

    • LWP::Protocol::https (if HTTPS is used to connect to JOC Cockpit)
    • JSON
    • MIME::Base64

JobScheduler Agent Plugin

A service Command has to be declared before configuring the System Monitor Service that makes use of this Command.

Sample Configuration

Sample JS7 Agent Plugin Command configuration with JOC Cockpit
# 'check_js7_agent' command definition
define command {
    command_name                check_js7_agent
    command_line                /opt/plugins/check_js7_agent.pl -j $ARG1$ -i $ARG2$ -a $ARG3$ -t $ARG4$
}
define service {
 use                             generic-service                 
 host_name                       localhost
 service_description             JS7Agents
 is_volatile                     0
 check_period                    24x7
 max_check_attempts              1
 normal_check_interval           1
 retry_check_interval            1
 contact_groups                  admins
 notification_options            w,u,c,r
 notification_interval           960
 notification_period             24x7
 check_command     check_js7_agent!http://localhost:4446!jobscheduler!test:test!5!
 active_checks_enabled           1          
 passive_checks_enabled          0  
}


Parameterization

Parameter


Data Type

Default

Description

-j--joc-urlStringURL of JOC Cockpit (HTTP and HTTPS are supported)
-i--idStringID of a JS7 Controller
-a--accountStringAccount for HTTP authentication to JOC Cockpit (<user:password>)

-A

--agent


URL of an Agent, optional,  can be specified several times

-c

--cafile

String

Location of a certificate file or a CA bundle file to verify the SSL connection to JOC Cockpit

-C

--capath

String

Path to a directory that includes certificate files or CA bundle files to verify the SSL connection to JOC Cockpit

-s--hostname-verificationn/afalseThis switch activates SSL hostname verification

-t

--timeout

Number

30

Timeout in seconds for establishing the connection to JOC Cockpit

-d--detailedn/afalse

If set and the Cluster has more than one Master and not all Masters are running then the message contains host:port of each Master

Example:

Example Active Check for all JobScheduler Agents with JOC Cockpit
# The JS7 Controller is operated for the ID 'jobscheduler' and JOC Cockpit has the URL http://localhost:4446 with the account (user and password 'test') enabled

<path_to_plugins>/check_js7_agent.pl -j http://localhost:4446 -i jobscheduler -a test:test

Notes

  • JOC Cockpit installation since 2.0.0 is required.
  • Perl > 5.8 is required and some Perl packages are required. You can download and install Perl packages from e.g. http://www.cpan.

    • HTTP::Request

    • LWP::UserAgent

    • LWP::Protocol::https (if HTTPS is used to connect to JOC Cockpit)
    • JSON
    • MIME::Base64
    • Cwd

Report Script per Agent

  • check_js7_agent.pl calls an optional script report_js7_agent.pl per Agent.
  • This script does not connect to JOC Cockpit or perform any checks but simply serves to create individual notifications per Agent to the System Monitor.
  • The script is executed if it is available from the same directory as the calling script and has to be executable.
  • The script is parameterized to transfer the message type and notification to the System Monitor.
    • report_js7_agent.pl <joc-cockpit-url> <controller-id> <agent-url> <agent-status>
    • <joc-cockpit-url> is the URL that has been specified as a parameter to the script check_js7_agent.pl
    • <scheduler-id> is the JobScheduler Master ID that has been specified as a parameter to the script check_js7_agent.pl
    • <agent-url> is the URL identifying the Agent
    • <agent-status> is one of "RUNNING" , "UNREACHABLE", "TERMINATING", "UNKNOWN_AGENT"

      Example report_js7_agent.pl
      #!/usr/bin/env perl
      use strict;
      use warnings;
       
      my ($jocUrl, $controllerId, $agentUrl, $agentStateText) = @ARGV;
      # do something with $jocUrl, $controllerId, $agentUrl, $agentStateText


  • No labels