Настройка bacula astra linux

Обновлено: 05.07.2024

Перед подъёмом боевой бакулы есть смысл хотя бы неделю потренироваться на учебной установке; хорошо бы при этом заметить такой момент как настройка VolumeRetention и Recycle/AutoPrune, иначе рано или поздно настанет день, когда единственный здоровенный том подойдёт к концу и сделать с этим ничего не получится, потому что bacula их _только_ дописывает и никогда не начинает перезаписывать место в томе, которое было занято уже удалёнными заданиями. Стоит делать небольшие (пусть десятки гигов, а не терабайты) тома и наладить их автоматизированный оборот.

Рассмотрим минимальную установку сервера bacula.
Установим необходимые пакеты:
На сервере:

Внимание! Если у Вас включен SELinux, то на время настройки выключите его Внимание! Если у Вас не запускаются сервисы Bacula с ошибкой Cannot not open pid file. См. Bug 33645

Для исправления запуска сервисов (Bug 33645) необходимо привести файл /lib/tmpfiles.d/bacula.conf к следующему виду:

И перезагрузить сервер.

Внимание! Если у Вы используете 5 версию Bacula то все файлы с описаниями задач, расписаний, списков файлов и т.д. необходимо добавлять в конфигурационные файлы сервисов с помощью такой строки: @/etc/bacula/job/bacula.conf

Процесс запуска и настройки MySQL сервера описан тут

Запустим сервис и добавим его в автозагрузку:

В bacula присутствуют скрипты для создания базы, пользователя и таблиц.
Для того чтобы задать пароль для пользователя bacula необходимо отредактировать следующую строку в файле /usr/share/bacula/scripts/grant_mysql_privileges :

В противном случае пользователь создастся без пароля.
Выполним следующие скрипты используя пароль mysql для root:

За настройку Bacula Director отвечает файл /etc/bacula/bacula-dir.conf :

В каталоге storage.d находятся конфигурационные файлы хранилищ к которым director имеет доступ:

В каталоге fileset.d находятся описания списков файлов для резервирования:

В каталоге job.d описываются задания резервирования.
backupcatalog.conf - Делает дамп базы и резервирует его:

bacula.conf - делает полный бэкап:

defaultjob.conf - описывает параметры задачи по умочанию:

restore.conf - восстанавливает файлы:

Пул объединяет в себе несколько томов, чтобы отдельная резервная копия не была ограничена объемом тома.
Том это отдельная единица в которую ведется запись, может быть файлом или ленточкой.
default.conf - описывает пул по умолчанию:

В файле client1.conf описан локальный клиент:

Добавим удаленного клиента с IP 10.10.50.50, для этого создадим файл client2.conf следующего содержания:

Проверить корректность конфигурационных файлов bacula director можно так:

Запустим и добавим в автозапуск сервис:

Основной файл конфигурации хранилищ находится это /etc/bacula/bacula-sd.conf , также к нему присоединяются все файлы из каталога device.d
По умочанию этот файл выглядит так:

В каталоге device.d находится файл с описанием устройства:

Каталог /srv/backup должнен существовать и принадлежать пользователю bacula:

Проверить корректность конфигурационных файлов bacula storage можно так:

Запустим и добавим в автозагрузку сервис:

Установим необходимые пакеты:

Конфигурационный файл клиента находится по адресу /etc/bacula/bacula-fd.conf :

Запустим и добавим в автозагрузку сервис:

Для управления bacula используется специальная утилита bconsole.

Для проcмотра статуса всех компонентов введем status:

За ходом выолнения можно наблюдать выбрав статус director:

Выбираем 1 пункт - показать последнии 20 задач

Выбираем 3 пункт - ввести номера задач через запятую и вводим номер задачи 2

Bacula построит дерево файлов в котором мы можем выбрать файлы для востановления.
Выберем файлы в каталоге /etc

Выберем клиента для востановления:

Проверим все параметры задачи и запустим её:

Файлы востановленны в каталог /tmp/bacula-restores

Внимание! Для работы с Bacula на сервере PostgreSQL должно быть настроено онлайн резервирование PITR)

На клиенте в каталоге /etc/bacula создадим следующие скрипты:

pre-base-backup.sh:

Этот скрипт создает полную копию базы данных и выполняется перед выполнением задачи резервного копирования базы.

post-base-backup.sh:

Этот скрипт удаляет созданную копию базы данных и будет выполнен после задачи резервного копирования базы.

pre-logs-backup.sh:

Этот скрипт создает файл backup_in_progress и выполняется перед выполнением задачи резервного копирования журналов. Этот файл нужен, чтобы во время резервного копирования PostgreSQL не архивировал новые журналы (copy_wal.sh)

post-logs-backup.sh:

Этот скрипт очищает каталог с журналами и файл backup_in_progress, и будет выполнен после задачи резервного копирования журналов. Далее необходимо сделать эти скрипты исполняемыми:

