zabbix_export: version: '5.4' date: '2021-11-21T21:43:46Z' groups: - uuid: 7df96b18c230490a9a0a9e2307226338 name: Templates templates: - uuid: 5aa6c830820747ae97210bc78bade33a template: 'Backup Exec Server' name: 'Backup Exec Server' description: | ## Description Veritas/Simantec Backup Exec Server template All checks executes with T-SQL, so you must configure Zabbix to use FreeTDS for MS SQL Server. Backup Jobs ODBC LLD rules: - Backup Exec Windows Service - Backup Exec Jobs (FULL) - Backup Exec Jobs (INCREMENTAL) Two rules needs for creating triggers with different severity levels for Full job types and Incremental job types. Macroses {$BE.USER} and {$BE.PASSWORD} must be set on template or host level before usage. These are username and password to connect to BEDB database. LLD returns {#JOB.TYPE} macros, containig 'FULL' or 'INCR' string to determine backup job type. On database level it's: 16777216 - INCR 16973824 - FULL Documentation will be available soon on my GitHub page (https://github.com/asand3r). ## Overview **Veritas/Symantec Backup Exec Server template** All checks executes with T-SQL, so you must configure Zabbix to use FreeTDS for MS SQL Server. Backup Jobs LLD rules: - Backup Exec Windows Service - Backup Exec Jobs Discovery Macroses {$BE.USER} and {$BE.PASSWORD} **must** be set on template or host level before usage. These are username and password to connect to BEDB database. LLD returns {#JOB.TYPE} macros, containig 'full' or 'incr' string to determine backup job type. On database level it's: 16777216, 20971520 - incr 16973824 - full ## Author Khatsayuk Alexander groups: - name: Templates discovery_rules: - uuid: 0ee2f8dc28df4b8b8a307316e42973c2 name: 'Backup Exec Jobs Discovery (FULL)' type: ODBC key: 'db.odbc.discovery[be.jobs.full,{HOST.HOST}]' delay: 1h params: | SELECT JobID as 'JOB.ID', JobName as 'JOB.NAME', CurrentStatus as 'JOB.STATUS', IIF (JobRunFlags = 16777216, 'INCR', 'FULL') as 'JOB.TYPE' FROM BEDB.dbo.vwJobs WHERE TaskTypeID = 200 and CurrentStatus IN ('16','17','18'); username: '{$BE.USER}' password: '{$BE.PASSWORD}' filter: conditions: - macro: '{#JOB.TYPE}' value: ^FULL$ formulaid: A lifetime: 7d description: 'Discover Full Backup Exec jobs by SQL query.' item_prototypes: - uuid: aa1b3d286eda453791bafcb185774d57 name: '{#JOB.NAME}: Final Job Status' type: ODBC key: 'db.odbc.select[be.job.full.{#JOB.NAME}.finaljobstatus,{HOST.HOST}]' delay: 15m history: '{$HISTORY}' trends: '{$TRENDS}' params: 'SELECT ISNULL ((SELECT TOP 1 FinalJobStatus FROM BEDB.dbo.JobHistorySummary WHERE JobID = ''{#JOB.ID}'' and IsJobActive != 1 ORDER BY EndTime DESC), 0);' username: '{$BE.USER}' password: '{$BE.PASSWORD}' description: '{#JOB.NAME} final job status' valuemap: name: 'Backup Exec Job Status' request_method: POST tags: - tag: Application value: 'BE Job: {#JOB.NAME}' trigger_prototypes: - uuid: a9c8b2580a13411c8de1b81bdcd3be3f expression: 'count(/Backup Exec Server/db.odbc.select[be.job.full.{#JOB.NAME}.finaljobstatus,{HOST.HOST}],#2,"ne","19")<>0' name: 'Backup job {#JOB.NAME}: {ITEM.VALUE}' priority: AVERAGE description: 'Backup job {#JOB.NAME} finished with error: {ITEM.LASTVALUE}.' tags: - tag: app value: 'backup exec' - tag: 'job type' value: '{#JOB.TYPE}' - tag: service value: backup - uuid: d8dea82e92334dd69d5b57ec86d570e3 name: '{#JOB.NAME}: Total Data Size, bytes' type: ODBC key: 'db.odbc.select[be.job.full.{#JOB.NAME}.totalbytes,{HOST.HOST}]' delay: 15m history: '{$HISTORY}' trends: '{$TRENDS}' units: B params: 'SELECT ISNULL ((SELECT TOP 1 TotalDataSizeBytes FROM BEDB.dbo.JobHistorySummary WHERE JobID = ''{#JOB.ID}'' and IsJobActive != 1 ORDER BY EndTime DESC), 0);' username: '{$BE.USER}' password: '{$BE.PASSWORD}' description: '{#JOB.NAME} total bytes' request_method: POST tags: - tag: Application value: 'BE Job: {#JOB.NAME}' graph_prototypes: - uuid: d47cca17121f4387a065f56fe4e37ead name: '{#JOB.NAME}: Saved Data Size' graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: 'Backup Exec Server' key: 'db.odbc.select[be.job.full.{#JOB.NAME}.totalbytes,{HOST.HOST}]' request_method: POST - uuid: 00f6fc6c1d86451591830dac4033a707 name: 'Backup Exec Jobs Discovery (INCREMENTAL)' type: ODBC key: 'db.odbc.discovery[be.jobs.incr,{HOST.HOST}]' delay: 1h params: | SELECT JobID as 'JOB.ID', JobName as 'JOB.NAME', CurrentStatus as 'JOB.STATUS', IIF (JobRunFlags = 16777216, 'INCR', 'FULL') as 'JOB.TYPE' FROM BEDB.dbo.vwJobs WHERE TaskTypeID = 200 and CurrentStatus IN ('16','17','18'); username: '{$BE.USER}' password: '{$BE.PASSWORD}' filter: conditions: - macro: '{#JOB.TYPE}' value: ^INCR$ formulaid: A lifetime: 7d description: 'Discover Incremental Backup Exec jobs by SQL query.' item_prototypes: - uuid: 4bc2b8ccc5024f81bddb46dd1b34b4e5 name: '{#JOB.NAME}: Final Job Status' type: ODBC key: 'db.odbc.select[be.job.incr.{#JOB.NAME}.finaljobstatus,{HOST.HOST}]' delay: 15m history: '{$HISTORY}' trends: '{$TRENDS}' params: 'SELECT ISNULL ((SELECT TOP 1 FinalJobStatus FROM BEDB.dbo.JobHistorySummary WHERE JobID = ''{#JOB.ID}'' and IsJobActive != 1 ORDER BY EndTime DESC), 0);' username: '{$BE.USER}' password: '{$BE.PASSWORD}' description: '{#JOB.NAME} final job status' valuemap: name: 'Backup Exec Job Status' tags: - tag: Application value: 'BE Job: {#JOB.NAME}' trigger_prototypes: - uuid: e34801d448a947d0a621c8058d88c352 expression: 'count(/Backup Exec Server/db.odbc.select[be.job.incr.{#JOB.NAME}.finaljobstatus,{HOST.HOST}],#2,"ne","19")<>0' name: 'Backup job {#JOB.NAME}: {ITEM.VALUE}' priority: WARNING description: 'Backup job {#JOB.NAME} finished with error: {ITEM.LASTVALUE}.' tags: - tag: app value: 'backup exec' - tag: 'job type' value: '{#JOB.TYPE}' - tag: service value: backup - uuid: bce4789d139542a59c2aa8d4848c392e name: '{#JOB.NAME}: Total Data Size, bytes' type: ODBC key: 'db.odbc.select[be.job.incr.{#JOB.NAME}.totalbytes,{HOST.HOST}]' delay: 15m history: '{$HISTORY}' trends: '{$TRENDS}' units: B params: 'SELECT ISNULL ((SELECT TOP 1 TotalDataSizeBytes FROM BEDB.dbo.JobHistorySummary WHERE JobID = ''{#JOB.ID}'' and IsJobActive != 1 ORDER BY EndTime DESC), 0);' username: '{$BE.USER}' password: '{$BE.PASSWORD}' description: '{#JOB.NAME} total bytes' tags: - tag: Application value: 'BE Job: {#JOB.NAME}' graph_prototypes: - uuid: b9400d1768c34c39bc4c4e00ac6e5be2 name: '{#JOB.NAME}: Saved Data Size (incremental)' graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: 'Backup Exec Server' key: 'db.odbc.select[be.job.incr.{#JOB.NAME}.totalbytes,{HOST.HOST}]' - uuid: 74b6ad6f070740b093dd110199ef45a1 name: 'Backup Exec Services' type: ZABBIX_ACTIVE key: service.discovery delay: 3h filter: conditions: - macro: '{#SERVICE.NAME}' value: ^BackupExec|bedbg formulaid: A - macro: '{#SERVICE.STARTUP}' value: '0' formulaid: B lifetime: 3d description: 'Discovery Backup Exec Services.' item_prototypes: - uuid: 68405b93ca6842db840cb9395cea090c name: 'Service {#SERVICE.NAME} status' type: ZABBIX_ACTIVE key: 'service.info[{#SERVICE.NAME}]' history: '{$HISTORY}' trends: '{$TRENDS}' description: | {#SERVICE.NAME} status Display name: {#SERVICE.DISPLAYNAME} Description: {#SERVICE.DESCRIPTION} valuemap: name: 'Windows service state' request_method: POST tags: - tag: Application value: 'Backup Exec Services' trigger_prototypes: - uuid: 31b8f2235e2a4e9db415f3310b8ad8d2 expression: 'count(/Backup Exec Server/service.info[{#SERVICE.NAME}],#5,"ne","0")>3' name: 'Service {#SERVICE.NAME} in {ITEM.VALUE} state' priority: WARNING description: 'Service {#SERVICE.NAME} ({#SERVICE.DISPLAYNAME}) not in ''Running'' state' tags: - tag: app value: 'backup exec' - tag: service value: backup - tag: 'windows service' value: '{ITEM.VALUE}' request_method: POST macros: - macro: '{$BE.PASSWORD}' value: PASSWORD - macro: '{$BE.USER}' value: LOGIN - macro: '{$HISTORY}' value: 14d - macro: '{$TRENDS}' value: 180d valuemaps: - uuid: 58c747b9f1f14707a3f30c7701c532c9 name: 'Backup Exec Job Status' mappings: - value: '1' newvalue: 'Terminated because canceled' - value: '2' newvalue: 'Completed waiting for final disposition' - value: '3' newvalue: 'Completed with exceptions' - value: '4' newvalue: Dispatched - value: '5' newvalue: 'On hold' - value: '6' newvalue: 'Completed with an error' - value: '7' newvalue: 'Schedule invalid' - value: '8' newvalue: 'Invalid Time Window' - value: '9' newvalue: Missed - value: '10' newvalue: Missed - value: '11' newvalue: Paused - value: '12' newvalue: Pending - value: '13' newvalue: Recovered - value: '14' newvalue: 'Resource Disabled' - value: '15' newvalue: Resumed - value: '16' newvalue: Running - value: '17' newvalue: Ready - value: '18' newvalue: Scheduled - value: '19' newvalue: 'Completed successfully' - value: '20' newvalue: Superceded - value: '21' newvalue: 'Abort (Time)' - value: '22' newvalue: 'To Be Scheduled' - value: '23' newvalue: 'Linked to another job' - value: '24' newvalue: UNKNOWN - value: '25' newvalue: 'Blocked by Template Rule' - uuid: e19785c679c64be4af07f78ff96d3e10 name: 'Windows service state' mappings: - value: '0' newvalue: Running - value: '1' newvalue: Paused - value: '2' newvalue: 'Start pending' - value: '3' newvalue: 'Pause pending' - value: '4' newvalue: 'Continue pending' - value: '5' newvalue: 'Stop pending' - value: '6' newvalue: Stopped - value: '7' newvalue: Unknown - value: '255' newvalue: 'No such service'