Check bacula.py
Appearance
Check bacula is a wrapper for bconsole that is able to produce output to be used by icinga and prometheus, as well as used interactively to debug backup job errors/misses, useful for monitoring of backups generated by Bacula in the WMF production.
Usage
check_bacula.py --help
usage: check_bacula.py [-h] [--list-jobs] [--prometheus] [--port PORT]
[--icinga] [--backup_config_path BACKUP_CONFIG_PATH]
[--bconsole_path BCONSOLE_PATH]
[job]
Checks bacula backup freshness status and prints it on standard output (or
starts the bacula prometheus exporter).
positional arguments:
job If set, check only the status of this job. Otherwise,
check all jobs.
optional arguments:
-h, --help show this help message and exit
--list-jobs When used, it just prints the list of configured
backup jobs and returns without any check.
--prometheus If set, instead of outputing information to the
command line, it waits in a loop listening for an HTTP
request and returns metrics in the typical prometheus
exporter format.
--port PORT When using the prometheus mode, it binds and listens
on this port. If no one is given, 9133 is used by
default.
--icinga If set, it prints just a summary for icinga.
Otherwise, it prints a detailed output to the command
line.
--backup_config_path BACKUP_CONFIG_PATH
Path of the directory with the files where the bacula
job configuration is, by default:
"/etc/bacula/jobs.d".
--bconsole_path BCONSOLE_PATH
Full path of the "bconsole" executable, by default:
"/usr/sbin/bconsole".
Examples of interactive usage
- No parameters run will do the full list of configured backups, classified by freshness (See Bacula#Monitoring for the categories). Similar to the icinga output but without sumarizing
check_bacula.py
- To list jobs, one per line, without checking or classifying:
check_bacula.py --list-jobs
- To give the available list of past jobs for a particular job (including its id, timestamp, level, finishing status and total size), one can run:
check_bacula.py <full-job-name>
See also
- More info on how it works and why it was created on Bacula#Monitoring
- Source code: phab:/source/operations-puppet/browse/production/modules/bacula/files/check_bacula.py