You are on page 1of 10

Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 1 de 10

Instalação e configuração do Bacula com interface web (Bweb/Brestore)

Autor: Fabrício Rodrigo <fabriciorodrigo at yahoo.com.br>


Data: 20/07/2010

Instalação do Bacula no Ubuntu/Debian

Informações gerais:

 Ubuntu Server 10.04


 MySQL Server 5.0
 Apache2

Instalação do Bacula
A instalação do Bacula através do gerenciador de pacotes é bastante simples, basta executar o
comando abaixo que serão instaladas todas as dependências, inclusive o MySQL, que é o banco de
dados padrão do programa. Também há suporte ao banco de dados Postgres, porém devem ser
especificados os pacotes, mas não será abordado nesse tutorial.

# apt-get install bacula

Serão instalados os seguintes pacotes: bacula-client bacula-common bacula-common-mysql


bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-
mysql bacula-server dbconfig-common

Será instalado o bacula director, file daemon e storaged daemon. Para a instalação parcial deverão
ser instalados o bacula-director-common, bacula-fd e bacula-sd respectivamente.

Configuração do Bacula
O Bacula é um sistema distribuído, sendo formado por 3 daemons: director, storage daemon e file
daemon. Cada daemon "executa" independentemente, podendo estar localizado em máquinas
separadas. O file daemon deve estar instalado em todas as máquinas clientes.

No ambiente analisado, todos os daemons estão instalados na mesma máquina.

Bacula Director (bacula-dir.conf):

Gerenciador; Núcleo do programa; é responsável por supervisionar todas as operações de backup,


restauração, controle e verificação de arquivos.

Bacula Storage:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 2 de 10

Responsável pelo armazenamento, leitura e escrita em fita, disco ou outros dispositivos. Deve ser
instalado onde os arquivos serão armazenados, podendo ser instalado em mais de uma máquina.

Bacula File Daemon:

Este é o cliente do Bacula. Deve ser instalado em todas as máquinas onde serão realizados os
backups.

Configuração do director
Altere as configurações de acordo com a necessidade/ambiente.

Director { #definições do gerenciador/director


Name = ubuntuu-dir #nome do gerenciador/director
DIRport = 9101 #porta de comunicação do director
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 10 #máximo de conexões simultâneas
Password = "yveAet993vzsWug3KoZUKjVbdZy0nrSqIqQCFH80rIVS" #senha cliente
terminal/console
Messages = Daemon #tipo de mensagens a serem geradas no log
}

JobDefs { #definições de padrão de tarefa


Name = "DefaultJob"#nome do padrão
Type = Backup #tipo de tarefa (backup/restore)
Level = Incremental #tipo de backup (incremental/diferencial/full)
Client = ubuntuu-fd #cliente
FileSet = "Full Set" #nome do conjunto de arquivos
Schedule = "Diario" #tipo de agendamento
Storage = File #tipo de armazenamento (file/tape)
Messages = Standard #padrão de mensagens geradas (log)
Pool = File #tipo de pool utilizado
Priority = 10 #prioridade
Write Bootstrap = "/var/lib/bacula/%c.bsr"
}

Job { #definição de tarefa


Name = "BackupClient1" #nome da tarefa
JobDefs = "DefaultJob" #padrão de tarefa
}

Job { #definição da tarefa


Name = "RestoreFiles" #nome da tarefa
Type = Restore #tipo de tarefa (backup/restore)
Client=ubuntuu-fd #cliente
FileSet="Full Set" #nome do conjunto de arquivos
Storage = File #tipo de armazenamento (file/tape)
Pool = Default #tipo de pool utilizado
Messages = Standard #padrão de mensagens geradas (log)
Where = /mnt/bacula-restores #onde será restaurado o backup
}

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 3 de 10

FileSet { #conjunto de arquivos e diretórios


Name = "Home Set" #nome do conjunto
Include {
Options {
signature = MD5 #hash para verificação de integridade
}
File = /home #arquivos selecionados
}
Exclude {
File = /home/backup #arquivos excluídos
}
}

Schedule { #agendamento
Name = "Diario" #nome do agendamento
Run = Full sun-sat at 23:10 #definição do agendamento (Full de domingo (sunday) a sabado
(saturday) as 23:10)
}