На этом настройка клиента завершена.

Для онлайн резервного копирования PostgreSQL необходимо добавить в Bacula клиента и создать для него задачи. В этом примере рассмотрим настройку на примере клиента zabbix-fd.

Создадим списки файлов для резервного копирования в каталоге /etc/bacula/fileset.d :
Список для копирования полной резервной копии базы PGSQL-Full-Base-set.conf :

Список для копирования журналов PGSQL-Logs-set.conf :

Создадим отдельный пул для наших бекапов в каталоге /etc/bacula/pool.d :
Файл zabbix.conf :

Создадим расписания для резервирования базы и журналов в каталоге /etc/bacula/schedule.d :
Файл PGSQL-Full-Base-Cycle.conf :

Создадим задачи резервного копирования в каталоге /etc/bacula/job.d :
Задача резервного копирования базы zabbix-pgsql-base-fd.conf :

Задача резервного копирования журналов zabbix-pgsql-logs-fd.conf :

Теперь необходимо перезапустить сервис Bacula Director:

Рассмотрим базовую установку web интерфейса baculum. Установим необходимые пакеты на сервере:

Далее включим сайты baculum-api.conf и baculum-web.conf в apache2:


Включаем следующие модули для работы baculum web:

c помощью команды:

Добавляем пользователя apache2 в группу bacula:

Для работы с bconsole веб серверу даём право запускать необходимые бинарники без пароля:

Bacula – пакет программ архитектуры «клиент-сервер» с открытым исходным кодом, предназначенный для создания резервных копий данных, находящихся на компьютерах с различными операционными системами, для восстановления и проверки хранящихся данных и имеющий модульную архитектуру, легко масштабируемый и может быть использован, как для небольшой локальной сети из нескольких компьютеров, так и для сети предприятия, состоящего из нескольких сотен компьютеров. Для передачи данных используется стек протоколов TCP/IP. Резервные копии создаются в собственном, полностью открытом формате.

Система состоит из пяти основных элементов:

1) Director Daemon (DD) – это центральный элемент системы, осуществляющий управление её остальными компонентами. В его задачи входит управление процессом резервирования/восстановления данных, обеспечение интерфейса управления для администраторов и многое другое. Говоря проще – это диспетчер, который инициирует все процессы и отслеживает ход их выполнения.

2) Storage Daemon (SD) – приложение, отвечающее за чтение/запись данных непосредственно на устройства хранения информации. Принимает управляющие команды от DD, а также резервируемые данные от/к File Daemon.

3) File Daemon (FD) – этот элемент ещё можно назвать Агентом. Ведь именно он работает в рамках операционной системы, данные которой необходимо резервировать. File Daemon выполняет всю рутину, осуществляя обращение к резервируемым файлам и их дальнейшую передачу к SD. Также на стороне FD выполняется защитное преобразование резервных копий, если это определено конфигурацией.

4) Bacula Console (BC) – интерфейс администратора системы. По своей сути, это командный интерпретатор для управления Bacula. Строго говоря, Bacula Console может быть расширена с помощью графических систем управления, которые, как правило, являются всего лишь надстройкой над BC. К таким системам можно отнести Tray Monitor и Bat. Первая устанавливается на компьютере администратора системы и осуществляет наблюдение за работой системы резервирования, а вторая обеспечивает возможность управления посредством графического интерфейса.

5) Bacula Catalog – база данных, в которой хранятся сведения обо всех зарезервированных файлах и их местонахождении в резервных копиях. Каталог необходим для обеспечения эффективной адресации к требуемым файлам. Поддерживаются MySql, PostgreSql и SqLite.

Такое структурное деление позволяет организовать очень гибкую систему резервирования, когда Storage Daemon разворачивается на выделенном сервере с несколькими устройствами хранения данных. Также Bacula Director может управлять несколькими экземплярами SD, обеспечивая резервирование части данных на одно устройство хранения, а части – на другое.

Bacula обеспечивает поддержку сохранения расширенных атрибутов каталогов и файлов и, при необходимости, их последующее восстановление.

Первоначально нам необходимо настроить PostgreSQL для того, чтобы Bacula могла работать с ней.

Перед изменением настроек рекомендуется сделать резервную копию данных:

В секции «Connection Settings» файла «/etc/postgresql/9.6/main/postgresql.conf» изменить значение listen_addresses=”localhost” на listen_addresses=”*”, поставив * вместо localhost:

ОБЯЗАТЕЛЬНО СОХРАНИТЬ НАСТРОЙКИ ПОСЛЕ РЕДАКТИРОВАНИЯ.

В файле «/etc/postgresql/9.6/main/pg_hba.conf» внести необходимые изменения:

Для простоты указать метод trust для всех соединений, удалить любую дополнительную конфигурацию после метода типа mod=; и обязательно добавить хост с IP-адресом, где будет работать Директор.

