Page History
...
- System Monitors are tools that execute repeated checks for the availability of software componentsproducts.
- 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 checkmk® and many others.
- Users can monitor JS7 with both Open Source and commercially licensed products to check the availability of the JOC Cockpit, Controller and Agents.
...
- Active Checks are initiated from the System Monitor server and are performed on a regular basis, e.g. every 5 minutes.
- The purpose of Active Checks is to verify the availability of the JS7 componentsproducts.
- This type of check does not provide information about the execution status of individual jobs.
- Active Checks make use of the JS7 - REST Web Service API. For efficiency the checks are implemented with Perl.
- The System Monitor Plugins described in this article are intended for Active Checks.
- Passive Checks are initiated from the JOC Cockpit and report execution results from workflows and jobs to a System Monitor.
- This mechanism is by far more accurate and efficient than polling the JS7 History for failed workflows and jobs.
- The JobScheduler Monitoring Interface is a complete solution for the JS7 - Notifications can be used for management of complex Passive Checks that are forwarded to a System Monitor.
Download and Installation of the Plugins
...
JS7 Controller Plugin
Sample Configuration:
Code Block | ||||
---|---|---|---|---|
| ||||
# 'check_js7_controller' 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$ } |
Code Block | ||||
---|---|---|---|---|
| ||||
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:
Option | Option (long format) | Data Type | Required | Default | Description |
---|---|---|---|---|---|
-j | --joc-url | String | yes | — | URL of JOC Cockpit (HTTP and HTTPS are supported) |
-i | --id | String | yes | — | ID of a JS7 Controller |
-a | --account | String | yes | — | Account for HTTP authentication with JOC Cockpit (<user:password>) |
-c | --cafile | String | no | — | Location of a certificate file or a CA bundle file to verify the SSL connection to JOC Cockpit |
-C | --capath | String | no | — | Path to a directory that includes certificate files or CA bundle files to verify the SSL connection to JOC Cockpit |
-s | --hostname-verification | Switch | no | false | This switch activates SSL hostname verification (recommended) |
-t | --timeout | Number | no | 30 | Timeout in seconds for establishing the connection to JOC Cockpit |
-d | --detailed | Switch | no | false | This switch causes status information for each Controller instance to be returned. A Cluster can include two Controller instances. |
...
Code Block | ||||
---|---|---|---|---|
| ||||
# 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 version 2.0.0 or newer 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
...
A service Command has to be declared before configuring the System Monitor Service that makes use of this Command.
Sample Configuration:
Code Block | ||||
---|---|---|---|---|
| ||||
# '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$ } |
Code Block | ||
---|---|---|
| ||
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:
Option | Option (long format) | Data Type | Required | Default | Description |
---|---|---|---|---|---|
-j | --joc-url | String | yes | — | URL of JOC Cockpit (HTTP and HTTPS are supported) |
-i | --id | String | yes | — | ID of a JS7 Controller |
-a | --account | String | yes | — | Account for HTTP authentication to JOC Cockpit (<user:password>) |
-A | --agent | String | no | — | URL of an Agent, optional, can be specified several times |
-c | --cafile | String | no | — | Location of a certificate file or a CA bundle file to verify the SSL connection to JOC Cockpit |
-C | --capath | String | no | — | Path to a directory that includes certificate files or CA bundle files to verify the SSL connection to JOC Cockpit |
-s | --hostname-verification | Switch | no | false | This switch activates SSL hostname verification (recommended) |
-t | --timeout | Number | no | 30 | Timeout in seconds for establishing the connection to JOC Cockpit |
-d | --detailed | Switch | no | false | This switch causes status information for each Agent instance to be returned individually |
...
Code Block | ||||
---|---|---|---|---|
| ||||
# 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 version 2.0.0 or newer 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 scriptreport_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. Positional arguments are used.
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 scriptcheck_js7_agent.pl
<controller-id>
is the Controller ID which has been specified as a parameter to the scriptcheck_js7_agent.pl
<agent-url>
is the URL identifying the Agent<agent-status>
is one of "COUPLED" , "RESETTING", "RESET", "COUPLINGFAILED", "SHUTDOWN", "UNKNOWN"Code Block language perl title Example of 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
...