Webacula - Bacula Backup Server 7 no CentOS 7
Dica publicada em Linux / Introdução
Webacula - Bacula Backup Server 7 no CentOS 7
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.
# 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:
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:
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:
Ou:
# Deny from all
Edite o arquivo /etc/php.ini:
# vim /etc/php.ini
Edite os valores das seguintes variáveis:
Restarte o serviço Apache:
# service httpd restart
O Webacula estará disponível via browser no endereço: ip_do_servidor/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
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"
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"
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
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
Fiz tudo conforme descrito, mas quando tento abrir o endereço do webacula retorna uma mensagem de erro "HTTP 500" no browser.
O apache está me voltando a seguinte mensagem de erro no /etc/httpd/logs/error_log:
[Tue Dec 16 09:41:37.276455 2014] [:error] [pid 31211] [client :61631] PHP Warning: include_once(MyClass/Session/SaveHandler/DbTable.php): failed to open stream: No such file or directory in /var/www/html/webacula/library/Zend/Loader.php on line 146
[Tue Dec 16 09:41:37.276507 2014] [:error] [pid 31211] [client :61631] PHP Warning: include_once(): Failed opening 'MyClass/Session/SaveHandler/DbTable.php' for inclusion (include_path='.:/var/www/html/webacula/html/../library:../application/models/:../application/forms/:.:/usr/share/pear:/usr/share/php') in /var/www/html/webacula/library/Zend/Loader.php on line 146
[Tue Dec 16 09:41:37.276842 2014] [:error] [pid 31211] [client :61631] PHP Fatal error: Uncaught exception 'Zend_Exception' with message 'File "MyClass/Session/SaveHandler/DbTable.php" does not exist or class "MyClass_Session_SaveHandler_DbTable" was not found in the file' in /var/www/html/webacula/library/Zend/Loader.php:99\nStack trace:\n#0 /var/www/html/webacula/html/index.php(49): Zend_Loader::loadClass('MyClass_Session...')\n#1 {main}\n thrown in /var/www/html/webacula/library/Zend/Loader.php on line 99
Tem ideia do que possa ser?
Estou usando o CentOS 7 minimal também e mesma versão do webacula.