В секции «Database administrative login by Unix domain socket» файла «/etc/postgresql/9.6/main/pg_hba.conf» закомментировать строку:

и дописать после нее строку разделяя значения символом табуляции:

В секции «local» файла «pg_hba.conf» закомментировать строку:

и дописать после нее строку разделяя значения символом табуляции:

В секции «IPv4» файла «pg_hba.conf» закомментировать строку:

и дописать после нее 2 строки разделяя значения символом табуляции:

при копировании проверяйте правильность указанных IP адресов

ОБЯЗАТЕЛЬНО СОХРАНЯЙТЕ НАСТРОЙКИ ПОСЛЕ РЕДАКТИРОВАНИЯ.

Перезапустить СУБД командой:

Присвоить пароль пользователю postrges:

Присвоить пароль пользователю bacula:

В данном примере далее для обоих пользователей используется пароль "1".

Создать пользователя БД bacula с паролем «bacula» для работы с Bacula и сделать это надо не от имени учетной записи администратора.

Войти в интерфейс управления psql командой:

при копировании проверяйте правильность указанных IP адресов

Войти в интерфейс управления psql командой:

подставив свой IP адрес, порт (у меня) по умолчанию.

Создаем пользователя bacula командой:

Если пользователь bacula создался корректно/правильно получаем ответ:

Присваиваем созданному пользователю пароль: "bacula" следующей командой:

Если пароль успешно присвоен пользователю получаем ответ:

Создаем суперпользователя для нашей базы:

Если суперпользователь для нашей базы создался получаем ответ:

Выходим из интерфейса управления psql командой:

Далее нам необходимо создать БД bacula, назначить ее владельцем созданного ранее пользователя bacula.

Заходим в интерфейс управления psql командой:

Создаем БД командой:

При создании конфиграций Bacula не рекомендуется использовать кириллицу, так как использование кириллицы может вызвать ошибки.

Если база создалась получаем ответ:

Назначаем владельцем данной БД пользователя "bacula" командой:

Если назначение прошло успешно получаем ответ:

Выходим из интерфейса управления psql командой:

Выходим из терминала суперпользователя

Далее нам необходимо запустить скрипты, которые создадут все необходимые таблицы и привилегии, предварительно забекапив и отредактировав их

Бекапим 1й нужный нам скрипт (создания таблиц) командой:

и открываем его на редактирование:

В строке "db_name" (14я сверху) указать значение имени БД «bacula»:

В строке psql после psql вписать «-U bacula -h 192.168.244.70 -p 5432»:

при копировании проверяйте правильность указанных IP адресов

ОБЯЗАТЕЛЬНО СОХРАНЯЙТЕ НАСТРОЙКИ ПОСЛЕ РЕДАКТИРОВАНИЯ.

Создать резервную копию сценария раздающего привилегии командой:

и открываем его на редактирование:

В строке db_user (8я сверху) указать значение пользователя «bacula»

В строке db_name указать значение имени БД «bacula»

В строке db_password указать значение пароля пользователя БД «bacula»

В строке $bindir/psql**** после psql вписать «-U bacula -h 192.168.244.70 -p 5432 »

при копировании проверяйте правильность указанных IP адресов

ОБЯЗАТЕЛЬНО СОХРАНЯЙТЕ НАСТРОЙКИ ПОСЛЕ РЕДАКТИРОВАНИЯ.

Для корректного функционирования отредактированных сценариев необходимо выдать права на чтение информации из БД пользователей и сведений о метках безопасности, а так же присвоить для этого необходимые атрибуты пользователю postgres:

Установить пользователю необходимые атрибуты:

в данной команде используется буква L в низком регистре

Далее по очереди выполнить отредактированные сценарии:

Если сценарии отработали нормально, то есть:

  1. созданы все необходимые таблицы;
  2. корректно назначены все необходимые привилегии;
  3. без ошибок взята информация из БД пользователей и сведений о метках безопасности.

Если же что-то пошло не так, то Вам просто повезло, что вы делаете все на ВМ, откатываемся и повторяем настройки, на этот раз внимательнее.

Создаем сценарий script.sh со следующим содержимым:

Данный сценарий предоставлен в ознакомительных целях и подразумевает его использование пользователем исключительно на свой страх и риск.

перед выполнением сценария присвоить ему маску 777 ( sudo chmod 777 script .sh )

выполнять сценарий из под администратора системы с высоким МКЦ и с использованием механизма sudo ( sudo ./script .sh )

при копировании проверяйте правильность указанных IP адресов и синтаксис (точки, пробелы, слэши, кавычки, апострофы и тп - могут быть неправильно перенесены)

