Configuration
JobScheduler - SystemMonitorNotification files
Location: <scheduler_install>/config/notification
File | Description |
---|---|
SystemMonitorNotification_v1.0.xsd | The XML Schema file that defines which values are allowed in your XML files for the JobScheduler monitoring. That means, you just have to modify your |
SystemMonitorNotification_<MonitorSystem>.xml | Configuration file for each System Monitor.
|
| Configuration file for all System Monitors.
This file is optional and contains the definitions of the |
SystemMonitorNotification Elements
The configuration element descriptions are organized into the following major categories:
Element | Element description | Description |
---|---|---|
SystemMonitorNotification | Top Level Element | Configuration for notifications to a system monitor |
Notification | Once or more inside a SystemMonitorNotification element | Specifies a system monitor notification that includes a command line invocation and the JobScheduler objects |
Timer | Optional, once or more inside a SystemMonitorNotification element | Performance measurement definition |
SystemMonitorNotification
SystemMonitorNotification
support the following attributes:
Note:
- attribute
system_id
in case of the
SystemMonitorNotificationTimers.xml
the value of this attribute is not important and can have any value.
e.g.:
timers
Attribute | Usage | Description |
---|---|---|
system_id | required | System Monitor identifier. |
SystemMonitorNotification / Notification
The following elements may be nested inside a Notification
element:
Element | Element description | Description |
---|---|---|
NotificationMonitor | Once inside a Notification element | Specifies the System Monitor interface that is being used for messages: either by a Plug-in Interface or by command line invocation |
NotificationObjects | Once inside a Notification element | Specifies the Job Chain and the Timer definitions |
SystemMonitorNotification / Notification / NotificationMonitor
NotificationMonitor
supports the following attributes:
Note:
- attributes
service_name_on_error
andservice_name_on_success
- at least one of these attributes must be configured
- both attributes can be configured together
Attribute | Usage | Description |
---|---|---|
service_name_on_error | Optional | This setting specifies the service that is configured in the Service Monitor for messages of job runs with errors and for job recovery messages. The service name must match the corresponding setting in the System Monitor. |
service_name_on_success | Optional | This setting specifies the service that is configured in the Service Monitor for receiving informational messages on successful job runs. The service name must match the corresponding setting in the System Monitor |
service_status_on_error | Optional | This setting specifies the service status code for error messages. Default: |
service_status_on_success | Optional | This setting specifies the service status code for success messages Default: |
One of the following elements must be nested inside a NotificationMonitor
element:
Element | Element description | Description |
---|---|---|
NotificationInterface | Optional, once inside of NotificationMonitor element | Plugin Interface to be executed for System Monitor notification |
NotificationCommand | Optional, once inside of NotificationMonitor element | Command line to be executed for System Monitor notification |
SystemMonitorNotification / Notification / NotificationMonitor / NotificationInterface
NotificationInterface
support the following attributes:
Attribute | Usage | Description |
---|---|---|
monitor_host | Required | This setting specifies the hostname or ip address of System Monitor host. |
monitor_port | Required | This setting specifies the TCP port that the System Monitor would listen to. |
monitor_password | Optional | This setting specifies the password configured in the ncsa.cfg file used by NSCA. |
monitor_connection_timeout | Optional | This setting specifies the connection timeout in ms. Default: |
monitor_response_timeout | Optional | This setting specifies the NSCA response timeout in ms. |
monitor_encryption | Optional | This setting specifies that the communication with the System Monitor is encrypted. By default no encryption is used.
|
service_host | Required | This setting specifies the name of the host that executes the passive check. The name must match the corresponding setting in the System Monitor. |
plugin | Optional | Default: com.sos.scheduler.notification.plugins.notifier.SystemNotifierSendNscaPlugin |
SystemMonitorNotification / Notification / NotificationMonitor / NotificationCommand
NotificationCommand
support the following attributes:
Attribute | Usage | Description |
---|---|---|
plugin | Optional | Default: com.sos.scheduler.notification.plugins.notifier.SystemNotifierProcessBuilderPlugin |
SystemMonitorNotification / Notification / NotificationObjects
One of the following elements must be nested inside a NotificationObjects
element:
Element | Element description | Description |
---|---|---|
JobChain | Optional, once or more inside of NotificationObjects element | Restricts notifications for job chains |
Timer | Optional, once or more inside of NotificationObjects element | Restricts notifications for performance checks (Timer) |
SystemMonitorNotification / Notification / NotificationObjects / JobChain
JobChain
support the following attributes:
Attribute | Usage | Description |
---|---|---|
notifications | Optional Integer | Specifies the number of notifications that are sent to a System Monitor. Default: |
scheduler_id | Optional | Notifications are restricted to the JobScheduler instance with the given identification. By default notifications will be sent for all JobScheduler instances that would log into the same database. Regular expression can be used. |
name | Optional | Job chain name including possible folder names. Regular expression can be used. |
step_from | Optional | Restricts notifications for job chains to a sequence of job nodes that are specified with the step_from and step_to attributes. |
step_to | Optional | Restricts notifications for job chains to a sequence of job nodes that are specified with the step_from and step_to attributes. |
excluded_steps | Optional | Specifies the steps which will be excluded from the analysing (separated by semicolon) |
SystemMonitorNotification / Notification / NotificationObjects / Timer
Timer support the following attributes:
Attribute | Usage | Description |
---|---|---|
notifications | Optional Integer | Specifies the number of notifications that are sent to a System Monitor. Default: |
name | Optional | Correspondence to Timer name setting defined in the SystemMonitorNotification / Timer element |
notify_on_error | Optional Boolean | Send timer check notification when the configured job chain contains the error notifications. Default: |
SystemMonitorNotification / Timer
The following elements must be nested inside a Timer
element:
Element | Element description | Description |
---|---|---|
JobChain | Once or more inside of Timer element | Restricts notifications for job chains |
Minimum | Optional or once inside of Timer element | Minimum required time consumption for job or job chain execution. Allows script code to be executed that returns the minimum execution time required in seconds. |
Maximum | Optional or once inside of Timer element | Maximum allowed time consumption for job or job chain execution. Allows script code to be executed that returns the maximum execution time required in seconds. |
Timer
support the following attributes:
Attribute | Usage | Description |
---|---|---|
name | Required | Correspondence to Timer used in the The name must be unique across all timers definitions. |
SystemMonitorNotification / Timer / JobChain
JobChain
support the following attributes:
Attribute | Usage | Description |
---|---|---|
scheduler_id | Optional | Notifications are restricted to the JobScheduler instance with the given identification. By default notifications will be sent for all JobScheduler instances that would log into the same database. Regular expression can be used. |
name | Optional | Job chain name including possible folder names. Regular expression can be used. |
step_from | Optional | Restricts checks for job chains to a sequence of job nodes that are specified with the step_from and step_to attributes. |
step_to | Optional | Restricts checks for job chains to a sequence of job nodes that are specified with the step_from and step_to attributes. |
SystemMonitorNotification / Timer / Minimum
The following elements must be nested inside a Minimum
element:
Element | Element description | Description |
---|---|---|
Script | Once inside of Minimum element | Script code in one of the supported languages |
SystemMonitorNotification / Timer / Maximum
The following elements must be nested inside a Maximum
element:
Element | Element description | Description |
---|---|---|
Script | Once inside of Maximum element | Script code in one of the supported languages |
SystemMonitorNotification / Timer / Minimum|Maximum / Script
Script
support the following attributes:
Attribute | Usage | Description |
---|---|---|
language | Required | Script language name Supported languages:
|
The Script element can contains
- fixed value
- calculation based on the job/order parametes
Fixed value
Fixed value is the duration time in seconds for the specific Minimum
or Maximum
definition
Calculation
The calculation result is the time in seconds for the specific Minimum
or Maximum
definition.
This example calculate the execution time dependend of the %file_size%
parameter, that was set by a specific job (see the example below)´.
This example job calculate and create a new order parameter file_size
.
To store the parameters into database (table SCHEDULER_MON_RESULTS
) :
- set the
scheduler_notification_result_parameters
parameter (see job documentationjobs/JobSchedulerNotificationStoreResultsJob.xml
) - set the
com.sos.scheduler.notification.jobs.result.StoreResultsJobJSAdapterClass
as monitor
Message
Usage
The Message can be configured on the following parent nodes as CDATA element :
SystemMonitorNotification / Notification / NotificationCommand
SystemMonitorNotification / Notification / NotificationInterface
The Message can contains:
- fixed values
- variables
Example: <![CDATA[ scheduler id = %MON_N_SCHEDULER_ID% ]]>
Variables
All variables must be defined by using of the %<variable name>%
syntax.
The order of the substitution the variables values is:
- Table variables.
- Service variables.
- OS environment variables.
Table variables
Service variables
OS environment variables
All existing system variables can be defined by message with the syntax like %<variable name>%
(Windows/Unix)
.
Examples
Notification environment variables
The default com.sos.scheduler.notification.plugins.notifier.SystemNotifierProcessBuilderPlugin
plugin used by the SystemMonitorNotification / Notification / NotificationCommand
element sets the following variables as environment variables:
Table variables
Service variables
These variables can be used when the NotificationCommand calls the notification client not directly, but a shell script, that make the logical implementation for sending of the notification messages.
Table variables
Service variables
Examples
Examples OP5
NotificationInterface
Here is an except of an XML file used for notifying a specific System Monitor (OP5 Monitor) and using NotificationInterface:
NotificationCommand
Here is an except of an XML file used for notifying a specific System Monitor (OP5 Monitor) and using NotificationCommand on Windows:
Examples Zabbix
NotificationCommand
Here is an except of an XML file used for notifying a specific System Monitor (Zabbix Monitor) and using NotificationCommand
JobScheduler - Job Chains
WORK IN PROGRESS
Use Cases
Recoverable Errors
Initial Situation: A Job Chain is triggered by directory monitoring. That is, when a certain file comes in a monitored folder, the Job Chain starts.
Problem: The Job Chain ended with error.
Handling: The System Monitor will be notified to the service related to the Job Chain with the message error. If a new execution of the Job Chain from a new file end without errors, does not mean that the error is recovered, since the file that has been processed is now another one. That is, the error message at the System Monitor will stay till the same file is again placed in the monitored directory and the Job Chain ends without errors.
Configuration:
- XML
CheckConfigurationHistory.xml
: Indicate the ID of the JobScheduler and the name of the Job Chain you want to monitor. - XML
SystemMonitorNotification.xml
: Specify the name of the Service (in the System Monitor) and specify that it is about aservice_name_on_error
since you want to have the control when the Job Chain ends in an error. - System Monitor: Services in the System Monitor have to be configured and named the same way as in the XML file above
SystemMonitorNotification.xml
.
Workflow Execution takes too long
Initial Situation: A Job Chain is triggered and it could not end, it hanged in a step, taking then longer than expected.
Problem: Execution time was too long
Handling: A timer for this Job Chain is set and the System Monitor will be notified about it. The expiration times for the Job Chains are configured with enough time for processing, that means, this is usually used for cases where the Job Chain hanged in a specific step.
Configuration:
- XML
CheckConfigurationHistory.xml
: As in the example above, indicate the ID of the JobScheduler and the name of the Job Chain you want to monitor. Moreover, specify the timer for this specific job chain and the function to calculate the expiration time for the timer. - XML
SystemMonitorNotification.xml
: As in the example above, specify the name of the Service (in the System Monitor) and specify that it is about aservice_name_on_error
since you want to have the control when the Job Chain ends in an error. Moreover and essential for this particular case, specify how many times the timer should notify your System Monitor about the expiration of a timer. - System Monitor: As in the example above, Services in the System Monitor have to be configured and named the same way as in the XML file above
SystemMonitorNotification.xml
.
SFTP connection refused
Initial Situation: There is a Job Chain that uses SFTP for transferring files. You have a setback configured in this step of the Job Chain, so that if the connection to the SFTP server fails, this step is retried after some time.
Problem: The SFTP server is not available anymore.
Handling: The System Monitor will be notified to the service related to the Job Chain with the message error. However, you don't want to have a bunch of notifications for a Job Chain when is an external factor, the connection to the SFTP Server, what is producing the error.
Configuration:
- XML
CheckConfigurationHistory.xml
: As in the example above, indicate the ID of the JobScheduler and the name of the Job Chain you want to monitor. - XML
SystemMonitorNotification.xml
: As in the example above, specify the name of the Service (in the System Monitor) and specify that it is about aservice_name_on_error
since you want to have the control when the Job Chain ends in an error. Moreover and very important in this case, specify how many times this Job Chain should notify your System Monitor about the error connecting to the SFTP Server. You can usestep_from
andstep_to
for that in order to reduce the number of notifications for this specific step. - System Monitor: As in the example above, Services in the System Monitor have to be configured and named the same way as in the XML file above
SystemMonitorNotification.xml
.
Thresholds
Initial Situation: For example, a specific number of Workflow Executions have to be executed successfully till some specific time. That is, a specific value has to be monitored in order to determine if this quote was reached.
Handling: A new service for History is configured, so that the workflow executions (Job Chains in the JobScheduler vocabulary) send the information that they were executed and finished to the System Monitor.
Configuration:
- XML
CheckConfigurationHistory.xml
: As in the example above, indicate the ID of the JobScheduler and the name of the Job Chain you want to monitor. - XML
SystemMonitorNotification.xml
: Specify the name of the Service (in the System Monitor) but now specify that it is about aservice_name_on_success
since you want to have the control when the Job Chain ends in an success, and not only when it ends on error. - System Monitor: As in the example above, Services in the System Monitor have to be configured and named the same way as in the XML file above
SystemMonitorNotification.xml
.
Acknowledgement
Initial Situation: An alert for a Service has been sent to the System Monitor and a Mail has been sent to the Service Desk (Support Team) notifying about it.
Handling: The problem is well known by the Service Desk and the "acknowledge" the problem. Through the acknowledgement JobScheduler will be notified to and will not send any more notification for this Service to the System Monitor till the Service is again recovered.
Configuration:
- System Monitor: The step of notifying JobScheduler through an acknowledgement in the System Monitor is an execution of a script. This is nothing else than a notification, like sending a mail for instance, but instead, another action is executed, which is the execution of the script that contacts JobScheduler and add an order to the JobChain
ResetNotifications
described above.