Icinga Monitoring Plugin to check Bareos Backup Director databases
The plugin connects to the Bareos database in order to retrieve data.
The plugin requires at least Python 3.
Python dependencies:
psycopg2-binary
p check_bareos.py --help
usage: check_bareos.py [-h] -U USER [-p PASSWORD] [-H HOST] [-P PORT] [-d DATABASE] [-v]
{job,tape,status} ...
Check Plugin for Bareos Backup Status
positional arguments:
{job,tape,status}
job Specific checks on a job
tape Specific checks on a tapes
status Specific status informations
options:
-h, --help show this help message and exit
-U USER, --user USER user name for the database connections
-p PASSWORD, --password PASSWORD
password for the database connections (CHECK_BAREOS_DATABASE_PASSWORD)
--password-file PASSWORD_FILE
path to a password file. Can be the bareos-dir.conf
-H HOST, --Host HOST database host
-P PORT, --port PORT database port
-d DATABASE, --database DATABASE
database name
-v, --version show program's version number and exit
Various flags can be set with environment variables, refer to the help to see which flags.
Check the status of Bareos Jobs.
usage: check_bareos.py job [-h] (-js | -j | -rt) [-n NAME] [-t TIME] [-u {GB,TB,PB}] [-w WARNING]
[-c CRITICAL] [-st {A,B,C,D,E,F,I,L,M,R,S,T,W,a,c,d,e,f,i,j,l,m,p,q,s,t}]
[-f] [-i] [-d]
options:
-h, --help show this help message and exit
-js, --checkJobs Check how many jobs are in a specific state [default=queued]
-j, --checkJob Check the state of a specific job [default=queued]
-rt, --runTimeJobs Check if a backup runs longer then n day
-n NAME, --name NAME Name of the job
-t TIME, --time TIME Time in days (default=7 days)
-u {GB,TB,PB}, --unit {GB,TB,PB}
display unit
-w WARNING, --warning WARNING
Warning value
-c CRITICAL, --critical CRITICAL
Critical value
-st {A,B,C,D,E,F,I,L,M,R,S,T,W,a,c,d,e,f,i,j,l,m,p,q,s,t}, --state {A,B,C,D,E,F,I,L,M,R,S,T,W,a,c,d,e,f,i,j,l,m,p,q,s,t}
Bareos Job State [default=C]
-f, --full Backup kind full
-i, --inc Backup kind inc
-d, --diff Backup kind diff
Check if a job is runing longar than 7 days (default value):
check_bareos.py job -rt -t 4 -st R -w 1 -c 4
Check how much jobs are in the wating status:
check_bareos.py job -js -w 50 -c 100
Check the status of Bareos Tapes.
usage: check_bareos.py tape [-h] (-e | -ts | -ex | -wex | -r) [-w WARNING] [-c CRITICAL] [-m MOUNTS]
[-t TIME]
options:
-h, --help show this help message and exit
-e, --emptyTapes Count empty tapes in the storage (Status Purged/Expired)
-ts, --tapesInStorage
Count how much tapes are in the storage
-ex, --expiredTapes Count how much tapes are expired
-wex, --willExpire Count how much tapes are will expire in n day
-r, --replaceTapes Count how much tapes should by replaced
-w WARNING, --warning WARNING
Warning value
-c CRITICAL, --critical CRITICAL
Critical value
-m MOUNTS, --mounts MOUNTS
Amout of allowed mounts for a tape [used for replace tapes]
-t TIME, --time TIME Time in days (default=7 days)
Check how much tapes are empty in the storage:
check_bareos.py tape -e -w 15 -c 10
Check how much tapes are expired:
check_bareos.py tape -ex
Check how much tapes will expire in the next 14 days;
check_bareos.py tape -wex -t 14 -w 10 -c 5
Check the status of various Bareos metrics.
usage: check_bareos.py status [-h] (-b | -e | -o | -fb) [-f] [-i] [-d] [-t TIME] [-w WARNING]
[-c CRITICAL] [-s SIZE] [-u {MB,GB,TB,PB,EB}]
options:
-h, --help show this help message and exit
-b, --totalBackupsSize
the size of all backups in the database [use time and kind for mor
restrictions]
-e, --emptyBackups Check if a successful backup have 0 bytes [only wise for full backups]
-o, --oversizedBackup
Check if a backup have more than n TB
-fb, --failedBackups Check if a backup failed in the last n day
-f, --full Backup kind full
-i, --inc Backup kind inc
-d, --diff Backup kind diff
-t TIME, --time TIME Time in days
-w WARNING, --warning WARNING
Warning value [default=5]
-c CRITICAL, --critical CRITICAL
Critical value [default=10]
-s SIZE, --size SIZE Border value for oversized backups [default=2]
-u {MB,GB,TB,PB,EB}, --unit {MB,GB,TB,PB,EB}
display unit [default=TB]
Check total size of all backups:
check_bareos.py status -b -w 400 -c 500
Check total size of all full backups:
check_bareos.py status -b -f -w 400 -c 500
Check total size of all diff backups:
check_bareos.py status -b -d -w 400 -c 500
Check total size of all inc backups:
check_bareos.py status -b -i -w 400 -c 500
Check if a full backup has 0 Bytes(is Empty) and trigger warning it is at least 1 and trigger ciritcal if more than 5 are empty:
check_bareos.py status -e -f -w 1 -c 5
Check if a diff/inc backup is larger than 2 TB (default value) and trigger warning it is at least 1 and trigger ciritcal if more than 5 are empty:
check_bareos.py status -o -d -i -w 1 -c 5