Client { #definições do cliente


Name = ubuntuu-fd #nome do cliente
Address = 10.113.254.246 #ip do cliente (File Daemon)
FDPort = 9102 #porta de comunicação com o cliente
Catalog = MyCatalog #catálogo de arquivos
Password = "zWfAKqdbZb1PjYL9Ud-HForFnoUzkJBSM" #senha cliente (File Daemon)
File Retention = 30 days #retenção dos arquivos (30 dias)
Job Retention = 6 months #retenção da tarefa (6 meses)
AutoPrune = yes #limpeza/supressão automática do catálogo após expirado o tempo de retenção
(não afeta os dados do volume)
}

Storage { #definição do dispositivo de armazenamento


Name = File #nome do dispositivo
Address = 10.113.254.246 #ip do dispositivo de armazenamento (Storaged Daemon)
SDPort = 9103 #porta de comunicação com a storaged
Password = "jKNZOR8Kl8nSuHFWi6H9txhEyTqODE3gW" #senha dispositivo (Storaged
Daemon)
Device = FileStorage #dispositivo (Storaged Daemon)
Media Type = File #tipo de armazenamento
}

Pool { #definição do tipo de volume/partição a ser montado


Name = Default #nome do volume
Pool Type = Backup #tipo de pool Backup/Archive/Cloned/Migration/Copy/Save (atualmente
apenas backup implementado)
Recycle = yes #bacula automaticamente recicla os volumes (caso não possa ser adicionado mais
volumes será rescrito sobre os expirados)
AutoPrune = yes #limpeza/supressão automática do catálogo após expirado o tempo de retenção
(não afeta os dados do volume)
Volume Retention = 365 days #tempo de retenção de 365 dias
}

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 4 de 10

Console {
Name = ubuntuu-mon
Password = "8UZ_p8sbi38XUmDGT5I3tt4egyM7uTpDx"
CommandACL = status, .status
}

Configuração do cliente (file daemon)


Altere as configurações de acordo com a necessidade/ambiente.

FileDaemon { #definições file daemon


Name = ubuntuu-fd #nome (mesmo do bacula-dir.conf)
FDport = 9102 #porta de comunicacao com o director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20 #maximo de tarefas simultâneas
}

Director { #dados para comunicação com o director


Name = ubuntuu-dir #nome (mesmo do bacula-dir.conf)
Password = "zWfAKqdbZb1PjYL9Ud-HForFnoUzkJBSM" #senha (mesmo do bacula-dir.conf)
}

Messages { #definição do tipo de mensagem a ser logada


Name = Standard #nome do padrão
director = ubuntuu-dir = all, !skipped, !restored #parametros a serem logados, no caso todos(all),
exceto saída (skipped) e restauração (restore)
}

Configuração do dispositivo de
armazenamento (storaged daemon)
As configurações devem ser alteradas de acordo com a necessidade/ambiente.

Storage { #definições storaged


Name = ubuntuu-sd #nome
SDPort = 9103 #porta de comunicação com o director
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20 #maximo de tarefas simultâneas
# SDAddress = 0.0.0.0 #ip da máquina
}

Director { #definição do director que terá acesso ao "daemon" de armazenamento


Name = ubuntuu-dir #nome
Password = "jKNZOR8Kl8nSuHFWi6H9txhEyTqODE3gW" #senha
}

Device { #definições do dispositivo de armazenamento


Name = FileStorage #nome (mesmo a ser usado no director)

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 5 de 10

Media Type = File #tipo de media/dispositivo - File/Tape


Archive Device = /mnt/backup #ponto de montagem do volume
LabelMedia = yes; #bacula permitir media sem rótulo/nomeação
Random Access = Yes;
AutomaticMount = yes; #quando o dispositivo abrir, lê-lo.
RemovableMedia = no;
AlwaysOpen = no;
}

Messages { #definição do tipo de mensagem a ser logada


Name = Standard #nome do padrão
director = ubuntuu-dir = all #parametros a serem logados, no caso todos(all)
}

Após configuração dos daemons, os mesmos devem ser reinicializados.

Instalação e configuração da interface web (Bweb)

Instalar dependências do aplicativo bweb

Módulos Perl:

# apt-get install libgd-graph-perl libhtml-template-perl libexpect-perl \


