You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1152 lines
45 KiB
1152 lines
45 KiB
zabbix_export:
|
|
version: '7.0'
|
|
template_groups:
|
|
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
|
|
name: Templates/Applications
|
|
host_groups:
|
|
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
|
|
name: Applications
|
|
templates:
|
|
- uuid: 24b64f6d22b446dabecc86ee3f199004
|
|
template: 'Control-M enterprise manager by HTTP'
|
|
name: 'Control-M enterprise manager by HTTP'
|
|
description: |
|
|
This template is designed to get metrics from the Control-M Enterprise Manager using the Control-M Automation API with HTTP agent.
|
|
|
|
This template monitors active Service Level Agreement (SLA) services, discovers Control-M servers using Low Level Discovery and also creates host prototypes for them in conjunction with the `Control-M server by HTTP` template.
|
|
|
|
To use this template, macros `{$API.TOKEN}` and `{$API.URI.ENDPOINT}` need to be set.
|
|
|
|
> See [Zabbix template operation](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box/http) for basic instructions.
|
|
|
|
Generated by official Zabbix template tool "Templator" 2.0.0
|
|
vendor:
|
|
name: Zabbix
|
|
version: 7.0-0
|
|
groups:
|
|
- name: Templates/Applications
|
|
items:
|
|
- uuid: 7d9ed576aeb045798b78414c89f3e597
|
|
name: 'Control-M: Get Control-M servers'
|
|
type: HTTP_AGENT
|
|
key: controlm.servers
|
|
delay: 10m
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets a list of servers.'
|
|
url: '{$API.URI.ENDPOINT}/config/servers'
|
|
headers:
|
|
- name: x-api-key
|
|
value: '{$API.TOKEN}'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 2bd2c27b8dc74656a00f6d2006399388
|
|
name: 'Control-M: Get SLA services'
|
|
type: HTTP_AGENT
|
|
key: controlm.services
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets all the SLA active services.'
|
|
url: '{$API.URI.ENDPOINT}/run/services/sla'
|
|
headers:
|
|
- name: x-api-key
|
|
value: '{$API.TOKEN}'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
discovery_rules:
|
|
- uuid: 388824178c264d51be116a693c2640de
|
|
name: 'Server discovery'
|
|
type: DEPENDENT
|
|
key: controlm.server.discovery
|
|
delay: '0'
|
|
description: 'Discovers the Control-M servers.'
|
|
host_prototypes:
|
|
- uuid: 1ade45fcbb9e407ca32542564b12f2b1
|
|
host: '{#SERVER.NAME}'
|
|
name: 'Control-M server [{#SERVER.NAME}]'
|
|
group_links:
|
|
- group:
|
|
name: Applications
|
|
group_prototypes:
|
|
- name: 'Control-M/{#SERVER.NAME}'
|
|
templates:
|
|
- name: 'Control-M server by HTTP'
|
|
macros:
|
|
- macro: '{$SERVER.NAME}'
|
|
value: '{#SERVER.NAME}'
|
|
master_item:
|
|
key: controlm.servers
|
|
lld_macro_paths:
|
|
- lld_macro: '{#SERVER.NAME}'
|
|
path: $.name
|
|
preprocessing:
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 2h
|
|
- uuid: 567e5e0553c84ce2a9200d14dfc76593
|
|
name: 'SLA services discovery'
|
|
type: DEPENDENT
|
|
key: controlm.services.discovery
|
|
delay: '0'
|
|
lifetime: 1d
|
|
description: 'Discovers the SLA services in the Control-M environment.'
|
|
item_prototypes:
|
|
- uuid: 9daecffe0dfd402fb7300d484c2e9b80
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''completed'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',completed]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `completed`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.completed
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-completed
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 27821e573ead422b830b4f9dba5c840f
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''error'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `error`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.error
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-error
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
trigger_prototypes:
|
|
- uuid: c66f281b78e64c1c9c96ade1450eadbb
|
|
expression: 'last(/Control-M enterprise manager by HTTP/service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error],#1)>0'
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs in ''error'' state'
|
|
opdata: 'Trigger value ''{ITEM.VALUE}'', Current value ''{ITEM.LASTVALUE}'''
|
|
priority: AVERAGE
|
|
description: 'There are services present which are in the state - `error`.'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: fe58d60475bd49f2a4e3f0bfc5ae020f
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''executed'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',executed]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `executed`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.executed
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-executed
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 2843e6ba50584b27a66165f0accc5ed5
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitCondition'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitCondition]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `waitCondition`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.waitCondition
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-metric
|
|
value: jobs-wait_condition
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 409961fd6fed4f208340dfdb978a2430
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitHost'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitHost]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `waitHost`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.waitHost
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-metric
|
|
value: jobs-wait_host
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 6ae1bd92bd39446fbbea847088cd37e7
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitResource'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitResource]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `waitResource`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.waitResource
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-metric
|
|
value: jobs-wait-resource
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 0299415dfbca4ba6881a890bb9e9658c
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitWorkload'''
|
|
type: DEPENDENT
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitWorkload]'
|
|
delay: '0'
|
|
description: 'Gets the number of jobs in the state - `waitWorkload`.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statusByJobs.waitWorkload
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: jobs-stats
|
|
- tag: service-metric
|
|
value: jobs-wait_workload
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
- uuid: 72516fca80024f9884efb7dd652f957e
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: stats'
|
|
type: DEPENDENT
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the service statistics.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.activeServices.[?(@.serviceName == ''{#SERVICE.NAME}'')]'
|
|
error_handler: DISCARD_VALUE
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.[?(@.serviceJob == ''{#SERVICE.JOB}'')].first()'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: controlm.services
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: a3f556bfb8d04a70b0c7407cdc458703
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status'
|
|
type: DEPENDENT
|
|
key: 'service.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
delay: '0'
|
|
description: 'Gets the service status.'
|
|
valuemap:
|
|
name: 'Control-M service status'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.status
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
// value list might be incomplete
|
|
const idx = [ // 10 - (default)
|
|
'Not Ok', // 0
|
|
'Ok', // 1
|
|
'Completed Ok', // 2
|
|
'Ended Late' // 3
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']'
|
|
tags:
|
|
- tag: component
|
|
value: service
|
|
- tag: service-metric
|
|
value: status
|
|
- tag: service-name
|
|
value: '{#SERVICE.NAME}'
|
|
trigger_prototypes:
|
|
- uuid: e032410a5384441989538ff6781ef848
|
|
expression: |
|
|
last(/Control-M enterprise manager by HTTP/service.status['{#SERVICE.NAME}','{#SERVICE.JOB}'],#1)=0 or
|
|
last(/Control-M enterprise manager by HTTP/service.status['{#SERVICE.NAME}','{#SERVICE.JOB}'],#1)=10
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status [{ITEM.VALUE}]'
|
|
priority: AVERAGE
|
|
description: 'The service has encountered an issue.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: f64b017b0cf9456eb0afdf908cf2258e
|
|
expression: 'last(/Control-M enterprise manager by HTTP/service.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}''],#1)=3'
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status [{ITEM.VALUE}]'
|
|
priority: WARNING
|
|
description: 'The service has finished its job late.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
graph_prototypes:
|
|
- uuid: 53190fc52e094018926ca5351198aace
|
|
name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs statuses'
|
|
graph_items:
|
|
- drawtype: DASHED_LINE
|
|
color: 29235c
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',executed]'
|
|
- sortorder: '1'
|
|
drawtype: DASHED_LINE
|
|
color: 7e286e
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitCondition]'
|
|
- sortorder: '2'
|
|
drawtype: DASHED_LINE
|
|
color: c73464
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitResource]'
|
|
- sortorder: '3'
|
|
drawtype: DASHED_LINE
|
|
color: f66343
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitHost]'
|
|
- sortorder: '4'
|
|
drawtype: DASHED_LINE
|
|
color: ffa600
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitWorkload]'
|
|
- sortorder: '5'
|
|
color: 00FF00
|
|
yaxisside: RIGHT
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',completed]'
|
|
- sortorder: '6'
|
|
color: FF0000
|
|
item:
|
|
host: 'Control-M enterprise manager by HTTP'
|
|
key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error]'
|
|
master_item:
|
|
key: controlm.services
|
|
lld_macro_paths:
|
|
- lld_macro: '{#SERVICE.NAME}'
|
|
path: $.serviceName
|
|
- lld_macro: '{#SERVICE.JOB}'
|
|
path: $.serviceJob
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.activeServices
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '[]'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
tags:
|
|
- tag: class
|
|
value: software
|
|
- tag: target
|
|
value: controlm
|
|
macros:
|
|
- macro: '{$API.TOKEN}'
|
|
type: SECRET_TEXT
|
|
description: 'A token to use for API connections.'
|
|
- macro: '{$API.URI.ENDPOINT}'
|
|
value: '<set the api uri endpoint here>'
|
|
description: 'The API endpoint is a URI - for example, `https://monitored.controlm.instance:8443/automation-api`.'
|
|
valuemaps:
|
|
- uuid: 54213ae65be64878988c9145d8ae86e4
|
|
name: 'Control-M service status'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Not Ok'
|
|
- value: '1'
|
|
newvalue: Ok
|
|
- value: '2'
|
|
newvalue: 'Completed Ok'
|
|
- value: '3'
|
|
newvalue: 'Ended Late'
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
- uuid: c077d6c381904e94a4df88136588b551
|
|
template: 'Control-M server by HTTP'
|
|
name: 'Control-M server by HTTP'
|
|
description: |
|
|
This template is designed to get metrics from the Control-M server using the Control-M Automation API with HTTP agent.
|
|
|
|
This template monitors server statistics, discovers jobs and agents using Low Level Discovery.
|
|
|
|
To use this template, macros `{$API.TOKEN}`, `{$API.URI.ENDPOINT}`, and `{$SERVER.NAME}` need to be set.
|
|
|
|
Generated by official Zabbix template tool "Templator" 2.0.0
|
|
vendor:
|
|
name: Zabbix
|
|
version: 7.0-0
|
|
groups:
|
|
- name: Templates/Applications
|
|
items:
|
|
- uuid: 94e45567531543119d6e36b4463684c7
|
|
name: 'Control-M: Get agents'
|
|
type: HTTP_AGENT
|
|
key: controlm.agents
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets agents for the server.'
|
|
url: '{$API.URI.ENDPOINT}/config/server/{$SERVER.NAME}/agents'
|
|
headers:
|
|
- name: x-api-key
|
|
value: '{$API.TOKEN}'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 1f60be3e3fe543d697047ffcad7b0a7f
|
|
name: 'Control-M: Get jobs'
|
|
type: HTTP_AGENT
|
|
key: controlm.jobs
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the status of jobs.'
|
|
url: '{$API.URI.ENDPOINT}/run/jobs/status'
|
|
query_fields:
|
|
- name: ctm
|
|
value: '{$SERVER.NAME}'
|
|
headers:
|
|
- name: x-api-key
|
|
value: '{$API.TOKEN}'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 7ae147724e374857a9a28b604e7af014
|
|
name: 'Control-M: Jobs statistics'
|
|
type: DEPENDENT
|
|
key: controlm.jobs.statistics
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the statistics of jobs.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.[''returned'', ''total'']'
|
|
master_item:
|
|
key: controlm.jobs
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: aa085872149047f681f974e672e0c72c
|
|
name: 'Control-M: Jobs returned'
|
|
type: DEPENDENT
|
|
key: controlm.jobs.statistics.returned
|
|
delay: '0'
|
|
description: 'Gets the count of returned jobs.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.[0]'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: controlm.jobs.statistics
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- uuid: 8219b115bd5246b6bbb38c7a3b74dfaa
|
|
name: 'Control-M: Jobs total'
|
|
type: DEPENDENT
|
|
key: controlm.jobs.statistics.total
|
|
delay: '0'
|
|
description: 'Gets the count of total jobs.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.[1]'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: controlm.jobs.statistics
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- uuid: 67ca527f452b43aab2e3171e49f96194
|
|
name: 'Control-M: Get Control-M server stats'
|
|
type: HTTP_AGENT
|
|
key: controlm.server.stats
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the statistics of the server.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.[?(@.name == ''{$SERVER.NAME}'')].first()'
|
|
error_handler: CUSTOM_ERROR
|
|
error_handler_params: 'Could not get server stats.'
|
|
url: '{$API.URI.ENDPOINT}/config/servers'
|
|
headers:
|
|
- name: x-api-key
|
|
value: '{$API.TOKEN}'
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 101afc0212e9410b8954bd1c939aea99
|
|
name: 'Control-M: Server message'
|
|
type: DEPENDENT
|
|
key: server.message
|
|
delay: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the metric of the server message.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.message
|
|
error_handler: CUSTOM_ERROR
|
|
error_handler_params: 'Could not get server message.'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: controlm.server.stats
|
|
tags:
|
|
- tag: component
|
|
value: server
|
|
triggers:
|
|
- uuid: 406307967abf4218bebd9428dd8ecb8b
|
|
expression: 'last(/Control-M server by HTTP/server.message,#1)="Disconnected"'
|
|
name: 'Control-M: Server disconnected'
|
|
opdata: 'Triggered message: {ITEM.VALUE}, Current message: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The server is disconnected.'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 1d7387fe4cd7462c81daa529b58d0e34
|
|
expression: |
|
|
last(/Control-M server by HTTP/server.message,#1)<>"Connected" and
|
|
last(/Control-M server by HTTP/server.message,#1)<>"Disconnected" and
|
|
last(/Control-M server by HTTP/server.message,#1)<>""
|
|
name: 'Control-M: Server error'
|
|
opdata: 'Triggered message: {ITEM.VALUE}, Current message: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The server has encountered an error.'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: b37f0aa295be421ab5e7262135930fcd
|
|
name: 'Control-M: Server state'
|
|
type: DEPENDENT
|
|
key: server.state
|
|
delay: '0'
|
|
description: 'Gets the metric of the server state.'
|
|
valuemap:
|
|
name: 'Control-M server status'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.state
|
|
error_handler: CUSTOM_ERROR
|
|
error_handler_params: 'Could not get server state.'
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
const idx = [ // 10 - Unknown (default)
|
|
'Down', // 0
|
|
'Up', // 1
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: controlm.server.stats
|
|
tags:
|
|
- tag: component
|
|
value: server
|
|
triggers:
|
|
- uuid: d9f5b1f636ec477c932159fd1c5baf16
|
|
expression: |
|
|
last(/Control-M server by HTTP/server.state)=0 or
|
|
last(/Control-M server by HTTP/server.state)=10
|
|
name: 'Control-M: Server is down'
|
|
opdata: 'Current state: {ITEM.LASTVALUE1}'
|
|
priority: HIGH
|
|
description: 'The server is down.'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 2c7ba283ea2d4f2d91d0fa7d33551501
|
|
name: 'Control-M: Server version'
|
|
type: DEPENDENT
|
|
key: server.version
|
|
delay: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the metric of the server version.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.version
|
|
error_handler: CUSTOM_ERROR
|
|
error_handler_params: 'Could not get server version.'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: controlm.server.stats
|
|
tags:
|
|
- tag: component
|
|
value: server
|
|
triggers:
|
|
- uuid: 14cdf1016ab24e5c8b03626fac5af263
|
|
expression: |
|
|
last(/Control-M server by HTTP/server.version,#1)<>last(/Control-M server by HTTP/server.version,#2) and
|
|
length(last(/Control-M server by HTTP/server.version))>0
|
|
recovery_mode: NONE
|
|
name: 'Control-M: Server version has changed'
|
|
opdata: 'Old version: {ITEM.VALUE}, Current version: {ITEM.LASTVALUE1}'
|
|
priority: INFO
|
|
description: 'The server version has changed. Acknowledge to close the problem manually.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: notice
|
|
discovery_rules:
|
|
- uuid: 8d44e49d41d1469ba0ad6ad356b056f4
|
|
name: 'Agent discovery'
|
|
type: DEPENDENT
|
|
key: controlm.agent.discovery
|
|
delay: '0'
|
|
description: 'Discovers agents on the server.'
|
|
item_prototypes:
|
|
- uuid: b451e6ac1f7a4b819714ee69c4833190
|
|
name: 'Agent [{#AGENT.NAME}]: stats'
|
|
type: DEPENDENT
|
|
key: 'agent.stats[''{#AGENT.NAME}'']'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the statistics of an agent.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.agents.[?(@.nodeid == ''{#AGENT.NAME}'')].first()'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: controlm.agents
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: f72163e7e68d4bb4b2b8fcf3b9afd730
|
|
name: 'Agent [{#AGENT.NAME}]: status'
|
|
type: DEPENDENT
|
|
key: 'agent.status[''{#AGENT.NAME}'']'
|
|
delay: '0'
|
|
description: 'Gets the status of an agent.'
|
|
valuemap:
|
|
name: 'Control-M agent status'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.status
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
const idx = [ // 10 - Unknown (default)
|
|
'Available', // 0
|
|
'Unavailable', // 1
|
|
'Disabled', // 2
|
|
'Disable', // 3
|
|
'Discovering', // 4
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'agent.stats[''{#AGENT.NAME}'']'
|
|
tags:
|
|
- tag: agent-metric
|
|
value: status
|
|
- tag: agent-name
|
|
value: '{#AGENT.NAME}'
|
|
- tag: component
|
|
value: agent
|
|
trigger_prototypes:
|
|
- uuid: 22e12e397ad942889895590c28ce3d75
|
|
expression: |
|
|
last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=1 or
|
|
last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=10
|
|
name: 'Agent [{#AGENT.NAME}]: status [{ITEM.VALUE}]'
|
|
priority: AVERAGE
|
|
description: 'The agent has encountered an issue.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: d7cb3729522c4e5bab9eec4341bbab08
|
|
expression: |
|
|
last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=2 or
|
|
last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=3
|
|
name: 'Agent [{#AGENT.NAME}}: status disabled'
|
|
priority: INFO
|
|
description: 'The agent is disabled.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 98e355d74fe9449eaf28272765865434
|
|
name: 'Agent [{#AGENT.NAME}]: version'
|
|
type: DEPENDENT
|
|
key: 'agent.version[''{#AGENT.NAME}'']'
|
|
delay: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the version number of an agent.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.version
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: Unknown
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'agent.stats[''{#AGENT.NAME}'']'
|
|
tags:
|
|
- tag: agent-metric
|
|
value: version
|
|
- tag: agent-name
|
|
value: '{#AGENT.NAME}'
|
|
- tag: component
|
|
value: agent
|
|
trigger_prototypes:
|
|
- uuid: 7c494429411b4ede997a7881e52d9b46
|
|
expression: 'last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#1)="Unknown"'
|
|
name: 'Agent [{#AGENT.NAME}]: unknown version'
|
|
priority: WARNING
|
|
description: 'The agent version is unknown.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: notice
|
|
- uuid: e67a46b5c61c43e6b42a966f3d68a581
|
|
expression: 'last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#1)<>last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#2)'
|
|
recovery_mode: NONE
|
|
name: 'Agent [{#AGENT.NAME}]: version has changed'
|
|
opdata: 'Old version: {ITEM.VALUE}, Current version: {ITEM.LASTVALUE1}'
|
|
priority: INFO
|
|
description: 'The agent version has changed. Acknowledge to close the problem manually.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: notice
|
|
master_item:
|
|
key: controlm.agents
|
|
lld_macro_paths:
|
|
- lld_macro: '{#AGENT.NAME}'
|
|
path: $.nodeid
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.agents
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '[]'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
- uuid: 279c680e12f6443a9b096bec45f9bce4
|
|
name: 'Jobs discovery'
|
|
type: DEPENDENT
|
|
key: controlm.jobs.discovery
|
|
delay: '0'
|
|
lifetime: 1d
|
|
description: 'Discovers jobs on the server.'
|
|
item_prototypes:
|
|
- uuid: bbeb9ab5bcb04f8da802d1a63f098107
|
|
name: 'Job [{#JOB.ID}]: held status'
|
|
type: DEPENDENT
|
|
key: 'job.held[''{#JOB.ID}'']'
|
|
delay: '0'
|
|
description: 'Gets the held status of a job.'
|
|
valuemap:
|
|
name: 'Control-M true-false'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.held
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
const idx = [ // 10 - Unknown (default)
|
|
'false', // 0
|
|
'true', // 1
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
master_item:
|
|
key: 'job.stats[''{#JOB.ID}'']'
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- tag: job-metric
|
|
value: held
|
|
- tag: job-name
|
|
value: '{#JOB.ID}'
|
|
- uuid: 2759dacfd8da46e1ad9811093c8897ee
|
|
name: 'Job [{#JOB.ID}]: number of runs'
|
|
type: DEPENDENT
|
|
key: 'job.numberOfRuns[''{#JOB.ID}'']'
|
|
delay: '0'
|
|
description: 'Gets the number of runs for a job.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.numberOfRuns
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'job.stats[''{#JOB.ID}'']'
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- tag: job-metric
|
|
value: runs
|
|
- tag: job-name
|
|
value: '{#JOB.ID}'
|
|
- uuid: c73c160f2b8e47c8891d7e22b3a1d1bc
|
|
name: 'Job [{#JOB.ID}]: stats'
|
|
type: DEPENDENT
|
|
key: 'job.stats[''{#JOB.ID}'']'
|
|
delay: '0'
|
|
history: '0'
|
|
trends: '0'
|
|
value_type: TEXT
|
|
description: 'Gets the statistics of a job.'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- '$.statuses.[?(@.jobId == ''{#JOB.ID}'')].first()'
|
|
error_handler: DISCARD_VALUE
|
|
master_item:
|
|
key: controlm.jobs
|
|
tags:
|
|
- tag: component
|
|
value: raw
|
|
- uuid: 1348caa83bc94650ba49231bac41aa18
|
|
name: 'Job [{#JOB.ID}]: status'
|
|
type: DEPENDENT
|
|
key: 'job.status[''{#JOB.ID}'']'
|
|
delay: '0'
|
|
description: 'Gets the status of a job.'
|
|
valuemap:
|
|
name: 'Control-M job status'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.status
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
const idx = [ // 10 - (default)
|
|
'Ended OK', // 0 — completed successfully.
|
|
'Ended Not OK', // 1 — ended in failure.
|
|
'Wait User', // 2 — waiting for user confirmation.
|
|
'Wait Resource', // 3 — waiting on a resource to be available.
|
|
'Wait Host', // 4 — waiting on an agent or remote host to be available.
|
|
'Wait Workload', // 5 — waiting due to a workload limit.
|
|
'Wait Condition', // 6 — waiting for a condition.
|
|
'Executing' // 7 — currently executing.
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'job.stats[''{#JOB.ID}'']'
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- tag: job-metric
|
|
value: status
|
|
- tag: job-name
|
|
value: '{#JOB.ID}'
|
|
trigger_prototypes:
|
|
- uuid: beec4281ad0f4ca7aa5f3020b116fdfd
|
|
expression: |
|
|
last(/Control-M server by HTTP/job.status['{#JOB.ID}'],#1)=1 or
|
|
last(/Control-M server by HTTP/job.status['{#JOB.ID}'],#1)=10
|
|
name: 'Job [{#JOB.ID}]: status [{ITEM.VALUE}]'
|
|
priority: WARNING
|
|
description: 'The job has encountered an issue.'
|
|
manual_close: 'YES'
|
|
tags:
|
|
- tag: scope
|
|
value: availability
|
|
- uuid: 4ec3c06e6ff04e919a7a0f21fa490a25
|
|
name: 'Job [{#JOB.ID}]: type'
|
|
type: DEPENDENT
|
|
key: 'job.type[''{#JOB.ID}'']'
|
|
delay: '0'
|
|
description: 'Gets the job type.'
|
|
valuemap:
|
|
name: 'Control-M job type'
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.type
|
|
- type: JAVASCRIPT
|
|
parameters:
|
|
- |
|
|
const idx = [ // 10 - (default)
|
|
'Command', // 0 — runs a platform command line option.
|
|
'Script', // 1 — runs a script.
|
|
'File Transfer',// 2 — performs file transfer.
|
|
'File Watcher', // 3 — monitors file activity.
|
|
'Database', // 4 — runs an SQL script.
|
|
'Hadoop', // 5 — runs a job based on Hadoop objects.
|
|
'Dummy', // 6 — always ends successfully without running any commands.
|
|
'Folder', // 7 — displays a job folder, rather than a job.
|
|
'Job' // 8
|
|
].indexOf(value);
|
|
return idx !== -1 ? idx : 10;
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
master_item:
|
|
key: 'job.stats[''{#JOB.ID}'']'
|
|
tags:
|
|
- tag: component
|
|
value: job
|
|
- tag: job-metric
|
|
value: type
|
|
- tag: job-name
|
|
value: '{#JOB.ID}'
|
|
master_item:
|
|
key: controlm.jobs
|
|
lld_macro_paths:
|
|
- lld_macro: '{#JOB.ID}'
|
|
path: $.jobId
|
|
preprocessing:
|
|
- type: JSONPATH
|
|
parameters:
|
|
- $.statuses
|
|
error_handler: CUSTOM_VALUE
|
|
error_handler_params: '[]'
|
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
|
parameters:
|
|
- 1h
|
|
tags:
|
|
- tag: class
|
|
value: software
|
|
- tag: target
|
|
value: controlm
|
|
macros:
|
|
- macro: '{$API.TOKEN}'
|
|
type: SECRET_TEXT
|
|
description: 'A token to use for API connections.'
|
|
- macro: '{$API.URI.ENDPOINT}'
|
|
value: '<set the api uri endpoint here>'
|
|
description: 'The API endpoint is a URI - for example, `https://monitored.controlm.instance:8443/automation-api`.'
|
|
- macro: '{$SERVER.NAME}'
|
|
value: '<set the server name here>'
|
|
description: 'The name of the Control-M server.'
|
|
dashboards:
|
|
- uuid: f12c2c57e08a4af19e83dd7b1c867d59
|
|
name: 'Control-M Overview'
|
|
pages:
|
|
- widgets:
|
|
- type: graph
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'Control-M server by HTTP'
|
|
name: 'Control-M: Jobs statistics'
|
|
- type: graph
|
|
x: '12'
|
|
width: '12'
|
|
height: '5'
|
|
fields:
|
|
- type: GRAPH
|
|
name: graphid
|
|
value:
|
|
host: 'Control-M server by HTTP'
|
|
name: 'Control-M: Server state'
|
|
valuemaps:
|
|
- uuid: 55b997715e1e4a4cb5272874b975b43a
|
|
name: 'Control-M agent status'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Available
|
|
- value: '1'
|
|
newvalue: Unavailable
|
|
- value: '2'
|
|
newvalue: Disabled
|
|
- value: '3'
|
|
newvalue: Disable
|
|
- value: '4'
|
|
newvalue: Discovering
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
- uuid: 14b119c7f4a940ea91a8df8c4b114eca
|
|
name: 'Control-M job status'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'Ended OK'
|
|
- value: '1'
|
|
newvalue: 'Ended Not OK'
|
|
- value: '2'
|
|
newvalue: 'Wait User'
|
|
- value: '3'
|
|
newvalue: 'Wait Resource'
|
|
- value: '4'
|
|
newvalue: 'Wait Host'
|
|
- value: '5'
|
|
newvalue: 'Wait Workload'
|
|
- value: '6'
|
|
newvalue: 'Wait Condition'
|
|
- value: '7'
|
|
newvalue: Executing
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
- uuid: d6b4e3c8d5934bf08aeb19c8a2f52de4
|
|
name: 'Control-M job type'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Command
|
|
- value: '1'
|
|
newvalue: Script
|
|
- value: '2'
|
|
newvalue: 'File Transfer'
|
|
- value: '3'
|
|
newvalue: 'File Watcher'
|
|
- value: '4'
|
|
newvalue: Database
|
|
- value: '5'
|
|
newvalue: Hadoop
|
|
- value: '6'
|
|
newvalue: Dummy
|
|
- value: '7'
|
|
newvalue: Folder
|
|
- value: '8'
|
|
newvalue: Job
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
- uuid: f0e3072f0cc44236802ea58f13ebb3ae
|
|
name: 'Control-M server status'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: Down
|
|
- value: '1'
|
|
newvalue: Up
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
- uuid: 37a4770c51184c5e9a8d1306625babf3
|
|
name: 'Control-M true-false'
|
|
mappings:
|
|
- value: '0'
|
|
newvalue: 'false'
|
|
- value: '1'
|
|
newvalue: 'true'
|
|
- value: '10'
|
|
newvalue: Unknown
|
|
graphs:
|
|
- uuid: afbfbcdb9b0949c7851fc809049d573f
|
|
name: 'Control-M: Jobs statistics'
|
|
graph_items:
|
|
- color: 00FF00
|
|
item:
|
|
host: 'Control-M server by HTTP'
|
|
key: controlm.jobs.statistics.returned
|
|
- sortorder: '1'
|
|
color: 0000FF
|
|
item:
|
|
host: 'Control-M server by HTTP'
|
|
key: controlm.jobs.statistics.total
|
|
- uuid: 349829f644cd472d8caeae0059ca8527
|
|
name: 'Control-M: Server state'
|
|
graph_items:
|
|
- color: 00FF00
|
|
item:
|
|
host: 'Control-M server by HTTP'
|
|
key: server.state
|