404 Not Found


nginx
{"id":8152,"date":"2015-08-30T00:04:07","date_gmt":"2015-08-30T03:04:07","guid":{"rendered":"https:\/\/cleuber.com.br\/?p=8152"},"modified":"2015-10-01T11:16:23","modified_gmt":"2015-10-01T14:16:23","slug":"crie-seu-proprio-servidor-de-backup-open-source-no-linux-com-bacula","status":"publish","type":"post","link":"https:\/\/cleuber.com.br\/index.php\/2015\/08\/30\/crie-seu-proprio-servidor-de-backup-open-source-no-linux-com-bacula","title":{"rendered":"Crie Seu Pr\u00f3prio Servidor de Backup Open Source no Linux Com Bacula"},"content":{"rendered":"

Ol\u00e1 pessoal,<\/p>\n

No artigo anterior apresentei o Bacula<\/a><\/span><\/span>, um sistema de backup open source, que n\u00e3o fica atr\u00e1s das solu\u00e7\u00f5es 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.<\/p>\n

Hoje, iremos realizar a instala\u00e7\u00e3o do sistema.<\/p>\n

Ambiente Usado<\/h4>\n

Ubuntu Server 14.04.3 LTS (x64) em m\u00e1quina virtual – Virtualbox<\/p>\n

Instala\u00e7\u00e3o do Bacula<\/strong><\/h2>\n

Bacula<\/span> usa<\/span> banco de dados<\/span> SQL<\/span> para gerenciar<\/span> as informa\u00e7\u00f5es.<\/span> Podemos<\/span> usar\u00a0<\/span>MySQL<\/span> ou PostgreSQL<\/span>. Neste<\/span> tutorial<\/span>, eu usarei o MySQL server<\/span>.<\/span><\/p>\n

Antes de tudo,<\/span> atualizar<\/span> seu servidor<\/span> Ubuntu<\/span> com o comando<\/span>:<\/span><\/p>\n

sudo apt-get update && sudo apt-get dist-upgrade<\/pre>\n

Obs. Se necess\u00e1rio, em caso de update de kernel, reinicie o servidor.<\/p>\n

Digite o seguinte comando<\/span> para instalar o<\/span> MySQL server:<\/span><\/span><\/span><\/p>\n

sudo apt-get install mysql-server<\/pre>\n
\n
\n
\n
\n
Durante a instala\u00e7\u00e3o do<\/span> MySQL,<\/span> ser\u00e1 solicitado<\/span> para definir a<\/span> senha de administrador<\/span> de banco de dados<\/span>. Digite a senha e<\/span> clique em <\/span><\/span>Ok.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n

\"sk@server:<\/a><\/p>\n

Repita a senha:<\/p>\n

\"sk@server:<\/a><\/p>\n

Agora, vamos instalar bacula usando o seguinte comando:<\/p>\n

sudo apt-get install bacula-server bacula-client<\/pre>\n

Por padr\u00e3o, o Bacula usa Postfix MTA. Durante a instala\u00e7\u00e3o, ser\u00e1 solicitado para configurar o Postfix.<\/p>\n

Clique em OK para continuar.<\/p>\n

\"bacula-install\"<\/a><\/p>\n

Selecione a segunda op\u00e7\u00e3o \u2018Site da Internet\u2019<\/strong> e clique em Ok.<\/p>\n

\"bacula-install2\"<\/a><\/p>\n

Entre com o “fully qualified domain name” (FQDN) do servidor:<\/p>\n

\"bacula-install3\"<\/a><\/p>\n

Agora, selecione “Sim” para configurar o banco de dados para Bacula com dbconfig-common.<\/p>\n

\"bacula-install4\"<\/a><\/p>\n

Se quiser configurar um nome de servidor smtp para envio de e-mails, fa\u00e7a-o agora, se n\u00e3o, deixe em branco para n\u00e3o ter isso configurado agora.<\/p>\n

\"bacula-install5\"<\/a><\/p>\n

Entre com a senha de administrador da database do MySQL<\/p>\n

\"bacula-install6\"<\/a><\/p>\n

Defina a senha do bacula-director-mysql para se registrar com o servidor de banco de dados. Se deixada em branco, uma senha aleat\u00f3ria ser\u00e1 gerada.<\/p>\n

\"bacula-install7\"<\/a><\/p>\n

Repita a senha:<\/p>\n

\"bacula-install8\"<\/a><\/p>\n

Feito!<\/span> Temos instalado<\/span> com sucesso<\/span> Bacula<\/span>. \u00c9 hora de<\/span> criar<\/span> diret\u00f3rios para<\/span> backup e restaura\u00e7\u00e3o.<\/span><\/span><\/h4>\n

Crie as Pastas de Backup e Restore<\/strong><\/h2>\n

Entre com o comando abaixo para criarmos as pastas “\/mybackup\/backup” e “\/mybackup\/restore”<\/p>\n

sudo mkdir -p \/mybackup\/backup \/mybackup\/restore<\/pre>\n

Defina as permiss\u00f5es de propriedade para os diret\u00f3rios acima:<\/p>\n

sudo chown -R bacula:bacula \/mybackup\/<\/pre>\n
sudo chmod -R 700 \/mybackup\/<\/pre>\n

Configure o Bacula<\/strong><\/h2>\n
O Bacula<\/span> possui muitos<\/span> arquivos de configura\u00e7\u00e3o<\/span> que temos de<\/span> configurar.
\nNeste tutorial, como estou usando o servidor sem interface gr\u00e1fica, usarei o editor de texto “nano”, mas se voc\u00ea preferir poder\u00e1 usar o “vi” ou o “vim”. Enfim, ao seu gosto.
\n<\/span><\/span><\/div>\n

Edite a configura\u00e7\u00e3o do Bacula Director:<\/strong><\/p>\n

sudo nano \/etc\/bacula\/bacula-dir.conf<\/pre>\n

Encontre a seguinte se\u00e7\u00e3o e edite colocando o local do restore.<\/p>\n

Em nosso caso, \/mybackup\/restore<\/strong> \u00e9 o nosso local de restore.<\/p>\n

[...]\r\nJob {\r\n\u00a0 Name = \"RestoreFiles\"\r\n\u00a0 Type = Restore\r\n\u00a0 Client=server-fd\r\n\u00a0 FileSet=\"Full Set\"\r\n\u00a0 Storage = File\r\n\u00a0 Pool = Default\r\n\u00a0 Messages = Standard\r\n\u00a0 Where = \/mybackup\/restore<\/strong>\r\n}\r\n[...]<\/pre>\n

Procure mais abaixo no arquivo para a se\u00e7\u00e3o \u201clist of files to be backed up\u201d<\/strong>\u00a0 e defina o caminho dos arquivos que deseja fazer backup.<\/p>\n

Por exemplo, se eu quiser fazer backup da pasta \u201c\/home\/Downloads\u201d, <\/strong>basta incluir o par\u00e2metro \u201cFile\u201d<\/strong> e o caminho, conforme abaixo.<\/p>\n

[...]\r\n\r\n#\u00a0 By default this is defined to point to the Bacula binary\r\n#\u00a0\u00a0\u00a0 directory to give a reasonable FileSet to backup to\r\n#\u00a0\u00a0\u00a0 disk storage during initial testing.\r\n#\r\n\u00a0\u00a0\u00a0 File = \/home\/Downloads<\/strong>\r\n\u00a0 }\r\n[...]<\/pre>\n

V\u00e1 at\u00e9 mais abaixo e encontre a se\u00e7\u00e3o Exclude<\/strong> e defina a lista de diret\u00f3rios que ser\u00e3o exclu\u00eddos do backup.<\/p>\n

Aqui, acrescentei apenas a pasta \/mybackup.<\/strong><\/p>\n

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

Salve e feche o arquivo. (usando o nano, \u00e9 usando os atalhos de teclado Ctrl+O (para salvar) e Ctrl+X (para fechar).<\/p>\n

Edite as configura\u00e7\u00f5es do Bacula Storage Daemon:<\/strong><\/p>\n

Edite o arquivo \/etc\/bacula\/bacula-sd.conf<\/strong>,<\/p>\n

sudo nano \/etc\/bacula\/bacula-sd.conf<\/pre>\n

Configure o local que o backup ser\u00e1 armazenado. Em nosso caso, \u00e9 o \/mybackup\/backup<\/strong>.<\/p>\n

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

Agora, cheque se todas as configura\u00e7\u00f5es est\u00e3o correras atrav\u00e9s dos comandos abaixo.<\/p>\n

Se os comandos n\u00e3o mostrarem nenhum retorno, quer dizer que as configura\u00e7\u00f5es feitas s\u00e3o v\u00e1lidas.<\/p>\n

sudo bacula-dir -tc \/etc\/bacula\/bacula-dir.conf<\/pre>\n
sudo bacula-sd -tc \/etc\/bacula\/bacula-sd.conf<\/pre>\n

Uma vez que todas as configura\u00e7\u00f5es passadas foram realizadas e deram certo, reinicie os servi\u00e7os do Bacula.<\/p>\n

No Ubuntu 15.04:<\/p>\n

sudo systemctl restart bacula-director<\/pre>\n
sudo systemctl restart bacula-fd<\/pre>\n
sudo systemctl restart bacula-sd<\/pre>\n

On Ubuntu 14.10\/14.04 LTS e vers\u00f5es anteriores:<\/p>\n

sudo service bacula-director restart<\/pre>\n
sudo service bacula-fd restart<\/pre>\n
sudo service bacula-sd restart<\/pre>\n

\u00c9 isso a\u00ed, o Bacula agora est\u00e1 instalado e configurado com sucesso, e voc\u00ea poder\u00e1 come\u00e7ar a adicionar clientes, e tarefas de backup e rodar essas tarefas, de forma agendada e manual. Tudo poder\u00e1 ser gerenciado pela configura\u00e7\u00e3o destes arquivos de texto e tamb\u00e9m por uma console em terminal, chamada bconsole<\/strong>. Mas existe tamb\u00e9m consoles Web com interface gr\u00e1fica que o ajudar\u00e1 a administrar o sistema. A que irei passar aqui \u00e9 o Webmin que possui um m\u00f3dulo espec\u00edfico para o Bacula tamb\u00e9m. Importante dizer que o Webmin se comunica e realiza as tarefas do Bacula usando o bconsole em background. Ent\u00e3o se houver algum erro nos arquivos de configura\u00e7\u00e3o o bconsole n\u00e3o ir\u00e1 funcionar, logo o Webmin tamb\u00e9m n\u00e3o. Por isso tudo tem que estar OK at\u00e1 aqui para prosseguir. Se seguiu os passos corretamente at\u00e9 agora pode ficar tranquilo.<\/p>\n

Gerenciando o Bacula Usando o Webmin<\/strong><\/h2>\n

Gerenciando e trabalhando com o Bacula via linha de comando pode ser um tanto dif\u00edcil para alguns administradores. Gra\u00e7as a console web para Linux chamada Webmin, isso pode ser mais agrad\u00e1vel, f\u00e1cil e r\u00e1pido.<\/p>\n

Com o Webmin<\/a><\/span><\/span> que \u00e9 um programa open source para Linux, voc\u00ea pode configurar qualquer coisa em seu Linux, incluindo diversos servi\u00e7os tais como, DNS, DHCP, Apache, NFS, and Samba e etc atrav\u00e9s de quaisquer navegadores.<\/p>\n

Instalando o Webmin no Ubuntu 15.04 usando o reposit\u00f3rio oficial.<\/strong><\/h4>\n

Adicione o reposit\u00f3rio oficial do Webmin:<\/p>\n

Edite o arquivo \/etc\/apt\/sources.list<\/strong>,<\/p>\n

sudo nano \/etc\/apt\/sources.list<\/pre>\n

Adicione as seguintes linhas no arquivo:<\/p>\n

deb http:\/\/download.webmin.com\/download\/repository sarge contrib\r\ndeb http:\/\/webmin.mirror.somersettechsolutions.co.uk\/repository sarge contrib<\/pre>\n

Baixe e adicione a chave GPG:<\/p>\n

sudo wget http:\/\/www.webmin.com\/jcameron-key.asc<\/pre>\n
sudo apt-key add jcameron-key.asc<\/pre>\n

Atualize o apt:<\/p>\n

sudo apt-get update<\/pre>\n

Instale o Webmin com o seguinte comando:<\/p>\n

sudo apt-get install webmin<\/pre>\n

Libere a porta \u201c10000\u201d<\/strong> do firewall para acessar o Webmin remotamente, com o seguinte comando:<\/p>\n

sudo ufw allow 10000<\/pre>\n

Acesse a Console do Webmin
\n<\/strong><\/h4>\n

Abra o navegador de uma m\u00e1quina na mesma rede de seu servidor, como seu desktop, por exemplo, e e acesse a url: https:\/\/ip-address:10000\/<\/strong>. A seguinte tela dever\u00e1 aparecer, e ent\u00e3o basta entrar com seu usu\u00e1rio e senha do servidor. a tela que aparecer\u00e1 ap\u00f3s o login \u00e9 essa:<\/p>\n

\"bacula-webmin\"<\/a><\/p>\n

Agora voc\u00ea est\u00e1 pronto para gerenciar seu servidor graficamente.<\/p>\n

Gerenciando o Bacula pelo Webmin<\/h4>\n

No Webmin na lista de configura\u00e7\u00f5es no lado esquerdo sob a se\u00e7\u00e3o “System” encontrar\u00e1 o item Bacula Backup System<\/strong>.<\/p>\n

Se n\u00e3o encontrar, poder\u00e1 estar na se\u00e7\u00e3o “unused modules”<\/strong>.<\/p>\n

Quando a mensagem abaixo aparecer, clique no link \u201cModule Configuration\u201d<\/strong>.<\/p>\n

\"Webmin-1.760-on-server.unixmen.local-Ubuntu-Linux-15.04-Chromium_014\"<\/a><\/p>\n

V\u00e1 at\u00e9 a se\u00e7\u00e3o Bacula database settings e escolha a op\u00e7\u00e3o MySQL, em seguida entre com a senha da base de dados que definimos no come\u00e7o da instala\u00e7\u00e3o e entre com a senha do banco. Ent\u00e3o clique em Save<\/strong>, conforme imagem abaixo.<\/p>\n

\"Webmin-1.760-on-server.unixmen.local-Ubuntu-Linux-15.04-Chromium_015\"<\/a><\/p>\n

Agora voc\u00ea poder\u00e1 configurar o Bacula, e todos os seus Daemons, Volumes, Schedules, adicionar Clientes, rodar seus Jobs e etc. Para saber mais poder\u00e1 ir at\u00e9 a\u00a0p\u00e1gina oficial de documenta\u00e7\u00e3o<\/span><\/span><\/a>.<\/p>\n

Itens Principais da Console<\/h3>\n

Na se\u00e7\u00e3o Director Configuration<\/strong> temos os itens abaixo, configure-os nessa ordem:<\/p>\n

Backup Clients =<\/strong> M\u00e1quinas clientes adicionadas nesta se\u00e7\u00e3o ter\u00e3o que ter o cliente do Bacula instalado. No nosso caso, o pr\u00f3prio servidor j\u00e1 est\u00e1 com o software cliente instalado e configurado e neste campo e voc\u00ea poder\u00e1 come\u00e7ar a fazer testes com o pr\u00f3prio servidor. Voc\u00ea poder\u00e1 adicionar outros clientes, como desktops e outros servidores neste item, preenchendo um nome que quiser para a m\u00e1quina, endere\u00e7o de ip ou nome real da m\u00e1quina, e etc. E cada cliente com o software client do Bacula instalado gerar\u00e1 um arquivo de configura\u00e7\u00e3o com uma senha. Voc\u00ea dever\u00e1 copiar esta senha e colocar no campo senha da configura\u00e7\u00e3o do cliente neste item do Webmin.<\/p>\n

File Sets =<\/strong> Modelos de configura\u00e7\u00f5es de arquivos a serem backupeados que voc\u00ea poder\u00e1 criar. Cada modelo criado e nomeado por voc\u00ea dever\u00e1 conter que pastas deseja fazer backup das m\u00e1quinas clientes. Por exemplo, poder\u00e1 criar uma configura\u00e7\u00e3o chamada “etc”<\/strong> e o caminho dela ser\u00e1 a pasta \/etc<\/strong> de seu client a ser backupeado. Outro exemplo em m\u00e1quinas Windows, poder\u00e1 criar um File Set chamado “Meus Documentos”<\/strong> com o caminho “C:\/Users\/nome do usu\u00e1rio\/Documents”<\/strong>.<\/p>\n

Backup Schedules =<\/strong> Modelos de Agendamento que voc\u00ea criar\u00e1 para rodar seus backupes, como sexta-feira as 22:00hs por exemplo.<\/p>\n

Backup Jobs =<\/strong> \u00c9 a tarefa de Backup e a \u00faltima parte da configura\u00e7\u00e3o. Para finalizar a cria\u00e7\u00e3o do Job, voc\u00ea dever\u00e1 preencher com os itens acima pr\u00e9-configurados de:<\/p>\n

1 – O nome do Job, por exemplo, “desktop do diretor”
\n2 – O tipo de Job, se \u00e9 de backup ou de restore
\n3 – Cliente que ir\u00e1 rodar o job, previamente adicionado
\n4 – O File Set escolhido para o Job, por exemplo, “Meus Documentos”
\n5 – O Schedule escolhido previamente criado, por exemplo, um chamado “sexta-feira meio dia”<\/p>\n

Uma vez o Job criado com sucesso, voc\u00ea poder\u00e1 rod\u00e1-lo imediatamente ou esperar at\u00e9 o momento da agenda.<\/p>\n

Na se\u00e7\u00e3o mais abaixo, chamada Backup and Restore Actions, voc\u00ea poder\u00e1 rodar seus jobs tamb\u00e9m, atrav\u00e9s do bot\u00e3o “Run Backup Job”<\/strong>, verificar o Status de conectividade de seus clients atrav\u00e9s do bot\u00e3o “Client Status”<\/strong> ou rodar jobs de restaura\u00e7\u00e3o atrav\u00e9s do bot\u00e3o “Restore Backup”<\/strong>.<\/p>\n

\"bacula-webmin3\"<\/a><\/p>\n

Em breve adicionarei mais detalhes destes processos, e a instala\u00e7\u00e3o de outra console web chamada Webacula<\/strong>, comandos via console bconsole<\/strong> e outras coisas que testei. Mas se quiser ver um v\u00eddeo que explica um pouco e at\u00e9 faz um pequeno ajuste de “Label” para o job funcionar, recomendo este v\u00eddeo do “Joe Show” (apenas em ingl\u00eas).<\/p>\n