Для задач резервного копирования в системах Linux существует ряд продуктов (кроме специализированных стандартных утилит), которые обладают высокой эффективностью и универсальностью использования. Среди таковых особенно выделяется Bacula, которая кроме всех прочих достоинств обладает также и ещё некоторыми немаловажными особенностями — это свободное распространение и открытый исходный код. Как правило, подобные системы, в большинстве случаев – проприетарные, поэтому Bacula для системного администратора может явиться самым удачным и рациональным выбором.

Основные преимущества Bacula

Стоит отдельно остановиться на конкретных возможностях Bacula, выделяющих её среди аналогичных продуктов:

  • Открытый исходный код и свободное распространение.
  • Работа в смешанных системах – UNIX, Linux, Mac OS и Windows.
  • Модульная, легко масштабируемая архитектура с чётким разделением функционала, данных и элементов управления/взаимодействия с системой.
  • Организация и управление базами данных с помощью MySQL, PostgreSQL и даже
  • Работа с несколькими ленточными устройствами хранения, в том числе и с автоматической заменой лент.
  • Шифрование сетевого трафика, а также данных резервных копий.
  • Централизованные контроль и управление резервным копированием всей системы в распределённых системах любой сложности.
  • Возможность создания сигнатур MD5 или SHA1 для каждого обрабатываемого файла.
  • Возможность копирования файлов, размером больше 2 Гбайт.
  • Поддержка выполнения сценариев в процессе резервного копирования.

Справедливо отметить, что далеко не каждый коммерческий закрытый продукт обладает всеми перечисленными возможностями.

Принцип работы Bacula

Утилита состоит из функциональный компонентов, каждый из которых ответственен за свой круг задач. Каждый компонент функционирует в системе в виде отдельного демона. Они (демоны) обмениваются данными между собой автоматически, а также посредством графического пользовательского интерфейса (GUI) или через командную консоль управления.

Итак, основные демоны Bacula:

  • Управления — этот компонент управляет задачами резервного копирования и восстановления, а также координирует проверку файлов, подлежащих резервированию.
  • Управления файлами работает в каждой системе, в которой необходимо резервное копирование. Он отправляет демону управления данные об атрибутах резервируемых файлов.
  • Хранения — выполняет чтение/запись с устройств хранения. По-умолчанию он работает на тех машинах, к которым непосредственно подключены устройства хранения, однако можно запускать этот демон и на удалённом компьютере — отдельно.
  • Каталог — это компонент представляет собой служебную базу данных (БД) для организации и учёта резервного копирования, восстановления и проверки файлов. Благодаря каталогу, утилита располагает всей информацией о всех файлах и устройствах хранения в ретроспективе.

Настройка Bacula

Как уже было отмечено, Bacula из-за своей модульной и многослойной архитектуры может легко разворачиваться и работать в системах самого различного масштаба и сложности. Во всех случаях для настройки утилиты необходимо выполнить следующие действия:

  • установить демоны;
  • установить и настроить внешние СУБД (системы управления базами данных), а также создать саму БД и таблицы для использования;
  • установить и настроить клиентские демоны управления файлами;
  • запустить демоны Bacula;
  • определить носители хранения и добавить их в пул Bacula;
  • проверить работоспособность путём выполнения тестового резервного копирования.

Обычно, на клиентских компьютерах устанавливаются демоны управления файлами, а все остальные демоны работают на серверной машине. В больших и сложных системах с высокой нагрузкой рекомендуется отступать от этой схемы, равномерно организуя нагрузку на сервера, устанавливая отдельные компоненты (демоны) Bacula на отдельных машинах, в том смысле, что на отдельных машинах не должно выполняться сразу несколько демонов.

Установка базы данных

Как уже было сказано, Bacula имеет функциональный компонент — каталог для организации, хранения и использования в своих задачах ретроспективы данных. Этот каталог хранится в БД и обслуживается СУБД, которая, в свою очередь, предварительно должна быть установлена и настроена.

Сама же БД утилиты, т. е. её каталог также должна быть предварительно создана. Также и должны быть созданы и необходимые таблицы внутри этой БД. Обычно всё это делается автоматически при разворачивании утилиты в системе, когда она устанавливается из репозиториев дистрибутива. Для этого используются специализированные скрипты, которые можно найти в каталоге src/cats дистрибутива с исходными кодами Bacula, если сборка и установка производится вручную. Скрипт create_mysql_database создаст базу данных, а другой скрипт make_mysql_tables – таблицы для этой БД. Ещё один скрипт grant_mysql_privileges предоставляет пользователю MySQL разрешения для пользования этой БД.

Конфигурирование демонов

Для каждого компонента Bacula и демона предусмотрен отдельный конфигурационный файл. После установки и настройки СУБД, а также создания БД таблиц каталога Bacula необходимо выполнить конфигурацию и её компонентов. В следующей таблице представлены конфигурационные файлы основных компонентов утилиты, которые находятся в каталоге /etc/bacula:

Компонент

