5.02021-11-21T22:06:00ZTemplates/Operating systemsrestic backup by Zabbix agentrestic backup by Zabbix agent## Overview
Get alerts when your restic backup have failed, or didn't finish on time. The default is in last 26 hours but can be changed via a MACRO.
Two MACROs are available:
* `{$BACKUP_STATUS_FILE}` which contain the full path of the status file. Default is `/home/backup/status.json`.
* `{$MAX_HOURS_BETWEEN}` which contain the maximum number of hours before it triggers an alert. Default is `26` hours (for backup running once a day, plus some time if it takes a bit longer than usual).
This is using the status file generated by [resticprofile](https://github.com/creativeprojects/resticprofile/).
For more information, see the [README](https://github.com/creativeprojects/resticprofile/tree/master/contrib/zabbix).
Templates/Operating systemsBackup- Status filevfs.file.contents[{$BACKUP_STATUS_FILE}]1h0TEXTBackupDISCARD_UNCHANGED_HEARTBEAT1d
ProfilesDEPENDENTbackup.profiles0Backup profile {#PROFILENAME} / {#PROFILECOMMAND} errorDEPENDENTbackup.error[{#PROFILENAME}, {#PROFILECOMMAND}]00TEXTBackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].errorvfs.file.contents[{$BACKUP_STATUS_FILE}]Backup profile {#PROFILENAME} / {#PROFILECOMMAND} successDEPENDENTbackup.success[{#PROFILENAME}, {#PROFILECOMMAND}]0BackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].successBOOL_TO_DECIMALvfs.file.contents[{$BACKUP_STATUS_FILE}]{last()}=0Last {#PROFILENAME} / {#PROFILECOMMAND} failedHIGHYESBackup profile {#PROFILENAME} / {#PROFILECOMMAND} timeDEPENDENTbackup.time[{#PROFILENAME}, {#PROFILECOMMAND}]0unixtimeBackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].timeJAVASCRIPTreturn Math.round(Date.parse(value)/1000)vfs.file.contents[{$BACKUP_STATUS_FILE}]{now()}-{last()}>({$MAX_HOURS_BETWEEN}*3600)Last {#PROFILENAME} / {#PROFILECOMMAND} did not runHIGHLast profile has not finished on time (or has not started):
last run finished more than {$MAX_HOURS_BETWEEN} hour(s) agoYESvfs.file.contents[{$BACKUP_STATUS_FILE}]JAVASCRIPTvar output = []
var status = JSON.parse(value)
Object.keys(status.profiles).forEach(function(profileName) {
Object.keys(status.profiles[profileName]).forEach(function(entry) {
output.push({
"{#PROFILENAME}": profileName,
"{#PROFILECOMMAND}": entry,
})
})
});
return JSON.stringify(output)fromlocal{$BACKUP_STATUS_FILE}/home/backup/status.jsonresticprofile status file{$MAX_HOURS_BETWEEN}26restic backup by Zabbix agent activerestic backup by Zabbix agent active## Overview
Get alerts when your restic backup have failed, or didn't finish on time. The default is in last 26 hours but can be changed via a MACRO.
Two MACROs are available:
* `{$BACKUP_STATUS_FILE}` which contain the full path of the status file. Default is `/home/backup/status.json`.
* `{$MAX_HOURS_BETWEEN}` which contain the maximum number of hours before it triggers an alert. Default is `26` hours (for backup running once a day, plus some time if it takes a bit longer than usual).
This is using the status file generated by [resticprofile](https://github.com/creativeprojects/resticprofile/).
For more information, see the [README](https://github.com/creativeprojects/resticprofile/tree/master/contrib/zabbix).
## Overview
Get alerts when your restic backup have failed, or didn't finish on time. The default is in last 26 hours but can be changed via a MACRO.
Two MACROs are available:
* `{$BACKUP_STATUS_FILE}` which contain the full path of the status file. Default is `/home/backup/status.json`.
* `{$MAX_HOURS_BETWEEN}` which contain the maximum number of hours before it triggers an alert. Default is `26` hours (for backup running once a day, plus some time if it takes a bit longer than usual).
This is using the status file generated by [resticprofile](https://github.com/creativeprojects/resticprofile/).
For more information, see the [README](https://github.com/creativeprojects/resticprofile/tree/master/contrib/zabbix).
Templates/Operating systemsBackup- Status fileZABBIX_ACTIVEvfs.file.contents[{$BACKUP_STATUS_FILE}]1h0TEXTBackupDISCARD_UNCHANGED_HEARTBEAT1d
ProfilesDEPENDENTbackup.profiles0Backup profile {#PROFILENAME} / {#PROFILECOMMAND} errorDEPENDENTbackup.error[{#PROFILENAME}, {#PROFILECOMMAND}]00TEXTBackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].errorvfs.file.contents[{$BACKUP_STATUS_FILE}]Backup profile {#PROFILENAME} / {#PROFILECOMMAND} successDEPENDENTbackup.success[{#PROFILENAME}, {#PROFILECOMMAND}]0BackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].successBOOL_TO_DECIMALvfs.file.contents[{$BACKUP_STATUS_FILE}]{last()}=0Last {#PROFILENAME} / {#PROFILECOMMAND} failedHIGHYESBackup profile {#PROFILENAME} / {#PROFILECOMMAND} timeDEPENDENTbackup.time[{#PROFILENAME}, {#PROFILECOMMAND}]0unixtimeBackupJSONPATH$.profiles["{#PROFILENAME}"]["{#PROFILECOMMAND}"].timeJAVASCRIPTreturn Math.round(Date.parse(value)/1000)vfs.file.contents[{$BACKUP_STATUS_FILE}]{now()}-{last()}>({$MAX_HOURS_BETWEEN}*3600)Last {#PROFILENAME} / {#PROFILECOMMAND} did not runHIGHLast profile has not finished on time (or has not started):
last run finished more than {$MAX_HOURS_BETWEEN} hour(s) agoYESvfs.file.contents[{$BACKUP_STATUS_FILE}]JAVASCRIPTvar output = []
var status = JSON.parse(value)
Object.keys(status.profiles).forEach(function(profileName) {
Object.keys(status.profiles[profileName]).forEach(function(entry) {
output.push({
"{#PROFILENAME}": profileName,
"{#PROFILECOMMAND}": entry,
})
})
});
return JSON.stringify(output)fromlocal{$BACKUP_STATUS_FILE}/home/backup/status.jsonresticprofile status file{$MAX_HOURS_BETWEEN}26