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

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