Home / Dicas e Tutoriais / Crie Seu Próprio Servidor de Backup Open Source no Linux Com Bacula

Crie Seu Próprio Servidor de Backup Open Source no Linux Com Bacula

Olá pessoal,

No artigo anterior apresentei o Bacula, um sistema de backup open source, que não fica atrás das soluções de mercado de grandes fabricantes como Dell, AC, IBM, Symantec e etc. Recomendo a leitura deste artigo anterior, pois explica a estrutura do Bacula e terminologias.

Hoje, iremos realizar a instalação do sistema.

Ambiente Usado

Ubuntu Server 14.04.3 LTS (x64) em máquina virtual – Virtualbox

Instalação do Bacula

Bacula usa banco de dados SQL para gerenciar as informações. Podemos usar MySQL ou PostgreSQL. Neste tutorial, eu usarei o MySQL server.

Antes de tudo, atualizar seu servidor Ubuntu com o comando:

sudo apt-get update && sudo apt-get dist-upgrade

Obs. Se necessário, em caso de update de kernel, reinicie o servidor.

Digite o seguinte comando para instalar o MySQL server:

sudo apt-get install mysql-server
Durante a instalação do MySQL, será solicitado para definir a senha de administrador de banco de dados. Digite a senha e clique em Ok.

sk@server: ~_001

Repita a senha:

sk@server: ~_002

Agora, vamos instalar bacula usando o seguinte comando:

sudo apt-get install bacula-server bacula-client

Por padrão, o Bacula usa Postfix MTA. Durante a instalação, será solicitado para configurar o Postfix.

Clique em OK para continuar.

bacula-install

Selecione a segunda opção ‘Site da Internet’ e clique em Ok.

bacula-install2

Entre com o “fully qualified domain name” (FQDN) do servidor:

bacula-install3

Agora, selecione “Sim” para configurar o banco de dados para Bacula com dbconfig-common.

bacula-install4

Se quiser configurar um nome de servidor smtp para envio de e-mails, faça-o agora, se não, deixe em branco para não ter isso configurado agora.

bacula-install5

Entre com a senha de administrador da database do MySQL

bacula-install6

Defina a senha do bacula-director-mysql para se registrar com o servidor de banco de dados. Se deixada em branco, uma senha aleatória será gerada.

bacula-install7

Repita a senha:

bacula-install8

Feito! Temos instalado com sucesso Bacula. É hora de criar diretórios para backup e restauração.

Crie as Pastas de Backup e Restore

Entre com o comando abaixo para criarmos as pastas “/mybackup/backup” e “/mybackup/restore”

sudo mkdir -p /mybackup/backup /mybackup/restore

Defina as permissões de propriedade para os diretórios acima:

sudo chown -R bacula:bacula /mybackup/
sudo chmod -R 700 /mybackup/

Configure o Bacula

O Bacula possui muitos arquivos de configuração que temos de configurar.
Neste tutorial, como estou usando o servidor sem interface gráfica, usarei o editor de texto “nano”, mas se você preferir poderá usar o “vi” ou o “vim”. Enfim, ao seu gosto.

Edite a configuração do Bacula Director:

sudo nano /etc/bacula/bacula-dir.conf

Encontre a seguinte seção e edite colocando o local do restore.

Em nosso caso, /mybackup/restore é o nosso local de restore.

[...]
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=server-fd
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /mybackup/restore
}
[...]

Procure mais abaixo no arquivo para a seção “list of files to be backed up”  e defina o caminho dos arquivos que deseja fazer backup.

Por exemplo, se eu quiser fazer backup da pasta “/home/Downloads”, basta incluir o parâmetro “File” e o caminho, conforme abaixo.

[...]

#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    File = /home/Downloads
  }
[...]

Vá até mais abaixo e encontre a seção Exclude e defina a lista de diretórios que serão excluídos do backup.

Aqui, acrescentei apenas a pasta /mybackup.

[...]