libdbd-mysql-perl libdbd-pg-perl libdbi-perl \
libdate-calc-perl libtime-modules-perl

Fonte:

# apt-get install ttf-dejavu

Instalar o Bweb
Primeiramente devem ser baixados os arquivos fonte do Bweb, para isso pode ser utilizado o wget:

# wget http://sourceforge.net/projects/bacula/files/bacula/5.0.2/bacula-gui-5.0.2.tar.gz/download

Após baixar o arquivo, deve-se desempacotar o mesmo e entrar na pasta da aplicação Bweb:

# tar xzvf bacula-gui-5.0.2.tar.gz


# cd bacula-gui-5.0.2/bweb

Após descompactado, deve-se copiar as bibliotecas Bweb Perl para a o caminho do perl5, através
dos comandos:

# perl Makefile.PL
# make install

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 6 de 10

Em seguida, devem ser copiados os arquivos do programa Bweb para a pasta cgi do servidor.

# cd ..
# mkdir -m 755 /usr/lib/cgi-bin/bweb
# install -m 755 -o root -g root bweb/cgi/*.pl /usr/lib/cgi-bin/bweb

Agora cria-se o arquivo de configuração através do seguinte comando, atribuindo em seguida o


usuário do servidor web apache como proprietário do mesmo.

# echo '$VAR1 = { template_dir => "/usr/share/bweb/tpl" };' > /etc/bacula/bweb.conf


# chown www-data /etc/bacula/bweb.conf

Em seguida deve ser criada a pasta para os templates da aplicação e copiados os arquivos
correspondentes através dos seguintes comandos:

# mkdir -p /usr/share/bweb/tpl/en
# install -m 644 -o root -g root bweb/lang/en/tpl/*.tpl /usr/share/bweb/tpl/en

Para finalizar, copia-se os elementos gráficos da aplicação dentro da pasta Bweb (que deve ser
criada), no document root do servidor web.

# mkdir /var/www/bweb
# install -m 644 -o root -g root bweb/html/*.{js,png,css,gif,ico,html} /var/www/bweb

Configurar o Bweb
Após instalado a aplicação Bweb, deve ser realizada a configuração do
arquivo /etc/bacula/bweb.conf com os seguintes parâmetros:

$VAR1 = bless( {
'enable_security' => 0,
'graph_font' => '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf',
'config_file' => '/etc/bacula/bweb.conf',
'password' => 'senhamysql',
'dbi' => 'DBI:mysql:database=bacula',
'user' => 'bacula',
'error' => '',
'debug' => 0,
'stat_job_table' => 'Job',
'display_log_time' => 0,
'lang' => 'en',
'wiki_url' => '',
'name' => undef,
'bconsole' => '/usr/bin/bconsole -n -c /etc/bacula/bconsole.conf',
'fv_write_path' => '/var/spool/bweb',
'template_dir' => '/usr/share/bweb/tpl',
'enable_security_acl' => 0,
'email_media' => 'frsl@localhost',
'default_age' => '7d'
}, 'Bweb::Config' );

Obs.: O arquivo de configuração deve ser adaptado de acordo com as configurações do ambiente
que está sendo instalada a aplicação.

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 7 de 10

Se é utilizado o sudo, insira os seguintes valores no arquivo /etc/sudoers:

www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer transfer *


www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer status
www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer load *
www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer unload *

Acesse a aplicação através do seguinte endereço no navegador web:

http://your-server/bweb

Obs.: Se o arquivo de configuração não for editado, será apresentada uma tela inicial para que se
possa configurar o mesmo através da interface.

Instalação e configuração da interface web (Brestore)

Instalar dependências do aplicativo Brestore


Módulos Perl:

# apt-get install libgtk2-gladexml-perl \


libdbd-mysql-perl \
libdbd-pg-perl \
libexpect-perl \
libwww-perl

Módulos Extjs:

Para baixar os arquivos do modulo extjs, utilize o wget e em seguida descompacte os arquivos
dentro da pasta 'ext' do 'document root' do servidor web.

# wget http://www.sencha.com/deploy/ext-2.3.0.zip

Descompactar em /var/www/bweb/ext:

# unzip -d ext ext-2.3.0.zip


# mv ext-2.3.0/ /var/www/bweb/ext

Carregar atualizações do MySQL


Para que o brestore funcione é necessário a atualização do banco de dados, para isso acesse a pasta
'script' dentro do bweb e carregue o arquivo 'bweb-mysql.sql' para o bd mysql.

# cd /bweb/script
# mysql -u root bacula < bweb-mysql.sql -p

Será solicitada a senha de root para acesso ao banco. Após a inserção da senha, as tabelas do
Bacula serão atualizadas.

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 8 de 10

Instalação do Brestore
Para instalar o Brestore basta acessar a pasta baixada anteriormente para instalar o Bweb no passo
7 e acessar a pasta 'brestore'. Após acessar a pasta, deve-se instalar a interface glade do brestore na
pasta /usr/share/brestore através dos comandos:

# cd bacula-gui-5.0.2/brestore
# mkdir -p /usr/share/brestore
# install -m 644 -o root -g root brestore.glade /usr/share/brestore
# install -m 755 -o root -g root brestore.pl /usr/bin

Configuração do Brestore
Edite o arquivo "/usr/lib/cgi-bin/bweb/bresto.pl" e habilitar a seguinte variável com o valor '1'.

my $bresto_enable = 1;

Edite o arquivo "/usr/bin/brestore.pl" com as seguintes variáveis

my $glade_file = '/usr/share/brestore/brestore.glade' ;

$parameters = {
'mozilla' => 'mozilla',
'bconsole' => '/usr/local/bin/bconsole -n -c /etc/bacula/bconsole.conf',
'bweb' => 'http://localhost/cgi-bin/bweb/bweb.pl',
'connection_string' => 'DBI:mysql:database=bacula;host=127.0.0.1;port=3306',
'username' => 'bacula',
'password' => 'xxxx',
'bsr_dest' => 'file://var/tmp',
'debug' => 0,
'use_ok_bkp_only' => 1,
'default_restore_job' => 'restore'
};

Acesse a aplicação através do seguinte endereço no navegador web ou através do Bweb:

http://your-server/bweb/bresto.html

Considerações finais e referências

Considerações sobre o exemplo citado:

No exemplo citado nesse tutorial, todos os módulos do Bacula foram instalados na mesma
máquina, inclusive o banco de dados (MySQL) e o servidor web (Apache2). Ao instalar em
máquinas diferentes, observar de configurar corretamente as senhas de acesso aos daemons e IPs
das máquinas correspondentes.

O IP da máquina utilizada foi 10.113.254.246. Nos testes houveram alguns problemas na utilização
do nome localhost e do IP de loopback '127.0.0.1', que foram sanados utilizando o IP da máquina.

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 9 de 10

Acessando via terminal


Para acessar o bacula via terminal basta digitar o comando:

$ bconsole

Para verificar os comandos disponíveis basta digitar a tecla tab duas vezes. Abaixo há um exemplo
listando o status do cliente "desktop-fd" através do comando "status".

Acessando o Bweb
Para acessar Bacula via interface web basta digitar o endereço http://ip-do-server/bweb no
navegador. Será exibida a página do Bweb:

Acessando o Brestore
Para acessar o módulo de recuperação do Bacula via interface web basta digitar o endereço
http://ip-do-server/bweb/bresto.html no navegador ou ir até o menu jobs do Bweb e clicar no link
Web Restore, como pode ser observado na figura a abaixo. Será exibida a página do Brestore:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010
Instalação e configuração do Bacula com interface web (Bweb/Brestore) [Artigo] Página 10 de 10

Referências bibliográficas
 Tutorial linux | Instalação do Bacula | Bacula é um programa que possibilita fazer backup |
Linux Monsters | Artigos, dicas, tutoriais, fórum, linux shell scripts, scripts linux, scripts e
muito mais
 Montando um completo servidor de backup usando Bacula [Artigo]
 Bacula no Debian Lenny [Artigo]
 MY Experiences: Install Bacula BWEB
 Ubuntu Server 9.04 Bacula Bweb GUI | HowtoForge - Linux Howtos and Tutorials
 How to install and setup Bweb

http://www.vivaolinux.com.br/artigo/Instalacao-e-configuracao-do-Bacula-com-interface-web-
(Bweb-Brestore)

Voltar para o site

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=11738 02/09/2010

You might also like