Конфигурационный файл

Компьютер

Сервер, запускающий демон управления

Любой сервер, содержащий демон хранения

Любой клиент, для которого нужно создавать резервные архивы

Любой компьютер, который можно использовать для управления

Стоит отметить, что хранение конфигурации в отдельных для каждого компонента файлах — очень удобно и способствует лучшей масштабируемости системы, ведь таким образом легко «расфасовать» разные демоны с их конфигурационными файлами по разным машинам. Например, если нужно хранить архивы на «стороннем компьютере», то для этого достаточно установить и настроить демон хранения на этом «стороннем компьютере».

Для того, чтобы более подробно рассмотреть механизм конфигурирования демонов, следует разобраться с несколькими базовыми понятиями, характерными для Bacula, а именно:

В более сложном случае, характерном для файла конфигурации bacula-dir.conf ресурс Messages имеет следующий вид:

Можно определить несколько ресурсов Messages и привязать их к отдельным заданиям, которые, в свою очередь, описываются в другом ресурсе Job. Самую подробную информацию о правилах описания ресурсов для разных случаях можно найти в официальной технической документации к Bacula.

Самой сложной конфигурацией является конфигурация демона управления — bacula-dir.conf. Она должна включать в себя описания ещё семи (кроме рассмотренных Director и Messages) ресурсов: Job, Client, Catalog, Storage, Schedule, FileSet, Pool. В предоставляемых в дистрибутивах или пакетах утилиты можно найти примеры конфигурационных файлов, в которых описываются ресурсы с подробными комментариями и на их основе создать собственную конфигурацию.

Для конфигурирования демона управления файлами на конкретном компьютере должен быть (после предварительной установки этого демона на этот компьютер) отредактирован файл bacula-fd.conf. В нём нужно, в ресурсе Director указать, какое устройство управления использовать для планирования задач для этого клиента, а также пароль — такой же, который указан в ресурсе Client в файле конфигурации демона управления. В ресурсе FileDemon определяются имена клиентов, а также порт, через который демон управления файлами слушает для получения команд от демона управления. Ну и конечно, должен быть определён ресурс Messages.

Запуск демонов Bacula

После того как все демоны и клиенты установлены и настроены. Можно запускать Bacula с помощью скрипта ./bacula start, который запустит все демоны системы. На клиентских машинах (на которых находятся демоны управления файлами). Для запуска клиентских демонов используется эта же команда. Сам же скрипт находится в каталоге с установленным сервером/демоном.

Для проверки состояния работы демонов, а также для управления Bacula можно использовать программу bconsole. Которая также находится в каталоге установки Bacula. Пользоваться bconsole можно с любого компьютера в сети, если конечно она правильно установлена и настроена:

Для включения автозапуска Bacula при начальной загрузке системы можно (и нужно) также добавить команду ./bacula start в автозагрузку. В зависимости от используемой Linux-системы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Мануал

Описание

Он очень гибкий и надежный, что делает его, хотя и немного громоздким для настройки, подходит для резервного копирования во многих ситуациях.

Система резервного копирования является важным компонентом большинства серверных инфраструктур, так как восстановление от потери данных часто является важной частью планов аварийного восстановления.

В этом уроке мы покажем вам, как устанавливать и настраивать серверные компоненты Bacula на сервере Ubuntu.

Резервное копирование с открытым исходным кодом: Bacula Предпосылки

  • У вас должен быть доступ к суперпользователю (sudo) на сервере Ubuntu. Сервер также будет хранить резервные архивы, что потребует достаточного дискового пространства для всех резервных копий, которые вы планируете сохранить в любой момент времени.
  • Мы сконфигурируем Bacula для использования частных IP-адресов наших серверов. Если у вас есть настройка DNS, не стесняйтесь использовать соответствующие имена доменов.

Обзор компонентов Bacula

Хотя Bacula состоит из нескольких программных компонентов, он следует за моделью резервного сервера и клиента; для упрощения обсуждения мы сосредоточимся больше на резервном сервере и резервных клиентах, чем на отдельных компонентах Bacula.

Тем не менее, важно иметь беглые знания о различных компонентах Бакулы, поэтому мы рассмотрим их сейчас.

Сервер Bacula, который мы также будем называть «резервным сервером», имеет следующие компоненты:

  • Директор Bacula (DIR): программное обеспечение, которое контролирует операции резервного копирования и восстановления, выполняемые демонами File и Storage
  • Storage Daemon (SD): программное обеспечение, которое выполняет чтение и запись на устройствах хранения, используемых для резервного копирования
  • Каталог: службы, которые поддерживают базу данных резервных копий файлов. База данных хранится в базе данных SQL, такой как MySQL или PostgreSQL
  • Консоль Bacula: интерфейс командной строки, который позволяет администратору резервного копирования взаимодействовать с Bacula Director и управлять им

