X.1 BAT – “Bacula Administration Tool” (desktop)
a) Pacotes (Linux):
Para instalar essa ferramenta gráfica do “Bacula”, este é o pacote: bacula-console-qt. No Ubuntu ou Debian:
apt-get install bacula-console-qt
Depois de instalado, edite o arquivo /etc/bacula/bat.conf, de maneira bem parecida com seu bconsole.conf, do servidor “Bacula”.
Provavelmente, você precisará mudar o nome do director, endereço do director (ip) e a senha de console, que consiste naquela primeira do bacula-dir.conf, no recurso “Director”.
b) Na compilação do “Bacula” (Linux):
1. Instale as dependências. Exemplo no Debian 8:
apt-get install build-essential pkg-config libqwt5-qt4 libqwt5-qt4-dev
2. Compile o bacula com a seguinte opção (em negrito):
./configure –enable-bat
make
make install
c) Pacote (Windows):
Baixe o pacote Bacula para sua plataforma Windows e, na tela de seleção de componentes, selecione apenas as consoles desejadas para instalação:
x.2 Webacula 7.x
[TRAZER ITEM 14.1.2 EDIÇÃO 1 DO LIVRO]
Procedimentos Manuais para Instalação do Webacula (GUI)
Requerimentos:
– Bacula 5.0 ou superior.
– Zend Framework versão 1.10 ou superior (para este manual testamos a 1.11.5).
– PHP 5.2.4 ou superior com a extensão PDO ativa. Detalhes: http://framework.zend.com/manual/en/requirements.html
– Apache com mod_rewrite.
– Pacote php-gd package.
– Criação de um banco “webacula” para restauração de arquivos e para o recurso de “Logbook”.
Download e Cópia dos Pacotes (Debian):
apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php5-gd php5-pgsql
Para CentOS:
yum install httpd php php-gd php-mysql
E então:
mkdir /var/www/
(provavelmente já estaria criado)
Entre no site oficial do webacula (http://webacula.sourceforge.net/) faça o download do pacote que contém o código fonte (.tar.gz) mais recente dentro do diretório /var/www.
cd /var/www
wget http://downloads.sourceforge.net/project/webacula/webacula/7.0.0/webacula-7.0.0.tar.gz
tar -xzvf webacula-7*.tar.gz
Depois acesse o site oficial do zend (http://framework.zend.com/) – botão “Download Now” baixe a verão mínima do framework (Zend Framework 1.11.5 Minimal) e decompacte a subpasta “library” (contida no pacote tar.gz) dentro do seguinte diretório “/var/www/webacula…/“.
wget -qO- https://packages.zendframework.com/releases/ZendFramework-1.11.5/ZendFramework-1.11.5-minimal.tar.gz | tar -xzvf ./ZendFramework-1.11.5-minimal.tar.gz --strip=1 */library/* -C /var/www/webacula-7*/
A árvore de diretórios deve ficar assim “/var/www/webacula…/library/Zend…”, ou:
/var/www/webacula/
|– application
| |– controllers
| |– models
| `– views
|– docs
|– install
|– html
|– languages
`– library
. |– Other
. |– MyClass
. |
. `– Zend (este é o pacote do Zend Framework)
. |– Acl
. |– Auth
. |– Cache
. |– Config
. …
Instalação do Webacula:
Modfique os nomes de usuário do Webacula e do banco de dados no arquivo db.conf:
cd /var/www/webacula*/install/
vi db.conf
# bacula settings (nome do banco do bacula)
db_name=”bacula”
# for Sqlite only
db_name_sqlite=”/var/bacula/working/bacula.db”
db_user=”root”# CHANGE_THIS
db_pwd=”” # <==(Modifique!! Senha de usuário admin do banco de dados)
# Webacula web interface settings
…
#
# CHANGE_THIS
webacula_root_pwd=”” <==(Não vamos modificar agora).
Execute o script correspondente ao seu Banco de Dados (o mesmo do Bacula)
cd /var/www/webacula*/install/MySql
ou
cd /var/www/webacula*/install/PostgreSql
ou
cd /var/www/webacula*/install/SqLite
E agora execute os scripts que criarão o banco, tabelas e direitos do Webacula:
./10_make_tables.sh
./20_acl_make_tables.sh
Alterar senha de root do Webacula no Banco de Dados
Gerar senha MD5:
Volte ao diretório /var/www/webacula*/install/, e crie uma senha (em hash) para o usuário root do webacula:
./password-to-hash.php nova_senha
$P$BeTUuIOyWSQl9C5ytEnxhuV83WLeYn1
Copie essa senha. Vamos atualizar ela agora no banco de dados.
a) Mysql:
#mysql -u root -p
Acessando o Banco do Bacula
mysql> use bacula;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Agora vamos alterar a senha do usuário root de acesso ao webacula (não é o root do mysql):
mysql>
update webacula_users set pwd=’$P$BeTUuIOyWSQl9C5ytEnxhuV83WLeYn1′ where id=1000;Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Saindo do mysql
mysql> quit
Bye
b) PostgreSQL:
1) su postgres
2) encontrar no console do PostgreSQL (psql)
3) conectar ao banco do bacula com o comando “connect bacula”
4) Executar o update da senha com
update webacula_users SET pwd = 'senha hash do db.conf' where id = '1000';
Configuração do Bacula:
Adicione o conteúdo em negrito no seu /etc/bacula/bacula-dir.conf:
Messages {
Name = Standard
…
catalog = all, !skipped, !saved
por fim reinicie o Director:
/etc/init.d/bacula-director restart
Configuração PHP:
e então aumente estes valores nas seguintes linhas do arquivo /etc/php5/apache2/php.ini (o caminho pode variar de acordo com o Sistema Operacional. No caso do CentOS: /etc/php.ini):
memory_limit = 32M
max_execution_time = 3600
Configuração Apache:
Copie o arquivo de configuração modelo do Webacula para o Apache*.
cp /var/www/webacula*/install/apache/webacula.conf /etc/apache2/sites-enabled/
No caso do CentOS, o diretório destino do Apache seria /etc/httpd/conf.d.
Agora, vamos editar o webacula.conf:
vi /etc/apache2/sites-enabled/webacula.conf
Altere o Alias e o caminho Directory para o caminho do seu Webacula…
Alias /webacula /var/www/webacula-7.0.0/html
<Directory /var/www/webacula-7.0.0/html>
Ele deve ficar parecido com isso (exemplo):
Alias /webacula /var/www/webacula/html
RewriteEngine On
RewriteBase /webacula
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ index.php [NC,L]
php_flag magic_quotes_gpc off
php_flag register_globals off
Options Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
Allow from ::1
#
# change the settings below
#
# Allow from
Agora, configure o mod_rewrite (necessário apenas para o Debian). No bash:
echo rewrite | a2enmod && service apache2 restart
Configurando Permissões:
Em seguida
#chown -R www-data. /var/www/webacula* (não esquecer o “ponto” depois de “www-data”. No caso do CentOS: “apache”)
Altere o arquivo:
#vi /var/www/webacula*/application/config.ini
Insira a senha de administrador do seu banco de dados:
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = <password>
db.config.dbname = bacula
Altere o def.timezone para:
def.timezone = “America/Sao_Paulo”
Se desejar altere o idioma para Português. Altere a linha “; locale = “en” para:
locale = “pt_BR”
Edite as seguintes linhas e deixe como abaixo:
bacula.sudo = “”
bacula.bconsole = “/usr/sbin/bconsole”
bacula.bconsolecmd = “-n -c /etc/bacula/bconsole.conf”
Então altere as permissões dos seguintes arquivos:
chown www-data /usr/sbin/bconsole
chmod u=rwx,g=rx,o= /usr/sbin/bconsole
chown www-data /etc/bacula/bconsole.conf
chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
chown www-data /etc/bacula
Pronto! Digite o endereço http://ip_do_servidor/webacula para ter acesso.*
*No CentOS, necessário modificar o nível do Selinux (/etc/selinux/config – reiniciar e fornecer regras de firewall do iptables para acesso externo ao webacula).
Erro conhecido ) – versão do banco do Bacula não confere:
[Sat Oct 27 16:54:41 2012] [error] [client 127.0.0.1] PHP Fatal error: Uncaught exception 'Zend_Exception' with message 'Bacula version mismatch for the Catalog database. Wanted 14, got 15. ' in /var/www/webacula-5.5.1/html/index.php:186nStack trace:n#0 {main}n thrown in /var/www/webacula-5.5.1/html/index.php on line 186
Para solucionar este erro, acesse o arquivo /var/www/webacula*/html/index.php, linha 22 e altere o BACULA_VERSION para a versão esperada do banco do Bacula. Neste caso, 15. Deve ficar assim:
define(‘BACULA_VERSION’, 15); // Bacula Catalog version
x.3. Webmin (permite configurar o Bacula graficamente)
O Webmin é uma poderosa interface web desenvolvida em Perl para administração de servidores e conta com suporte nativo ao Bacula.
Uma vantagem interessante é a possibilidade de editar as configurações dos componentes do Bacula graficamente. Provavelmente foi a primeira ferramenta a trazer essa funcionalidade de maneira tão completa.
1. Instalação do Webmin
Através do nosso guia rápido, nossa implementação deve ficar assim:
Optei por utilizar o sistema operacional Debian 8 para este manual e, dessa maneira, satisfiz as seguintes dependências:
apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions libdbd-mysql-perl
(se utilizar Postgresql instale também os pacotes: libpg-perl e libdbd-pg-perl
)
Após umas mensagens de aviso o apt recomendou que fosse executado o seguinte comando:
apt-get -f install
Dependências instaladas. Neste momento fui ao site do Webmin para fazer o download do pacote mais atual para Debian (www.webmin.com/download.html):
Debian package suitable for Debian, Ubuntu or other derived Linux
http://prdownloads.sourceforge.net/webadmin/webmin_1.750_all.deb 14.8 MB
Na linha de comando utilizei o comando wget + o endereço para o pacote, assim:
wget http://downloads.sourceforge.net/project/webadmin/webmin/1.750/webmin_1.750_all.deb
dpkg -i webmin_1.750_all.deb
https://localhost:10000
Clicando no link constante da mensagem “Module Configuration” fui direcionado para uma tela onde se deve configurar o acesso do Webmin ao Catálogo do Bacula (tipo, senha e usuário do banco etc.):
Correção de BUG para listar jobs de backup:
Pode ser necessário realizar uma pequena modificação no código (linha 849):
vi /usr/libexec/webmin/bacula-backup/bacula-backup-lib.pl
(No Debian: vi /usr/share/webmin/bacula-backup/bacula-backup-lib.pl)
…
local @rv;
local $client;
foreach my $l (split(/r?n/, $clients)) {
# if ($l =~ /^Client:s+name=([^=]*S)s/ ||
if ($l =~ /^Client:s+Name=([^=]*S)s/ ||
$l =~ /^s*Names*=s*”(.*)”/) {
$client = { ‘name’ => $1 };
if ($l =~ /address=(S+)/ && $client) {
$client->{‘address’} = $1;
…
Reinicie o director do Bacula.
Pronto. O Módulo do Webmin para o Bacula deve estar funcional.
Atenção! Para selecionar arquivos na restauração é necessário plugin do Java no navegador utilizado.
Se utilizar Linux pode usar a versão livre:
apt-get install icedtea-7-plugin
Retornando ao menu lateral System > Bacula Backup System, agora visualizo opções para, inclusive, alterar as configurações do Bacula:
Como exemplo, escolhi a tela para adicionar um cliente ao Director:
Show de Bacula, hein?
Na tela principal do módulo também é possível realizar as atividades cotidianas de operação do Bacula, tais como: submeter e restaurar jobs, gerenciar volumes e verificar status dos componentes. Ver exemplo:
x.4 Bacula-web (relatórios e gráficos)
Bacula-web é uma ferramenta de código aberto cujo projeto começou em 2004, originalmente escrito por Juan Luis Frances, que se encontra atualmente na versão 7.0.3. Esta ferramenta é escrita em PHP, html, css e javascript, e é liberado sob os termos da licença GPL.
O Bacula-web serve para monitoramento e relatórios do Bacula, onde temos:
- Quantos clientes configurados;
- Total de bytes armazenados em seu catálogo;
- Total de arquivos armazenados em seu catálogo;
- O tamanho do banco de dados do catálogo.
Também temos em relação aos Jobs:
- Jobs em execução;
- Jobs concluídos;
- Jobs com falha;
- Jobs cancelados;
- Jobs em espera.
Temos o status dos Jobs das últimas 24 horas onde informam:
- Quantos Jobs em execução;
- Jobs com falha;
- Jobs concluídos;
- Jobs em espera.
Quantos posts de Jobs para cada nível (incremental, diferencial e integral):
- Total de bytes transferidos;
- Arquivos transferidos.
Instalar e Configurar
Após ter o seu Bacula já instalado e funcionando; chegou a hora de você visualizar os relatórios.
Instalando o PHP e Apache – Debian:
apt-get install apache2 libapache2-mod-php5 php5-mysql php5-gd php5-pgsql
CentOS:
yum install httpd php php-gd php-gettext php-mysql php-pgsql php-pear-DB -y
Iniciando o Apache na inicialização (apenas CentOS):
chkconfig httpd on
Baixe a versão alpha do Bacula-web:
cd /tmp
wget http://www.bacula-web.org/download.html?file=files/bacula-web.org/downloads/bacula-web-7.0.3.tgz
Após isso, vamos descompactar:
mkdir /var/www/html/bacula-web
tar -xzf *bacula-web*.tar.gz -C /var/www/html/bacula-web
Vamos ajustar o config.php:
cd /var/www/html/bacula-web/application/config
cp config.php.sample config.php
vi config.php
e deixe como no exemplo abaixo:
$config[0][‘label’] = ‘Backup Server’;
$config[0][‘host’] = ‘IP’;
$config[0][‘login’] = ‘usuario’;
$config[0][‘password’] = ‘senha’;
$config[0][‘db_name’] = ‘bacula’;
$config[0][‘db_type’] = ‘mysql’;
$config[0][‘db_port’] = ‘3306’;?>
Após isso, salve e saia do arquivo.
Ajustando as permissões:
chown -Rv www-data:www-data /var/www/html/bacula-web
chmod -Rv u=rx,g=rx,o=rx /var/www/html/bacula-web
chmod -v ug+w /var/www/html/bacula-web/application/view/cache
Reinicie o Apache:
# service httpd restart
E depois acesse:
http://seuip/bacula-web
Fonte: http://www.vivaolinux.com.br/dica/Instalando-o-Baculaweb-no-CentOS-5X
x.5 [TRAZER ITEM 14.3. edição 1]
x.6 [TRAZER ITEM 14.4. edição 1]
Disponível em: Português