Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: desktop klg+kde3.2+xmms+opera
Por eslayver
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Instalação e configuração do Bacula com interface web (Bweb/Brestore)
Linux user
fabriciorodrigo
20/07/2010
O Bacula é um software de criação e gerenciamento de backups. Nesse tutorial serão mostrados os passos para instalação e configuração do mesmo, juntamente com a interface web de gerenciamento (Bweb) e recuperação (Brestore) de backups.
Por: Fabrício Rodrigo
[ Hits: 51201 ]
Conceito: 9.8   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

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:

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.

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por drakula em 20/07/2010 - 20:02h:

Valeu pelo artigo, ta completasso.

[2] Comentário enviado por fernandoborges em 20/07/2010 - 20:12h:

Super bom, parabéns!!!

[3] Comentário enviado por danniel-lara em 20/07/2010 - 20:39h:

e ai blz ?
muito bom o artigo

[4] Comentário enviado por astdarkness em 22/07/2010 - 00:09h:

Velho, show de Bola!!!!!
Parabéns!!

[5] Comentário enviado por moser em 23/07/2010 - 16:24h:

Aqui onde trabalho usamos o Webmin como ferramenta de administração web. Acho mais completo.

Abraço !

[6] Comentário enviado por feliperossi em 25/07/2010 - 21:45h:

Exelente artigo, com uma definicao clara sobre o funcionamento do bacula.
mas ainda tenho algumas duvidas em relacao ao bacula backup.
em um dos meu clientes tenho uma tape library IBM TS-2900 LTO 4 com 9 fitas.


gostaria de saber com o bacula gerencia as tape library, tenho ele configurado
com tapes comuns de apenas uma fita lto 1, 2 e 3, funciona maravilhosamente bem.

mas nesse modelo TS-2900 estou tendo alguns problemas para configuralo, devido
armazenamento e recuperacao dos arquivos. procurei em diversos foruns e sites
sobre o gerenciamento do bacula em tapes library, encontrei muito pouca documentacao
e nada claro a respeito.

fico grato caso alguem do VOL tenho algum case de sucesso ou implementacao
do bacula em tapes library.




[7] Comentário enviado por fabriciorodrigo em 27/07/2010 - 10:19h:

Vlw pela dica moser! .. instalei o webmin mas acho que o bweb tem mais 'cara' de aplicativo ... acho que os menus estão melhores dispostos e de melhor acesso. Acho que ainda falta algumas coisas pra ambos, mas é mais uma opção, e diga-se de passagem, de bem mais fácil instalação.

http://tchellow.blogspot.com/2009/09/instalacao-do-webmin-no-bacula-backup.html


Felipe, sinceramente nunca trabalhei com dispositivos de fita, apenas disco mesmo. Não vou ter como te ajudar!

[8] Comentário enviado por jairus em 27/07/2010 - 17:55h:

PARABÉNS PELO ARTIGO


INSTALEI AQUI NA EMPRESA ESTÁ FUNCIONANDO PERFEITO

UTILIZO DEBIAN LENNY


JAIRUS LOPES


[9] Comentário enviado por nando.polla em 21/12/2010 - 20:06h:

Alguem já consegui atribuir uma senha de acesso ao bweb,
para quando o for acessar solicitar alguma senha

[10] Comentário enviado por fabriciorodrigo em 27/12/2010 - 15:34h:

nando.polla,

O Bweb faz o controle através do htpasswd do apache ...

Adicione no httpd.conf ou no arquivo respectivo de sua distribuição ...

Alias /bweb /var/www/bweb
<Directory /var/www/bweb/html>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/bweb /usr/lib/cgi-bin/bweb
<Directory /usr/lib/cgi-bin/bweb>
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
AuthType Basic
AuthName MyPrivateFile
AuthUserFile /etc/apache2/htpasswd
AllowOverride None
Require valid-user
</Directory>


Para habilitar vc tbm deve ir até a opção "Configuration" do menu do Bweb e habilitar a opção "security" ou ainda inserir o parametro ('enable_security' => 'on') no arquivo de configuração do bweb (/etc/bacula/bweb.conf)