Примечание. Серверным компонентам Bacula не нужно запускать на одном сервере, но все они работают вместе, чтобы обеспечить функциональность сервера резервного копирования.

Клиент Bacula, то есть сервер, который будет скопирован, запускает компонент File Daemon (FD).

Как мы отметили во введении, мы настроим резервный сервер для создания резервной копии собственной файловой системы.

Это означает, что резервный сервер также будет резервным клиентом и запустит компонент File Daemon.

Установка MySQL

Bacula использует базу данных SQL, такую как MySQL или PostreSQL, для управления каталогом резервных копий.

Мы будем использовать MySQL в этом учебнике.

Во-первых, обновите apt-get:

Теперь установите MySQL Server с помощью apt-get:

Вам будет предложено ввести пароль для администратора базы данных MySQL, root. Введите пароль, затем подтвердите его.

Запомните этот пароль, так как он будет использоваться в процессе установки Bacula.

Установка Bacula

Установите сервер и клиентские компоненты Bacula, используя apt-get:

Вам будет предложено ввести некоторую информацию, которая будет использоваться для настройки Postfix, которую использует Bacula:

  • Общий тип конфигурации почты: выберите «Интернет-сайт»
  • Имя системной почты: введите полное доменное имя или имя хоста сервера

Затем вам будет предложено ввести информацию, которая будет использоваться для создания базы данных Bacula:

  • Настроить базу данных для bacula-director-mysql с помощью dbconfig-common ?: Выберите «Да»,
  • Пароль административного пользователя базы данных: введите свой пароль пользователя MySQL (установленный во время установки MySQL)
  • Пароль приложения MySQL для bacula-director-mysql: введите новый пароль и подтвердите его или оставьте поле пустым для создания случайного пароля

Последним шагом в установке является обновление разрешений скрипта, который использует Bacula во время задания резервного копирования в каталоге:

Теперь установлены серверные (и клиентские) компоненты Bacula. Давайте создадим каталоги резервного копирования и восстановления.

Создание резервных копий и восстановление каталогов

Если ваша система имеет несколько разделов, обязательно создайте каталоги на одном, у которого достаточно места.

Давайте создадим новые каталоги для обеих этих целей:

Нам нужно изменить права доступа к файлам, чтобы только процесс bacula (и суперпользователь) мог получить доступ к этим местам:

Теперь мы готовы настроить Bacula Director.

Настройка Bacula Director

Bacula имеет несколько компонентов, которые должны быть настроены независимо для правильной работы.

Все файлы конфигурации можно найти в каталоге /etc/bacula.

Мы начнем с директора Bacula.

Откройте файл конфигурации Bacula Director в вашем любимом текстовом редакторе.

Мы будем использовать vi:

Настройка локальных заданий

Задача Bacula используется для выполнения действий по резервному копированию и восстановлению.

Ресурсы задания определяют детали того, что будет делать конкретное задание, включая имя Клиента, FileSet для резервного копирования или восстановления, между прочим.

Здесь мы будем настраивать задания, которые будут использоваться для выполнения резервных копий локальной файловой системы.

В конфигурации Director найдите ресурс Job с именем «BackupClient1» (найдите «BackupClient1»). Измените значение Name на «BackupLocalFiles», чтобы оно выглядело следующим образом:

Затем найдите ресурс Job, который называется «RestoreFiles» (поиск «RestoreFiles»).

В этой задаче вы хотите изменить две вещи: обновите значение Name до «RestoreLocalFiles» и значение Where to / / bacula / restore.

Он должен выглядеть так:

Это настраивает задание RestoreLocalFiles для восстановления файлов в /bacula/restore, каталог, который мы создали ранее.

Настройка набора файлов

Bacula FileSet определяет набор файлов или каталогов для включения или исключения файлов из резервной копии и используется заданиями.

Здесь мы сделаем три изменения:

(1) Добавьте опцию для использования gzip для сжатия наших резервных копий

(2) измените файл include из / usr / sbin на /

(3) измените второй файл exclude на / bacula.

С удалением комментариев он должен выглядеть так:

Перейдем к изменениям, которые мы внесли в «Полный набор» FileSet.

Во-первых, мы включили сжатие gzip при создании резервного архива. Во-вторых, мы включаем /, т. е. корневой раздел, который должен быть скопирован.

В-третьих, мы исключаем / bacula, потому что мы не хотим избыточно резервировать наши резервные копии Bacula и восстанавливать файлы.

Примечание. Если у вас есть разделы, которые установлены в /, и вы хотите включить их в FileSet, вам нужно будет добавить дополнительные записи файлов для каждого из них.

Имейте в виду, что если вы всегда используете широкие файлы, такие как «Полный набор», в ваших заданиях резервного копирования, для ваших резервных копий потребуется больше места на диске, чем если бы ваш выбор резервного копирования был более конкретным.

