Оглавление:
Статья последний раз была обновлена 04.03.2023
Веб-интерфейс интерфейс к Bacula — Webacula
21Апр
2010
|
|
Статья для журнала журнала Системный администратор
Bacula –популярная Open Source система резервного копирования, использование веб-интерфейса Webacula, позволит сделать ее использование на порядок удобнее.
Bacula достаточно мощная утилита резервного копирования и восстановления данных, тем не менее, процесс установки, повседневного управления и получения отчетов недостаточно удобен и нагляден. Именно поэтому на сегодняшний день написан не один десяток графических интерфейсов к Bacula, разной степени готовности и возможностей.
Одним из первых и до сих пор наиболее функциональных является Webacula (Web + Bacula), о настройке которого и поговорим дальше.
Возможности Webacula
Webacula является типичным веб-приложением, требующим для своей работы стандартную связку LAMP (Linux+Apache+MySQL+PHP). Построен при помощи Zend framework. Используя веб-браузер администратор может удаленно запустить задание, восстановить файлы по идентификатору задания, из самой последней копии клиента, данные перед указанным временем, вывести запланированные и выполненные задания (все и в 24 часовом промежутке), задания выполненные с ошибками (за 7 дней), вывод временной диаграммы заданий и состояния хранилищ, монтирование и размонтирование хранилищ, состояние томов. Возможно транслирование результатов в RSS ленту. Кроме этого доступен журнал (хранится в базе данных webacula), в который администратор самостоятельно записывает необходимую ему информацию (описание задания, сбои и причины и так далее). Такие записи могут содержать гиперссылки на задания, для быстрого перехода.
Интерфейс Webacula переведен на 6 языков, в списке есть и русский. Основные номера версий совпадают с Bacula, текущей на момент написания статьи является 3.1. Распространяется на условиях GPLv3.
Установка Webacula в Ubuntu
В статье буду описывать установку Webacula на Ubuntu 8.04 LTS, хотя для других дистрибутивов общий принцип сохраняется. Для Webacula нам потребуется: веб-сервер с модулем mod_rewrite и поддержкой PHP, Zend Framework версии 1.8.3 (требует PHP 5.2.4 или выше) с установленным расширением PDO, пакет php-gd. В качестве СУБД можно использовать MySQL или PostgreSQL (поддержка появилась в текущей версии Webacula). И собственно Bacula. Разработчики рекомендуют использовать версию 3.х, но в репозитарии Ubuntu 8.04 находится более ранняя версия Bacula 2.4.2, с которой Webacula отлично срабатывается.
Устанавливаем пакеты для MySQL:
$ sudo apt-get install mysql-server mysql-client |
В процессе установки должен появиться запрос на ввод пароля администратора базы данных, иначе устанавливаем его самостоятельно:
$ sudo mysqladmin -u root password пароль |
По умолчанию Bacula устанавливается с поддержкой MySQL для директора (Director) и сервера хранения (Storage Daemon, SD).
$ sudo apt-get install bacula НОВЫЕ пакеты, которые будут установлены: bacula bacula-client bacula-director-mysql bacula-sd-mysql bacula-server |
По ходу инсталляции будет задан запрос на установку имени учетной записи (по умолчанию bacula) и пароля. Соответствующая база данных создается, но в конфигурационный файл директора учетные данные пользователя не заносятся. Поэтому редактируем bacula-dir.conf.
$ sudo nano /etc/bacula/bacula-dir.conf Catalog { Name = MyCatalog dbname = "bacula"; dbuser = "bacula"; dbpassword = "baculapass"}# для вывода сообщений выводимых при выполнении заданий |
Для показа сообщений, которые выводятся во время выполнения заданий измените блок
Messages: Messages {Name = Standard...catalog = all, !skipped, !saved} |
Настройку остальных параметров работы Bacula рассматривать не будем. Перезапускаем демон директора.
$ sudo /etc/init.d/bacula-director restart |
Утилита “netstat” должна показать активность трех демонов:
$ netstat -l | grep baculatcp 0 0 comp.serv:bacula-dir *:* LISTENtcp 0 0 comp.serv:bacula-fd *:* LISTENtcp 0 0 comp.serv:bacula-sd *:* LISTEN |
C Bacula закончили.
Готовим среду для вебпанели
Вебсервер Apache устанавливается стандартным образом.
$ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php5-gd |
Активируем модуль PHP и mod_rewrite.
$ sudo a2enmod php5This module already enabled.$ sudo a2enmod rewriteModule rewrite installed; run /etc/init.d/apache2 force-reload to enable. |
Создаем рабочий каталог для Webacula и копируем в него файлы:
$ sudo mkdir /var/www/webacula$ wget -c http://dfn.dl.sourceforge.net/project/webacula/webacula/3.1/webacula-3.1.rc1.tar.gz |
После загрузки распаковываем архив в /var/www/webacula
Я использовал svn версию Webacula.
$ sudo svn co http://webacula.svn.sourceforge.net/svnroot/webacula/trunk/webacula /var/www/webacula |
В Ubuntu Apache работает от имени www-data, устанавливаем владельца на файлы:
$ sudo chown -R www-data:www-data /var/www/webacula |
В последней версии Webacula появился скрипт для проверки наличия необходимых компонентов.
$ php5 /var/www/webacula/install/check_system_requirements.php Check System Requirements...Current MySQL version = 5.0.51 OKCurrent PHP version = 5.2.4-2ubuntu5.6 OKphp pdo installed. OKphp gd installed. OKphp xml installed. OKphp dom installed. OKphp pdo_mysql installed. OKWarning. php pdo_pgsql extension not installed.php-dom, php-xml installed. OK |
Разработчики уже включили в комплект поставки Zend (находится в каталоге library), поэтому отдельно его скачивать нет необходимости (в репозитарии Ubuntu текущая версия к тому же сильно запаздывает 1.5.1)
$ cd /var/www/webacula/library$ sudo tar xzvf Zend-1.8.3.tar.gz |
Для распаковки Zend предложен скрипт, поэтому можно просто ввести:
$ sudo ./runme |
Для настройки параметров подключения к базе данных используется конфигурационный файл config.ini:
$ sudo nano /var/www/webacula/application/config.ini# указываем учетную запись для подключения к базе bacula[general]db.adapter = PDO_MYSQL; db.adapter = PDO_PGSQLdb.config.host = localhostdb.config.username = baculadb.config.password = baculapassdb.config.dbname = bacula ; часовой пояс http://www.php.net/timezonesdef.timezone = "Europe/Moscow" ; Webacula попытается определить язык автоматически, иначе снимаем комментарий; locale = "ru" ; каталог для временных файлов, директор должен иметь права на чтениеtmpdir = "/tmp" ; Webacula, а если точнее, то веб-сервер, должен иметь возможность запуска консоли; управления bconsole. Предусмотрено два варианта реализации, через sudo и ; установкой прав. Подробности INSTALL, мы используем второй вариант; bacula.sudo = "/usr/bin/sudo"; проверяем пути к файламbacula.bconsole = "/usr/bin/bconsole"bacula.bconsolecmd = "-n -c /etc/bacula/bconsole.conf" ; подключение к базе webacula[webacula]db.adapter = PDO_MYSQL; db.adapter = PDO_PGSQLdb.config.host = localhostdb.config.username = wbuserdb.config.password = wbpassdb.config.dbname = webaculaemail.to_admin = root@localhostemail.from = webacula@localhost |
При установке bacula создается одноименная системная группа, проверяем ее наличие и добавляем в нее учетную запись от которой работает. веб-сервер.
$ sudo usermod -aG bacula www-data$ cat /etc/group | grep baculabacula:x:125:www-data |
Устанавливаем необходимые права на файлы:
$ sudo chown root:bacula /usr/bin/bconsole$ sudo chmod 750 /usr/bin/bconsole$ sudo chown root:bacula /etc/bacula/bconsole.conf$ sudo chmod 640 /etc/bacula/bconsole.conf |
Конфигурационный файл веб-сервера:
$ sudo nano /etc/apache/sites-available/webacula Alias "/webacula" "/var/www/webacula/html"<directory "/var/www/webacula/html"> Options Indexes FollowSymLinks AllowOverride All Order deny,allow Allow from 127.0.0.1 Allow from 192.168.1.0/255.255.255.0 AuthType Basic AuthName "Webacula" AuthUserFile/etc/apache2/webacula.users Require valid-user</directory> |
Активируем сайт.
$ sudo a2ensite webaculaSite webacula installed; run /etc/init.d/apache2 reload to enable. |
Пароль для доступа к интерфейсу:
$ sudo htpasswd -c /etc/apache2/webacula.users adminNew password:Re-type new password:Adding password for user admin |
В корневом каталоге сайта по умолчанию создается .htaccess такого содержания:
$ cat /var/www/webacula/html/.htaccess php_flag magic_quotes_gpc offphp_flag register_globals offRewriteEngine OnRewriteBase /webaculaRewriteRule !.(js|ico|gif|jpg|png|css)$ index.php |
Разработчики рекомендуют увеличить значения “memory_limit” и “max_execution_time” в /etc/php5/apache/php.ini:
memory_limit = 32Mmax_execution_time = 300
|
При больших нагрузках устанавливаем еще большие значения. После, перезапускаем веб-сервер:
$ sudo /etc/init.d/apache2 reload |
Проверить, загружен ли mod_rewrite, можно двумя способами. При помощи “apachectl”:
$ sudo apachectl -t -D DUMP_MODULES 2>&1 | grep rewriterewrite_module (shared) |
Также для проверки работы разработчики предлагают тестовую веб-страницу, просто набираем ссылку http://localhost/webacula/test_mod_rewrite.
Теперь нужно создать учетную запись пользователя MySQL для работы Webacula и установить необходимые права:
$ mysql -u root -p mysql> CREATE USER 'wbuser'@'localhost' IDENTIFIED BY 'wbpass';mysql> GRANT ALL PRIVILEGES ON *.* TO 'webacula'@'localhost' WITH GRANT OPTION;mysql> FLUSH PRIVILEGES;mysql> quit |
Для создания базы данных и таблиц, разработчики предлагают скрипты, которые находятся в подкаталоге install. Перед их запуском следует указать в webacula_mysql_create_database.sh, учетные данные пользователя для подключения к СУБД (для PostgreSQL другие файлы):
$ sudo nano /var/www/webacula/install/webacula_mysql_create_database.shdb_user="wbuser"db_password="wbpass"host="localhost" |
Теперь выполняем два скрипта — webacula_mysql_create_database.sh и webacula_mysql_make_tables.sh.
Перезапускаем Bacula и заходим по адресу http://localhost/webacula. Интерфейс достаточно прост, поэтому разобраться с дальнейшей работой с Webacula все очень просто. В первом окне показывается список запланированных и выполненных заданий, а также заданий выполненных с ошибками.
Остальную информацию можно получить перемещаясь по меню расположенном в верхней части окна.
Для удаления временных файлов в каталоге “tmpdir” следует использовать скрипт “wb_clean_tmp.sh” запускаемый при помощи cron.
В итоге мы получили простую в использовании и наглядную систему резервного копирования и восстановления информации.
- Рубрики: Администрирование
- Теги: backup, bacula
http://www.tux.in.ua/articles/1935
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023