# If you backup the root directory, the following two excluded
#   files can be useful
#
  Exclude {
    File = /var/lib/bacula
    File = /nonexistant/path/to/file/archive/dir
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
    File = /mybackup
  }
}
[...]

Salve e feche o arquivo. (usando o nano, é usando os atalhos de teclado Ctrl+O (para salvar) e Ctrl+X (para fechar).

Edite as configurações do Bacula Storage Daemon:

Edite o arquivo /etc/bacula/bacula-sd.conf,

sudo nano /etc/bacula/bacula-sd.conf

Configure o local que o backup será armazenado. Em nosso caso, é o /mybackup/backup.

[...]

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /mybackup/backup
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}
[...]

Agora, cheque se todas as configurações estão correras através dos comandos abaixo.

Se os comandos não mostrarem nenhum retorno, quer dizer que as configurações feitas são válidas.

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
sudo bacula-sd -tc /etc/bacula/bacula-sd.conf

Uma vez que todas as configurações passadas foram realizadas e deram certo, reinicie os serviços do Bacula.

No Ubuntu 15.04:

sudo systemctl restart bacula-director
sudo systemctl restart bacula-fd
sudo systemctl restart bacula-sd

On Ubuntu 14.10/14.04 LTS e versões anteriores:

sudo service bacula-director restart
sudo service bacula-fd restart
sudo service bacula-sd restart

É isso aí, o Bacula agora está instalado e configurado com sucesso, e você poderá começar a adicionar clientes, e tarefas de backup e rodar essas tarefas, de forma agendada e manual. Tudo poderá ser gerenciado pela configuração destes arquivos de texto e também por uma console em terminal, chamada bconsole. Mas existe também consoles Web com interface gráfica que o ajudará a administrar o sistema. A que irei passar aqui é o Webmin que possui um módulo específico para o Bacula também. Importante dizer que o Webmin se comunica e realiza as tarefas do Bacula usando o bconsole em background. Então se houver algum erro nos arquivos de configuração o bconsole não irá funcionar, logo o Webmin também não. Por isso tudo tem que estar OK atá aqui para prosseguir. Se seguiu os passos corretamente até agora pode ficar tranquilo.

Gerenciando o Bacula Usando o Webmin

Gerenciando e trabalhando com o Bacula via linha de comando pode ser um tanto difícil para alguns administradores. Graças a console web para Linux chamada Webmin, isso pode ser mais agradável, fácil e rápido.

Com o Webmin que é um programa open source para Linux, você pode configurar qualquer coisa em seu Linux, incluindo diversos serviços tais como, DNS, DHCP, Apache, NFS, and Samba e etc através de quaisquer navegadores.

Instalando o Webmin no Ubuntu 15.04 usando o repositório oficial.

Adicione o repositório oficial do Webmin:

Edite o arquivo /etc/apt/sources.list,

sudo nano /etc/apt/sources.list

Adicione as seguintes linhas no arquivo:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Baixe e adicione a chave GPG:

sudo wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Atualize o apt:

sudo apt-get update

Instale o Webmin com o seguinte comando:

sudo apt-get install webmin

Libere a porta “10000” do firewall para acessar o Webmin remotamente, com o seguinte comando:

sudo ufw allow 10000

Acesse a Console do Webmin

Abra o navegador de uma máquina na mesma rede de seu servidor, como seu desktop, por exemplo, e e acesse a url: https://ip-address:10000/. A seguinte tela deverá aparecer, e então basta entrar com seu usuário e senha do servidor. a tela que aparecerá após o login é essa:

bacula-webmin

Agora você está pronto para gerenciar seu servidor graficamente.

Gerenciando o Bacula pelo Webmin

No Webmin na lista de configurações no lado esquerdo sob a seção “System” encontrará o item Bacula Backup System.

Se não encontrar, poderá estar na seção “unused modules”.

Quando a mensagem abaixo aparecer, clique no link “Module Configuration”.