Например, FileSet, который включает только ваши настроенные файлы конфигурации и базы данных, может быть достаточным для ваших нужд, если у вас есть четкий план восстановления, в котором подробно описывается установка необходимых пакетов программного обеспечения и размещение восстановленных файлов в соответствующих местах, в то время как использование только части дисковое пространство для архивов резервных копий.

Настройка подключения к хранилищу данных

В конфигурационном файле Director Bacula ресурс Storage определяет Демон хранилища, к которому должен подключиться Директор.

Мы сконфигурируем фактический Демон хранилища всего за один миг.

Найдите ресурс Storage и замените значение Address, localhost, частным IP-адресом (или FQDN) вашего резервного сервера.

Он должен выглядеть так (замените выделенное слово):

Это необходимо, потому что мы собираемся настроить Демона памяти для прослушивания в частном сетевом интерфейсе, поэтому удаленные клиенты могут подключиться к нему.

Настройка пула

Ресурс пула определяет набор хранилищ, используемых Бакулой для записи резервных копий.

Мы будем использовать файлы в качестве наших объемов хранения, и мы просто обновим ярлык, чтобы наши локальные резервные копии получили соответствующую метку.

Найдите ресурс пула с именем «Файл» (под комментарием «Определение пула файлов») и добавьте строку, в которой указан формат метки. Это должно выглядеть так, когда вы закончите:

Сохраните и выйдите из файла.

Наконец, вы закончили настройку директора Bacula.

Проверьте конфигурацию директора:

Давайте проверим, что в вашем конфигурационном файле Director нет синтаксических ошибок:

Затем мы сконфигурируем Демон хранилища.

Настройка демона хранения

Наш сервер Bacula практически настроен, но нам еще нужно настроить Демон хранилища, потому что Бакула знает, где хранить резервные копии.

Откройте конфигурацию SD в своем любимом текстовом редакторе.

Мы будем использовать vi:

Настройка ресурса хранилища

Найдите ресурс хранилища.

Это определяет, где процесс SD будет прослушивать соединения.

Обновите значение SDAddress на приватный IP-адрес резервного сервера:

Настройка устройства хранения

Затем найдите ресурс устройства с именем «FileStorage» (найдите «FileStorage») и обновите значение «Архивирующее устройство» в соответствии с вашим каталогом резервных копий:

Сохраните и выйдите.

Проверка конфигурации хранилища данных

Давайте проверим, что в файле конфигурации хранилища данных отсутствуют синтаксические ошибки:

Мы завершили настройку Bacula.

Мы готовы перезапустить серверные компоненты Bacula.

Перезапуск Bacula Director и Storage Daemon

Чтобы внести изменения в конфигурацию, которые вы ввели в силу, перезапустите Bacula Director и Storage Daemon с помощью следующих команд:

Теперь, когда обе службы были перезапущены, давайте проверим, работает ли это, выполнив задание резервного копирования.

Тестирование задания резервного копирования

Мы будем использовать консоль Bacula для запуска нашей первой задачи резервного копирования.

Если он работает без каких-либо проблем, мы узнаем, что Bacula настроен правильно.

Теперь войдите в консоль с помощью этой команды:

Это приведет вас к приглашению Bacula Console, обозначенному подсказкой *.

Создать ярлык

Начните с выдачи команды метки:

Вам будет предложено ввести имя тома.

Введите любое имя, которое вы хотите:
Введите новое имя тома:

Затем выберите пул, который должна использовать резервная копия.

Мы будем использовать пул «Файл», который мы настроили ранее, введя «2»:
Выберите Пул (1-3):

Запуск резервного копирования вручную

Бакула теперь знает, как мы хотим записать данные для нашей резервной копии.

Теперь мы можем запустить нашу резервную копию, чтобы проверить, что она работает правильно:

Вам будет предложено выбрать, какое задание выполнить.

Мы хотим запустить задание «BackupLocalFiles», поэтому введите «1» в командной строке:

Выберите ресурс работы (1-3):

В командной строке «Запуск задания резервного копирования» просмотрите сведения, затем введите «yes», чтобы запустить задание:

Если есть какие-либо ошибки, что-то не так, и они должны дать вам подсказку о том, почему работа не выполнялась.

Для этого введите эту команду в командной строке bconsole:

Если все работает правильно, вы должны увидеть, что ваша работа запущена.

Что-то вроде этого:

Output — status director (Running Jobs)

Когда ваша работа будет завершена, она перейдет в раздел «Terminated Jobs» в отчете о состоянии, например:

Output — status director (Terminated Jobs)

Состояние «ОК» означает, что задание резервного копирования выполнялось без каких-либо проблем.

Поздравления! У вас есть резервная копия «Full Set» вашего сервера Bacula.

Тест восстановления

Теперь, когда была создана резервная копия, важно проверить правильность ее восстановления.

