Webacula é uma interface que permite o gerenciamento do Bacula via WEB. Atividades como backup, restore e gerência de discos,
podem ser realizadas pela interface WEB. Vamos dar início à sua instalação e configuração.
Instalação e configuração
Adicionar o repositório REMI:
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7.0-1.el7.remi.noarch
Instalação do Zend Framework e DB adapter para o MySQL:
# yum --enablerepo=remi install php-ZendFramework php-ZendFramework-Db-Adapter-Pdo-Mysql
Baixar o Webacula, descompactar e mover para
/usr/share:
# wget http://sourceforge.net/projects/webacula/files/latest/download
# tar zxvf webacula-5.5.1.tar.gz
Ou:
# tar zxvf download
# mv webacula-5.5.1 /usr/share/webacula
# cd install
# php check_system_requirements.php
Mover os diretório das bibliotecas e criar um link simbólico para o Zend.
Obs.: o Zend está sob:
/usr/share/php/Zend
Editar o arquivo
db.conf e adicionar o password:
# cd /usr/share/webacula/install/
# vim db.conf
Adicionar o password do banco e o password do Webacula, que será utilizado no login WEB:
# Nome da Base de Dados utilizado pelo Bacula
db_name="bacula"
# Nome do usuário do Banco de dados
db_user="root"
# Senha do usuário adm do Banco
db_pwd="mysql_user@123"
#Senha utilizada pelo 'root' para login no Webacula
webacula_root_pwd="baculapass"
Executar os scripts de criação de tabela para o Webacula:
# cd /usr/share/webacula/install/MySql/
# ./10_make_tables.sh
# ./20_acl_make_tables.sh
Caso ainda não tenha o grupo bacula, crie e adicione o Apache ao grupo:
# groupadd bacula
# usermod -aG bacula apache
Permitir que o Apache execute o
bconsole usando o arquivo
bconsole.conf. Aqui, o
bconsole está localizado em
/usr/sbin e o arquivo de configuração em
/etc/bacula:
# chown root:bacula /usr/sbin/bconsole
# chmod u=rwx,g=rx,o= /usr/sbin/bconsole
# chown root:bacula /etc/bacula/bconsole.conf
# chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
Edite
application/config.ini e adicione as credenciais para acesso ao banco de dados:
# vim /usr/share/webacula/application/config.ini
Edite o
hostname,
db name,
user db e
password:
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = mysqlroot@pass
db.config.dbname = bacula
bacula.sudo = ""
bacula.bconsole = "/usr/local/bacula/bin/bconsole"
Copiar a configuração do arquivo Apache para
/etc/httpd/conf.d:
# cp /usr/share/webacula/install/apache/webacula.conf /etc/httpd/conf.d/
Editar o arquivo
webacula.conf:
# vi /etc/httpd/conf.d/webacula.conf
Adicione os IPs que terão acesso ao Webacula ou comente o campo
Deny from all:
Allow from 192.168.0.0/255.255.255.0
Ou:
# Deny from all
Edite o arquivo
/etc/php.ini:
# vim /etc/php.ini
Edite os valores das seguintes variáveis:
memory_limit = 128M
max_execution_time = 300
Restarte o serviço Apache:
# service httpd restart
O Webacula estará disponível via browser no endereço:
ip_do_servidor/webacula
Erros
Obtive alguns erros durante a implementação do Webacula.
Exemplo: não conseguia visualizar a aba de "Jobs Running".
Motivo: problemas com a versão do Zend:
php-ZendFramework-1.12.9-1.el7.remi.noarch
php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.9-1.el7.remi.noarch
php-ZendFramework-Db-Adapter-Pdo-1.12.9-1.el7.remi.noarch
Segue erro:
An error occurred
Message :
SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION j.TIMEDIFF does not exist, query was: SELECT DISTINCT j.JobId, j.Name AS
JobName, j.Level, j.ClientId, j.StartTime, j.EndTime, j.VolSessionId, j.VolSessionTime, j.JobFiles, j.JobBytes, j.JobErrors, j.Reviewed, j.PoolId,
j.FileSetId, j.PurgedFiles, j.JobStatus, j.TIMEDIFF(NOW(), StartTime) AS DurationTime, s.JobStatusLong, c.Name AS ClientName, p.Name AS
PoolName FROM Job AS j LEFT JOIN Status AS s ON j.JobStatus = s.JobStatus LEFT JOIN Client AS c ON j.ClientId = c.ClientId LEFT JOIN Pool AS p
ON j.PoolId = p.PoolId WHERE ((j.EndTime = 0) OR (j.EndTime IS NULL) OR (j.JobStatus IN
('C','R','B','e','F','S','m','M','s','j','c','d','t','p','i','a','l','L'))) AND (j.StartTime > '2014-09-18 08:50:18′) ORDER BY StartTime ASC, JobId ASC
Trace:
#0 /usr/share/php/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)#1
/usr/share/php/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)#2
/usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Select),
Array)#3 /usr/share/php/Zend/Db/Select.php(686): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Select))#4
/usr/share/webacula/application/models/Job.php(289): Zend_Db_Select->query()#5
/usr/share/webacula/application/controllers/JobController.php(63): Job->getRunningJobs()#6
/usr/share/php/Zend/Controller/Action.php(516): JobController->runningAction()#7
/usr/share/php/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('runningAction')#8
/usr/share/php/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard-
>dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))#9
/usr/share/webacula/html/index.php(249): Zend_Controller_Front->dispatch()#10 {main}
System Information:
DB Bacula : PDO_MYSQL 5.5.37
Version for Bacula Catalog database : 14
Director : bserver-dir Version: 7.0.4 (04 June 2014) x86_64-unknown-linux-gnu redhat (Core)
Bconsole : Version: 7.0.4 (04 June 2014) x86_64-unknown-linux-gnu redhat (Core)
Webacula version : 5.5.1, build 2011.09.07
Zend Framework : 1.12.9
PHP : 5.4.33
id : uid=48(apache) gid=48(apache) groups=48(apache),1000(bacula)
What to do next?
Please help me improve the software you use by filing a report at Webacula bugtracker. Useful details include how to reproduce the error, and
information (error message, trace) which is shown above, bacula version, etc.
Para corrigir, removi essa versão do Zend e baixei a versão 1.12.7, na página:
php-ZendFramework-1.12.7-1.el7.centos.noarch
php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.7-1.el7.centos.noarch
php-ZendFramework-Db-Adapter-Pdo-1.12.7-1.el7.centos.noarch
Em minha opinião, o Webacula é o gerenciador WEB mais completo para o Bacula Community.
Espero ter contribuído.
Lesley