Assim que for habilitado a opção 'security' será adicionado a opção 'Manage Users' no menu 'Configuration' do Bweb. Nesse menu vc poderá fazer restrições para os usuários, mas não esqueça de primeiramente cadastrá-los no arquivo htpasswd do apache.



[11] Comentário enviado por nando.polla em 27/01/2011 - 11:58h:

Prezado ( fabriciorodrigo )

Desculpe-me a demora ....

O procedimento está totalmente correto...
Muito obrigado...

Só estou com algumas dificuldades em adicionar por grupo com restrições...

Mais perfeito ... está de parabens ...


Abraços... e muito obrigado.



[12] Comentário enviado por LinuxTec em 15/02/2011 - 13:09h:

Amigo, vou seguir seu tutorial para montar um servidor de backp do zero aqui na empresa, qualquer duvidas peça a himelde ajuda de todos começarei amanhã.

[13] Comentário enviado por LinuxTec em 22/02/2011 - 11:45h:

Cara estou seguindo seu artigo e deu um erro bobo aqui pode me ajudar

backup:/home/claudio/download/bacula-gui-5.0.2/bweb# perl Makefile.PL
1..8
ok 1 - require DBI;
ok 2 - require GD::Graph;
ok 3 - require GD;
ok 4 - require HTML::Template;
ok 5 - require CGI;
ok 6 - require Expect;
ok 7 - require Time::ParseDate;
ok 8 - require Date::Calc;
Writing Makefile for Bweb
backup:/home/claudio/download/bacula-gui-5.0.2/bweb# make install
-bash: make: command not found


Onde estou errando

[14] Comentário enviado por fabriciorodrigo em 22/02/2011 - 13:55h:

Provavelmente o 'make' n esteja instalado no seu pc ...

se estiver no debian basta instalar através do 'apt-get install make'

Creio que resolva o problema.

[15] Comentário enviado por Tiago_RC2Network em 29/07/2011 - 20:52h:

Fabricio,

Primeiramente queria lhe agradecer por essa imansa ajuda na configuração do Bacula. A instalação padrão e a interface Web deu certo, mas infelizmente parei no brestore.

- Instalei os modulos perls
- fiz os demais procedimentos:
# 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

mas quando vou dar o comando:

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

dá o seguinte erro:
mv: impossivel obter o estado de "ext-2.3.0/": Arquivo ou diretorio não encontrado.

Obrigado




[16] Comentário enviado por fabriciorodrigo em 12/08/2011 - 09:25h:

Tiago,

Desculpa a demora para responder.
Aparentemente pasta descompactado não está nessa pasta ou não está com o nome que vc está tentando move-la. Verifica onde está sendo descompactado a pasta e com qual nome ela foi descompactada. Dá um ls pra ver se a pasta está mesmo no diretório atual e com que nome, pra depois vc tentar move-la.

[17] Comentário enviado por Tiago_RC2Network em 16/08/2011 - 10:33h:

Fabricio, bom dia.

Obrigado mais uma vez pelas dúvidas sanadas. Deu tudo ok a instalação do Bacula Web e o Brestore. Porém, quando tento restaurar algum arquivo no brestore aparece p seguinte erro:

An error has occurred:

Can't start your job:


Obs: Seleciono o client (srv_arq), seleciono o Job, arrasto o arquivo a ser restaurado para o campo RESTORE SELECTION, no campo a direita FILE VERSION, aparece INchanger (circulo vermelho), volume (arquivos1), Jobid (756),size, data e checksun. Quando clico em run restore aparece as seguintes opções:

restore options

cliente: ser_arq ----------------------------no meu bacula-dir.conf o nome que dei ao job de restore é o restore_srv_arquivos
where: /tmp/bacula-restore--------------- no meu dir.conf essa opção está assim: /bacula-recuperados (quando restauro com o .bat ele sempre salva em c:/
replace:awalys/never----------------------- sempre coloco always

Já restartei todos os seviços e nada.

Poderia me ajudar mais uma vez? já tentei que cansei, instalei o debian 5, ubuntu e nada. Falta só fazer o restore pra fechar com chave de ouro.

Obrigado mais uma vez.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.