Команда Therestore позволит нам восстановить файлы, которые были скопированы.

Запустить Восстановление всех заданий

Чтобы продемонстрировать, мы восстановим все файлы в нашей последней резервной копии:

Появится меню выбора со многими различными параметрами, которые используются для определения того, какой резервный набор необходимо восстановить.

Выберите элемент (1-13):

Поскольку есть только один клиент, сервер Bacula, он будет автоматически выбран.

В следующем запросе будет указан тот файл, который вы хотите использовать.

Выберите «Full set», который должен быть 2:

Выберите ресурс FileSet (1-2):

Это приведет вас к виртуальному файловому дереву со всей структурой каталога, которую вы создали.

Этот shell-подобный интерфейс позволяет простым командам отмечать и отменять файлы, которые нужно восстановить.

Поскольку мы указали, что хотим восстановить все, каждый резервный файл уже отмечен для восстановлени

я. Маркированные файлы обозначаются ведущим символом *.

Если вы хотите точно настроить свой выбор, вы можете перемещаться и переименовывать файлы с помощью команд «ls» и «cd», маркировать файлы для восстановления с помощью «label» и деактивировать файлы с помощью «unmark».

Полный список команд доступен, набрав «help» в консоли.

Когда вы закончите делать выбор восстановления, продолжайте, набрав:

Убедитесь, что вы хотите запустить задание восстановления:

OK to run? (yes/mod/no):

Если есть какие-либо ошибки, что-то не так, и они должны дать вам подсказку о том, почему работа не выполнялась.

Когда вы закончите восстановление, введите exit, чтобы покинуть консоль Bacula:

Проверить восстановление

Чтобы убедиться, что задание восстановления действительно восстановило выбранные файлы, вы можете посмотреть в каталоге /bacula/ restoreirectory (который был определен в задании «RestoreLocalFiles» в конфигурации Director):

Вы должны увидеть восстановленные копии файлов в корневой файловой системе, за исключением файлов и каталогов, перечисленных в разделе «Exclude» задания «RestoreLocalFiles» .

Если вы пытались восстановить данные, вы можете скопировать восстановленные файлы в соответствующие места.

Удалить восстановленные файлы

Вы можете удалить восстановленные файлы, чтобы освободить место на диске.

Для этого используйте следующую команду:

Обратите внимание, что вам нужно запустить эту команду rm как root, так как многие из восстановленных файлов принадлежат root.

Установка Bacula-web

Хотя это не позволяет вам контролировать Bacula в любом случае, Bacula-web предоставляет графическую альтернативу просмотру заданий с консоли .

Bacula-web особенно полезен для пользователей, которые не знакомы с Bacula, поскольку его отчеты позволяют легко понять, что Bacula работает.

Установка Nginx и PHP

Мы будем использовать Nginx.

Затем установите Nginx, PHP-fpm и несколько других пакетов используя apt-get:

Теперь мы готовы настроить PHP и Nginx.

Настройка PHP-FPM

Откройте файл конфигурации PHP-FPM в вашем любимом текстовом редакторе.

Мы будем использовать vi:

Найдите строку, которая указывает cgi.fix_pathinfo, раскомментирует ее и заменит ее значение на 0.

Она должна выглядеть так, когда вы закончите:

Теперь найдите параметр date.timezone, раскомментируйте его и замените его значение на свой часовой пояс.

Мы находимся в Москве, поэтому мы устанавливаем значение:

Сохраните и закройте файл.

PHP-FPM настроен правильно, поэтому давайте его перезапустим, чтобы внести изменения в силу:

Настройка Nginx

Теперь пришло время настроить Nginx для работы с PHP-приложениями.

Во-первых, потому что мы не хотим, чтобы несанкционированные пользователи обращались к Bacula-web, давайте создадим файл htpasswd.

Используйте htpasswd для создания пользователя-администратора под названием «admin» (вы должны использовать другое имя), который может получить доступ к веб-интерфейсу Bacula:

Введите пароль в командной строке.

Запомните этот логин, так как вам понадобится его доступ к Bacula-web.

Теперь откройте файл конфигурации блока сервера Nginx по умолчанию в текстовом редакторе.

Мы будем использовать vi:

Замените содержимое файла следующим блоком кода.

Не забудьте заменить выделенное значение имя_сервера на доменное имя или IP-адрес вашего сервера:

Сохраните и закройте файл.

Это настроит Nginx для обслуживания приложений PHP и для использования файла htpasswd, который мы создали ранее, для аутентификации.

Чтобы изменения вступили в силу, перезапустите Nginx.

Перейдите в свой домашний каталог и загрузите последний веб-архив Bacula

Теперь создайте новый каталог, bacula-web, измените его и извлеките архив Bacula-web:

Прежде чем копировать файлы в корневой каталог вашего веб-сервера, мы должны сначала его настроить.

Читайте также: