Você está na página 1de 11
Instalação e configuração do Bacula com interface web (Bweb/Brestore) Autor: Fabrício Rodrigo <fabriciorodrigo at
Instalação e configuração do Bacula com interface web (Bweb/Brestore) Autor: Fabrício Rodrigo <fabriciorodrigo at

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.04do Bacula no Ubuntu/Debian Informações gerais: MySQL Server 5.0 Apache2 Instalação do Bacula A

MySQL Server 5.0no Ubuntu/Debian Informações gerais: Ubuntu Server 10.04 Apache2 Instalação do Bacula A instalação do Bacula

Apache2Informações gerais: Ubuntu Server 10.04 MySQL Server 5.0 Instalação do Bacula A instalação do Bacula através

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:

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

}

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

}

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) 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

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.

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.

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.

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".

"desktop­fd" através do comando "status". Acessando o Bweb Para acessar Bacula via interface web basta

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:

no navegador. Será exibida a página do Bweb: Acessando o Brestore Para acessar o módulo de

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:

Referências bibliográficas Tutorial linux | Instalação do Bacula | Bacula é um programa que possibilita

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 maisReferências bibliográficas Montando um completo servidor de backup usando Bacula [Artigo] Bacula no Debian Lenny

Montando um completo servidor de backup usando Bacula [Artigo]linux shell scripts, scripts linux, scripts e muito mais Bacula no Debian Lenny [Artigo] MY Experiences:

Bacula no Debian Lenny [Artigo]um completo servidor de backup usando Bacula [Artigo] MY Experiences: Install Bacula BWEB Ubuntu Server 9.04

MY Experiences: Install Bacula BWEBusando Bacula [Artigo] Bacula no Debian Lenny [Artigo] Ubuntu Server 9.04 Bacula Bweb GUI | HowtoForge

Ubuntu Server 9.04 Bacula Bweb GUI | HowtoForge ­ Linux Howtos and Tutorialsno Debian Lenny [Artigo] MY Experiences: Install Bacula BWEB How to install and setup Bweb

How to install and setup BwebBacula Bweb GUI | HowtoForge ­ Linux Howtos and Tutorials

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

Brestore)

Voltar para o site