From d4143e27f906fc4b3c65ce7e90f8d25b120c89ae Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 6 Jul 2020 03:46:34 -0400 Subject: add alerts for backups --- modules/tozt/files/kapacitor/duplicati.tick | 28 ++++++++++++++++++++++++++++ modules/tozt/files/kapacitor/tarsnap.tick | 28 ++++++++++++++++++++++++++++ modules/tozt/manifests/tick.pp | 4 ++++ 3 files changed, 60 insertions(+) create mode 100644 modules/tozt/files/kapacitor/duplicati.tick create mode 100644 modules/tozt/files/kapacitor/tarsnap.tick (limited to 'modules/tozt') diff --git a/modules/tozt/files/kapacitor/duplicati.tick b/modules/tozt/files/kapacitor/duplicati.tick new file mode 100644 index 0000000..5ef1c6b --- /dev/null +++ b/modules/tozt/files/kapacitor/duplicati.tick @@ -0,0 +1,28 @@ +dbrp "telegraf"."autogen" + +var message = ''' +{{- if eq .Level "OK" -}} +backup target {{ index .Tags "name" }} is back to running +{{- else -}} +backup target {{ index .Tags "name" }} hasn't run for a while +{{- end -}} +''' + +var details = ''' +{{- if eq .Level "OK" -}} +backup target {{ index .Tags "name" }} is now {{ index .Fields "days_since_last_run" }} days since its last run +{{- else -}} +backup target {{ index .Tags "name" }} hasn't run for {{ index .Fields "days_since_last_run" }} days +{{- end -}} +''' + +stream +|from() + .measurement('duplicati') + .groupBy('name') +|min('days_since_last_run') + .as('days_since_last_run') +|alert() + .crit(lambda: "days_since_last_run" > 2) + .message(message) + .details(details) diff --git a/modules/tozt/files/kapacitor/tarsnap.tick b/modules/tozt/files/kapacitor/tarsnap.tick new file mode 100644 index 0000000..1239c69 --- /dev/null +++ b/modules/tozt/files/kapacitor/tarsnap.tick @@ -0,0 +1,28 @@ +dbrp "telegraf"."autogen" + +var message = ''' +{{- if eq .Level "OK" -}} +backup target {{ index .Tags "name" }} is back to running +{{- else -}} +backup target {{ index .Tags "name" }} hasn't run for a while +{{- end -}} +''' + +var details = ''' +{{- if eq .Level "OK" -}} +backup target {{ index .Tags "name" }} is now {{ index .Fields "days_since_last_run" }} days since its last run +{{- else -}} +backup target {{ index .Tags "name" }} hasn't run for {{ index .Fields "days_since_last_run" }} days +{{- end -}} +''' + +stream +|from() + .measurement('tarsnap') + .groupBy('name') +|min('days_since_last_run') + .as('days_since_last_run') +|alert() + .crit(lambda: "days_since_last_run" > 2) + .message(message) + .details(details) diff --git a/modules/tozt/manifests/tick.pp b/modules/tozt/manifests/tick.pp index 5071360..f0eb200 100644 --- a/modules/tozt/manifests/tick.pp +++ b/modules/tozt/manifests/tick.pp @@ -14,6 +14,10 @@ class tozt::tick { # source => 'puppet:///modules/tozt/kapacitor/disk.tick'; "certbot": source => 'puppet:///modules/tozt/kapacitor/certbot.tick'; + "tarsnap": + source => 'puppet:///modules/tozt/kapacitor/tarsnap.tick'; + "duplicati": + source => 'puppet:///modules/tozt/kapacitor/duplicati.tick'; } secret { -- cgit v1.2.3-54-g00ecf