Всем привет.
Т.к. Bareos это форк Bacula, то они обе заточены под ленточные хранилища, и поэтому больше одного задания выполняться не может. У нас все бэкапы хранятся на RAID 6, поэтому надо сделать выполнение нескольких заданий одновременно.
Так же хотелось бы получать на почту уведомления о выполненных заданиях.
Но обо всем этом по порядку.
Перед изменение конфигурационных файлов, пожалуйста, делайте их резервные копии для возможности отката внесенных изменений.
ДОБАВЛЕНИЕ НОВЫХ УСТРОЙСТВ ХРАНЕНИЯ.
Добавим «новые» устройства хранения.
Редактируем /etc/bareos/bareos-sd.d/device/FileStorage.conf
1 | sudo nano /etc/bareos/bareos-sd.d/device/FileStorage.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | Device { Name = FileStorage0 Media Type = File # Archive Device = /var/lib/bareos/storage Archive Device = /mnt/qnap/bckp LabelMedia = yes; # lets Bareos label unlabeled media Random Access = yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Description = "File device. A connecting Director must have the same Name and MediaType." Maximum Concurrent Jobs = 1 } Device { Name = FileStorage1 Media Type = File # Archive Device = /var/lib/bareos/storage Archive Device = /mnt/qnap/bckp LabelMedia = yes; # lets Bareos label unlabeled media Random Access = yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Description = "File device. A connecting Director must have the same Name and MediaType." Maximum Concurrent Jobs = 1 } Device { Name = FileStorage2 Media Type = File # Archive Device = /var/lib/bareos/storage Archive Device = /mnt/qnap/bckp LabelMedia = yes; # lets Bareos label unlabeled media Random Access = yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Description = "File device. A connecting Director must have the same Name and MediaType." Maximum Concurrent Jobs = 1 } Device { Name = FileStorage3 Media Type = File # Archive Device = /var/lib/bareos/storage Archive Device = /mnt/qnap/bckp LabelMedia = yes; # lets Bareos label unlabeled media Random Access = yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Description = "File device. A connecting Director must have the same Name and MediaType." Maximum Concurrent Jobs = 1 } |
Оригинальный FileStorage.conf:
1 2 3 4 5 6 7 8 9 10 11 12 | Device { Name = FileStorage Media Type = File # Archive Device = /var/lib/bareos/storage Archive Device = /mnt/nas/bckp LabelMedia = yes; # lets Bareos label unlabeled media Random Access = yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Description = "File device. A connecting Director must have the same Name and MediaType." } |
переименовали существующий добавив цифру «0» и еще три устройства добавили.
Далее надо внести изменения в файл File.conf который находится в /etc/bareos/bareos-dir.d/storage
1 | sudo nano /etc/bareos/bareos-dir.d/storage/File.conf |
приводим к следующему виду:
1 2 3 4 5 6 7 8 9 10 11 | Storage { Name = File Address = bareos-dir # N.B. Use a fully qualified name here (do not use "localhost" here). Password = "******************************************" Device = FileStorage3 Device = FileStorage0 Device = FileStorage1 Device = FileStorage2 Media Type = File Maximum Concurrent Jobs = 10 } |
Было вот так (оригинальный File.conf):
1 2 3 4 5 6 7 | Storage { Name = File Address = bareos-dir # N.B. Use a fully qualified name here (do not use "localhost" here). Password = "*************************************" Device = FileStorage Media Type = File } |
После этого перезапустить bareos-dir, bareos-sd и bareos-fd.
НАСТРОЙКА ПОЧТОВЫХ УВЕДОМЛЕНИЙ.
Отредактируем /etc/bareos/bareos-dir.d/messages/Standard.conf
1 2 3 4 5 6 7 8 9 10 11 12 | Messages { Name = Standard Description = "Reasonable message delivery -- send most everything to email address and to the console." operatorcommand = "/usr/local/bin/sendEmail-backup \"[WARNING] Intervention needed for %j\" \"%r\"" ID=%i)\" \"%r\"" mailcommand = "/usr/local/bin/sendEmail-backup \"[BAREOS] %t %e of %n %l\" \"%r\" \"%c %s (JOBID=%i)\"" operator = log@111.ru = mount # (#03) mail = log@111.ru = all, !skipped, !audit # (#02) console = all, !skipped, !saved, !audit append = "/var/log/bareos/bareos.log" = all, !skipped, !audit catalog = all, !skipped, !audit } |
Нас интересует вот эта строка:
mailcommand = «/usr/local/bin/sendEmail-backup \»[BAREOS] %t %e of %n %l\» \«%r\» \«%c %s (JOBID=%i)\»»
/usr/local/bin/sendEmail-backup — скрипт отправки почты (будет ниже),
«[BAREOS] %t %e of %n %l\» — тема письма ($1, будет ниже),
«%r\» — кому отправить письмо ($2, будет ниже),
«%c %s (JOBID=%i)\»» — тело письма ($3, будет ниже).
Примечание: если не задвать $3, то тогда придет часть из лог-файла. Если я правильно понимаю, то лог-файл указан вот в этой строке: append = «/var/log/bareos/bareos.log» = all, !skipped, !audit
Для разделения между ними используется обратный слеш «\» (выделил красным).
Обозначения переменных:
%% = %
%c = Client’s name
%d = Director’s name
%e = Job Exit code (OK, Error, …)
%h = Client address
%i = Job Id
%j = Unique Job name
%l = Job level
%n = Job name
%r = Recipients
%s = Since time
%t = Job type (e.g. Backup, …)
%v = Read Volume name (Only on director side)
%V = Write Volume name (Only on director side)
Так что можно самим указывать необходимые показатели в любой части составления оповещения (тема или тело письма).
Скрипт отправки почты:
1 2 3 4 5 | SENDER=backup@111.ru SUBJECT=$1 RECIPIENTS=$2 BODY=$3 /usr/bin/sendEmail -q -f $SENDER -u $SUBJECT -m $BODY -t $RECIPIENTS -S /usr/sbin/ssmtp |
SENDER — от имени кого отправить,
SUBJECT — тема письма (см. выше $1),
RECIPIENTS — получатели (см. выше $2),
BODY — тело письма (см. выше $3).
Так же я установил и настроил SSMTP:
1) установка:
1 | sudo aptitude install ssmtp |
2) настройка
2.1) ssmtp.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | sudo nano /etc/ssmtp/ssmtp.conf # # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=backup@111.ru # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=mail.111.ru:465 #UseTLS=YES AuthUser=backup@111.ru AuthPass=********* # Where will the mail seem to come from? rewriteDomain=111.ru # The full hostname hostname=localhost # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES Debug=YES |
root=backup@111.ru — учетная запись эл. почты для отправки,
mailhub=mail.111.ru:465 — адрес почтового сервера и порт,
#UseTLS=YES — использовать TLS. Мне пришлось закомментить, потому что у меня не работало почему-то,
AuthUser=backup@111.ru — логин,
AuthPass=********* — пароль (у меня без спец символов; возможно придется заключить в кавычки при их наличии),
rewriteDomain=111.ru — перезапись на указанное доменное имя,
hostname=localhost
FromLineOverride=YES — разрешить пользователям указывать имя в поле «от кого»,
Debug=YES — отладка для поиска проблем (если нужно).
2.2) /etc/ssmtp/revaliases
Отредактируем файл конфигурации и укажем соответствие локальных пользователей к почтовым аккауентам:
1 2 3 4 5 6 7 8 9 10 11 | sudo nano /etc/ssmtp/revaliases # sSMTP aliases # # Format: local_account:outgoing_address:mailhub # # Example: root:your_login@your.domain:mailhub.your.domain[:port] # where [:port] is an optional port number that defaults to 25. root:backup@111.ru:mail.111.ru:126 bareos:backup@111.ru:mail.111.ru:126 www-data:backup@111.ru:mail.111.ru:126 |
Для этих пользователей я указал соответствие почтового аккаунта для возможности отправки уведомлений по эл. почте.
Ссылки:
Установка и базовая настройка BareOS.
If you found an error, highlight it and press Shift + Enter or to inform us.