This plugin parses the output of pgbackrest info --output json
and checks if the backup archive contains a specific number of backups of a given type. E.g., between 1 and 2 full backups, 4 to 8 differential backups and at least 2 incremental backups.
It's also capable of doing ageing checks of backups. E.g., check if the newest incremental backup is not older than 3600 seconds.
- python3
- argparse
- nagiosplugin
- json
$ check_pgbackrest --help
usage: check_pgbackrest [-h] -s STANZA [-wf RANGE] [-cf RANGE] [-wd RANGE]
[-cd RANGE] [-wi RANGE] [-ci RANGE] [-wnfa RANGE]
[-cnfa RANGE] [-wofa RANGE] [-cofa RANGE]
[-wnda RANGE] [-cnda RANGE] [-woda RANGE]
[-coda RANGE] [-wnia RANGE] [-cnia RANGE]
[-woia RANGE] [-coia RANGE] [-b STANZA] [-d]
Icinga / Nagios check for pgBackRest.
optional arguments:
-h, --help show this help message and exit
-s STANZA, --stanza STANZA
return warning if the number of full backups is
outside RANGE
-wf RANGE, --warning-full RANGE
return warning if the number of full backups is
outside RANGE
-cf RANGE, --critical-full RANGE
return critical if the number of full backups is
outside RANGE
-wd RANGE, --warning-diff RANGE
return warning if the number of differential backups
is outside RANGE
-cd RANGE, --critical-diff RANGE
return critical if the number of differential backups
is outside RANGE
-wi RANGE, --warning-incr RANGE
return warning if the number of incremental backups is
outside RANGE
-ci RANGE, --critical-incr RANGE
return critical if the number of incremental backups
is outside RANGE
-wnfa RANGE, --warning-newest-full-age RANGE
return warning if the age of the newest full backup is
outside RANGE (seconds)
-cnfa RANGE, --critical-newest-full-age RANGE
return critical if the age of the newest full backup
is outside RANGE (seconds)
-wofa RANGE, --warning-oldest-full-age RANGE
return warning if the age of the oldest full backup is
outside RANGE (seconds)
-cofa RANGE, --critical-oldest-full-age RANGE
return critical if the age of the oldest full backup
is outside RANGE (seconds)
-wnda RANGE, --warning-newest-diff-age RANGE
return warning if the age of the newest diff backup is
outside RANGE (seconds)
-cnda RANGE, --critical-newest-diff-age RANGE
return critical if the age of the newest diff backup
is outside RANGE (seconds)
-woda RANGE, --warning-oldest-diff-age RANGE
return warning if the age of the oldest diff backup is
outside RANGE (seconds)
-coda RANGE, --critical-oldest-diff-age RANGE
return critical if the age of the oldest diff backup
is outside RANGE (seconds)
-wnia RANGE, --warning-newest-incr-age RANGE
return warning if the age of the newest incr backup is
outside RANGE (seconds)
-cnia RANGE, --critical-newest-incr-age RANGE
return critical if the age of the newest incr backup
is outside RANGE (seconds)
-woia RANGE, --warning-oldest-incr-age RANGE
return warning if the age of the oldest incr backup is
outside RANGE (seconds)
-coia RANGE, --critical-oldest-incr-age RANGE
return critical if the age of the oldest incr backup
is outside RANGE (seconds)
-b STANZA, --binary STANZA
path to pgbackrest binary
-d, --debug print debug output
1. sudo -u postgres check-pgbackrest/check_pgbackrest --stanza main --warning-full 2:2 --critical-full 1:2
PGBACKREST OK - full_backups is 2 | diff_backups=2 full_backups=2;2:2;1:2
2. sudo -u postgres check-pgbackrest/check_pgbackrest --stanza main --warning-full 2:2 --critical-full 1:2 --warning-diff 1:1
PGBACKREST WARNING - diff_backups is 2 (outside range 1:1) | diff_backups=2;1:1 full_backups=2;2:2;1:2
This project uses the MIT Licence.