Webmin-1.760-on-server.unixmen.local-Ubuntu-Linux-15.04-Chromium_014

Vá até a seção Bacula database settings e escolha a opção MySQL, em seguida entre com a senha da base de dados que definimos no começo da instalação e entre com a senha do banco. Então clique em Save, conforme imagem abaixo.

Webmin-1.760-on-server.unixmen.local-Ubuntu-Linux-15.04-Chromium_015

Agora você poderá configurar o Bacula, e todos os seus Daemons, Volumes, Schedules, adicionar Clientes, rodar seus Jobs e etc. Para saber mais poderá ir até a página oficial de documentação.

Itens Principais da Console

Na seção Director Configuration temos os itens abaixo, configure-os nessa ordem:

Backup Clients = Máquinas clientes adicionadas nesta seção terão que ter o cliente do Bacula instalado. No nosso caso, o próprio servidor já está com o software cliente instalado e configurado e neste campo e você poderá começar a fazer testes com o próprio servidor. Você poderá adicionar outros clientes, como desktops e outros servidores neste item, preenchendo um nome que quiser para a máquina, endereço de ip ou nome real da máquina, e etc. E cada cliente com o software client do Bacula instalado gerará um arquivo de configuração com uma senha. Você deverá copiar esta senha e colocar no campo senha da configuração do cliente neste item do Webmin.

File Sets = Modelos de configurações de arquivos a serem backupeados que você poderá criar. Cada modelo criado e nomeado por você deverá conter que pastas deseja fazer backup das máquinas clientes. Por exemplo, poderá criar uma configuração chamada “etc” e o caminho dela será a pasta /etc de seu client a ser backupeado. Outro exemplo em máquinas Windows, poderá criar um File Set chamado “Meus Documentos” com o caminho “C:/Users/nome do usuário/Documents”.

Backup Schedules = Modelos de Agendamento que você criará para rodar seus backupes, como sexta-feira as 22:00hs por exemplo.

Backup Jobs = É a tarefa de Backup e a última parte da configuração. Para finalizar a criação do Job, você deverá preencher com os itens acima pré-configurados de:

1 – O nome do Job, por exemplo, “desktop do diretor”
2 – O tipo de Job, se é de backup ou de restore
3 – Cliente que irá rodar o job, previamente adicionado
4 – O File Set escolhido para o Job, por exemplo, “Meus Documentos”
5 – O Schedule escolhido previamente criado, por exemplo, um chamado “sexta-feira meio dia”

Uma vez o Job criado com sucesso, você poderá rodá-lo imediatamente ou esperar até o momento da agenda.

Na seção mais abaixo, chamada Backup and Restore Actions, você poderá rodar seus jobs também, através do botão “Run Backup Job”, verificar o Status de conectividade de seus clients através do botão “Client Status” ou rodar jobs de restauração através do botão “Restore Backup”.

bacula-webmin3

Em breve adicionarei mais detalhes destes processos, e a instalação de outra console web chamada Webacula, comandos via console bconsole e outras coisas que testei. Mas se quiser ver um vídeo que explica um pouco e até faz um pequeno ajuste de “Label” para o job funcionar, recomendo este vídeo do “Joe Show” (apenas em inglês).

Comigo os Jobs deram certo!

Abraços!

Cleuber

fontes: bacula.org/ e unixmen

About Cleuber

Cleuber Silva Hashimoto. Administrador

One comment

  1. Boa noite, Cleuber.

    Estou instalando o Bacula no Ubuntu 14.04 Server e quando chega na hora da configuração do bacula-director-mysql é apresentado o bacula-director-sqlite3 e não aparece as telas de configuração da senha.

    Quando abro o Webmin e vou tentar estabelecer conexão com o banco de dados retorna o erro o mesmo erro da tela da primeira imagem após o título Gerenciando o Bacula pelo Webmin

    Teria como dar uma ajuda?

Leave a Reply to Peterson Cancel reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...