четверг, 28 февраля 2013 г.

Webacula 5.5 + MySQL в CentOS 6

После развёртывания системы Bacula захотелось удобного инструмента для мониторинга. Конечно, можно обходиться стандартными инструментами, но всегда хочется что-нибудь простенькое, удобное и надёжное. Выбор пал на проект Webacula.

Обо всех возможностях Webacula можно узнать здесь. Ну что ж, приступим.
Подключим репозиторий epel:

[root@server-backup ~]# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@server-backup ~]# yum localinstall epel-release-6-8.noarch.rpm

Установим Webacula:

[root@server-backup ~]# wget http://sourceforge.net/projects/webacula/files/rpms/5.5.1/webacula-5.5.1-1.el6.noarch.rpm/download
[root@server-backup ~]# yum localinstall webacula-5.5.1-1.el6.noarch.rpm

Установим дополнительные компоненты, необходимые для функционирования Webacula:

[root@server-backup ~]# yum install mysql php-mysql php-ZendFramework-Db-Adapter-Pdo-Mysql bacula-console

Все необходимые пакеты установлены, даже если мы их явно не указали, в том числе и сервер apache(если он не был установлен ранее). Особых изменений в конфигурацию web-сервера вносить не нужно.
Проверим, всё ли необходимое установлено:

[root@server-proxy ~]# cd /usr/share/webacula/install/
[root@server-proxy install]# ./check_system_requirements.php

Webacula check System Requirements...

sh: psql: команда не найдена
Current MySQL version = 5.1.67 OK
Current Sqlite version = 3.6.20 OK

Current PHP version = 5.3.3 OK

php pdo installed. OK
php gd installed. OK
php xml installed. OK
php dom installed. OK

php pdo_mysql installed. OK
Warning. PHP extension pdo_pgsql not installed.
php pdo_sqlite installed. OK
php-dom, php-xml installed. OK
Как видим, всё в порядке(PostgreSQL не используем). Стоит также отметить, что удачное выполнение скрипта ещё не гарантирует полной готовности системы для работы с Webacula.
Настроим, установленную нами, Bacula Console:

Director {
#имя ресурса Director сервиса Director
Name = bacula-dir
#порт, для подключения к сервису Director
DIRport = 9101
#адрес сервиса Director
address = <director_ip>
#пароль для соединения Console с сервисом Director
Password = "password-dir"
}

В ресурс Messages сервиса Director добавим(если ранее не было добалено при настройке Bacula) следующее:

Messages {
...
Catalog = all, !skipped, !saved
...
}

Создадим каталог /usr/share/webacula/data/cache и выставим права:

[root@server-backup ~]# mkdir -p /usr/share/webacula/data/cache
[root@server-backup ~]# chown root:apache /usr/share/webacula/data/cache
[root@server-backup ~]# chmod u=rwx,g=rwx,o= /usr/share/webacula/data/cache

Разрешим Webacula запускать bconsole(из web-интерфейса можно выполнять команды в bconsole). Для этого добавим пользователя apache в группу bacula и выставим права на файлы bconsole и bconsole.conf:

[root@server-backup ~]# usermod -aG bacula apache
[root@server-backup ~]# chown root:bacula /usr/sbin/bconsole
[root@server-backup ~]# chmod u=rwx,g=rx,o= /usr/sbin/bconsole
[root@server-backup ~]# chown root:bacula /etc/bacula/bconsole.conf
[root@server-backup ~]# chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
а также внесём изменения в /etc/webacula/config.ini(ссылка на /usr/share/webacula/application/config.ini):

bacula.sudo = ""
bacula.bconsole = "/usr/sbin/bconsole"
bacula.bconsolecmd = "-n -c /etc/bacula/bconsole.conf"

Проверим наличие модуля apache mod_rewrite:

[root@server-proxy ~]# apachectl -t -D DUMP_MODULES 2>&1 | grep rewrite
rewrite_module (shared)
Вывод показывает наличие модуля, поэтому следуем далее.
Немного подправим php.ini:

max_execution_time = 3600

Создадим файл /usr/share/webacula/html/.htaccess:

[root@server-proxy ~]# cp /usr/share/webacula/html/.htaccess_original /usr/share/webacula/html/.htaccess
и немного изменим его:

SetEnv APPLICATION_ENV production
RewriteBase /webacula

Теперь настроим подключение Webacula к базе MySQL. Снова открываем /etc/webacula/config.ini:

[general]
db.adapter = PDO_MYSQL
db.config.host = <mysql_server_ip>
db.config.username = bacula
db.config.password = "bacula"
db.config.dbname = bacula

Теперь нам осталось создать таблицы для webacula в базе bacula. Для этого мы воспользуемся готовыми скриптами от webacula, но для начала внесём изменения в /usr/share/webacula/install/db.conf:

#имя базы, в которой создавать таблицы для webacula
db_name="bacula"
#имя пользователя для соединения с базой
db_user="bacula"
#пароль пользователя
db_pwd="bacula"
#пароль суперпользователя root в web-интерфейсе
webacula_root_pwd="secret"

А теперь воспользуемся скриптами:

[root@server-proxy ~]# cd /usr/share/webacula/install/MySql/
[root@server-proxy MySql]# ./10_make_tables.sh -h <mysql_server_ip>
[root@server-proxy MySql]# ./20_acl_make_tables.sh -h <mysql_server_ip>

Таблицы созданы, пароль для доступа к интерфейсу сгенерирован, основные настройки внесены. Теперь осталось перезапустить сервер apache:

[root@server-proxy ~]# service httpd restart

и зайти на страничку http://apache_server/webacula.

Заметка

В файле /etc/httpd/conf.d/webacula.conf имеется строка "LoadModule rewrite_module modules/mod_rewrite.so", которая дублирует такую же в основном конфигурационном файле apache /etc/httpd/conf/httpd.conf, поэтому закомментируйте её. На работоспособность это не влияет, но выдает замечание при запуске или перезапуске apache.


1 комментарий: