Bacula + Webacula + Bacula-web + bat no CentOS 6.3

Instalação do Bacula

Bacula é um sistema de backup que permite ao administrador fazer backup, gerenciá-los e restaurá-los através da rede. É possível, através dele, realizar backup de máquinas Windows e GNU/Linux. Nesse artigo vou mostrar a instalação do Bacula com o Webacula para gerenciar o Bacula via web e também o Bacula-web para visualizar relatórios do Bacula, como backups e restaurações.Ambiente:

  • CentOS 6.3;
  • Bacula 5.2.12;
  • Bacula-web 5.2.10;
  • Webacula 5.5.1.

Nessa instalação vamos utilizar o banco de dados MySQL, mas pode-se utilizar o PostgreSQL ou SQLite.

Instalando o MySQL:

# yum install mysq mysql-server mysql-devel -y

Inicie o MySQL:

# service mysqld start

Defina uma senha root para o MySQL:

# mysqladmin -u root password ‘12345’

No caso eu estou usando a senha “12345”, que não recomento nem para testes.

Após isso, verifique se ficou OK:

# mysql -u root -p12345

Vamos à instalação do Bacula.

Baixe o Bacula:

# wget http://downloads.sourceforge.net/project/bacula/bacula/5.2.12/bacula-5.2.12.tar.gz

Descompacte:

# tar -zxvf bacula-5.2.12.tar.gz

Instale o Bacula:

# cd bacula-5.2.12
# ./configure –with-mysql
# make
# make install

Copie o arquivo bacula para o /etc/init.d:

# cp -av /etc/bacula/bacula /etc/rc.d/init.d/bacula

Agora tu podes iniciar e parar os serviços do bacula-sd, bacula-fd e bacula-dir com o comando service, como mostra a imagem abaixo:

Vamos colocar na inicialização do sistema, mas antes, adicione 2 linhas ao script do Bacula:

# vim /etc/rc.d/init.d/bacula

Adicionar abaixo de “#!/bin/bash”:

# chkconfig: 345 99 10
# description: bacula

Salve o arquivo e pronto, é só adicionar:

# chkconfig –level 345 bacula on

O Bacula já está na inicialização do sistema.

Agora vamos criar a base de dados do Bacula:

# cd /etc/bacula/
# ./create_bacula_database -u root -p
# ./make_bacula_tables -u root -p
# ./grant_bacula_privileges -u root -p

Onde:

  • -u – Informa o usuário do banco;
  • root – É o usuário;
  • -p – É a senha que vai solicitar.

Obs.: Você pode criar um usuário para o Bacula, que é o mais correto.

Bom, e agora no arquivo bacula-dir ajuste a conexão com o banco de dados:

# vim /etc/bacula/bacula-dir.conf

E deixe assim:

Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = “dbi:mysql”; dbaddress = 127.0.0.1; dbport =
dbname = “bacula”; dbuser = “root”; dbpassword = “12345”
}

Onde o dbname é o nome da base de dados do Bacula, dbuser o usuário que irá se conectar e dbpassword a senha.

Após isso, salve o arquivo e inicie o Bacula:

# service bacula start

E depois teste a conexão com o comando bconsole:

# bconsole

Agora é só ajustar o Bacula a seu gosto ou conforme a maneira que tu quer efetuar os seus backups.

Instalando o Webacula

Webacula é um gerenciador web do Bacula, onde pode-se efetuar backups e restaurá-los.Para efetuar a instalação vamos instalar o PHP e o Apache.

Instalando o PHP:

# yum install php php-cli php-common php-devel php-gd php-mbstring php-mysql php-pear.noarch php-xml -y

Agora o Apache:

# yum install httpd httpd-devel httpd-tools -y

Adicione o Apache na inicialização:

# chkconfig httpd on

Baixe o Webacula:

# wget http://downloads.sourceforge.net/project/webacula/webacula/5.5.1/webacula-5.5.1.tar.gz

Descompacte:

# tar -zxvf webacula-5.5.1.tar.gz

Mova para o diretório do Apache:

# mv webacula-5.5.1 /home/viaza132/www/webacula

Baixe o Zend Framework:

# wget https://packages.zendframework.com/releases/ZendFramework-1.12.0/ZendFramework-1.12.0.tar.gz

Descompacte:

# tar -zxvf ZendFramework-1.12.0.tar.gz

Acesse o diretório descompactado:

# cd ZendFramework-1.12.0

E copie o diretório library para o diretório do Webacula:

# cp -r library /home/viaza132/www/webacula/

Agora modifique os nomes de usuário do Webacula e do banco de dados no arquivo /home/viaza132/www/webacula/install/db.conf:

# vim /home/viaza132/www/webacula/install/db.conf

# bacula settings (nome do banco do bacula)
db_name=”bacula”
# for Sqlite only
db_name_sqlite=”/var/bacula/working/bacula.db”
db_user=”root”# CHANGE_THIS
db_pwd=”12345″ # <==(Modifique!! Senha de usuário admin do banco de dados)

# Webacula web interface settings

#
# CHANGE_THIS
webacula_root_pwd=”12345″ #<==(Modifique! Insira a senha do usuário administrador do Webacula).

Salve o arquivo.

Agora execute o script correspondente ao seu banco de dados, nesse caso é o MySQL:

# cd /home/viaza132/www/webacula/install/MySql

E execute os scripts:

# ./10_make_tables.sh
# ./20_acl_make_tables.sh

Edite o arquivo /home/viaza132/www/webacula/html/.htaccess para colocar o Webacula no modo de produção (as duas primeiras linhas devem ficar como abaixo):

# vim /home/viaza132/www/webacula/html/.htaccess

# SetEnv APPLICATION_ENV development
SetEnv APPLICATION_ENV production

Salve o arquivo.

Adicione a linha:

catalog = all, !skipped, !saved

No seu /etc/bacula/bacula-dir.conf, como abaixo:

Messages {
Name = Standard

catalog = all, !skipped, !saved

Por fim, reinicie o Bacula:

# service bacula restart

Altere o php.ini:

# vim /etc/php.ini

E altere:

max_execution_time = 30

Para:

max_execution_time = 3600

Salve o arquivo.

Configurando o acesso ao banco de dados:

# vim /home/viaza132/www/webacula/application/config.ini

E deixe assim:

db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = 12345
db.config.dbname = bacula

E também:

locale = “pt_BR”

E:

bacula.sudo = “”
bacula.bconsole = “/sbin/bconsole”

Salve o arquivo.

Agora altere as permissões dos seguintes arquivos:

# chown apache /sbin/bconsole
# chmod u=rwx,g=rx,o= /sbin/bconsole
# chown apache /etc/bacula/bconsole.conf
# chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
# chown -R apache /home/viaza132/www/webacula

Crie o arquivo webacula.conf no /etc/httpd/conf.d:

# vim /etc/httpd/conf.d/webacula.conf

E deixe assim:

Alias /webacula /home/viaza132/www/webacula/html
<Directory /home/viaza132/www/webacula/html>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from All
</Directory>

Salve o arquivo reinicie o Apache:

# service httpd restart

Pronto, o Webacula já esta instalado.

Tela de login:

Após o login:

Bacula-web

Bacula-web é uma ferramenta de código aberto cujo projeto começou em 2004, originalmente escrito por Juan Luis Frances, que se encontra atualmente na versão 5.2.10. Esta ferramenta é escrita em PHP, HTML, CSS e JavaScript, e é liberado sob os termos da licença GPL.O Bacula-web serve para monitoramento e relatórios do Bacula, onde temos:

  • Quantos clientes configurados;
  • Total de bytes armazenados em seu catálogo;
  • Total de arquivos armazenados em seu catálogo;
  • O tamanho do banco de dados do catálogo.

Também temos em relação aos Jobs:

  • Jobs em execução;
  • Jobs concluídos;
  • Jobs com falha;
  • Jobs cancelados;
  • Jobs em espera.

Temos o status dos Jobs das últimas 24 horas onde informam:

  • Quantos Jobs em execução;
  • Jobs com falha;
  • Jobs concluídos;
  • Jobs em espera.

Quantos posts de Jobs para cada nível (incremental, diferencial e integral):

  • Total de bytes transferidos;
  • Arquivos transferidos.

Instalando

Primeiro efetue o download do mesmo:

# wget http://www.bacula-web.org/tl_files/downloads/bacula-web.5.2.10.tar.gz

Crie o diretório no /home/viaza132/www/bacula-web:

# mkdir /home/viaza132/www/bacula-web

Mova o arquivo para lá:

# mv bacula-web.5.2.10.tar.gz /home/viaza132/www/bacula-web

Acesse o diretório /home/viaza132/www/bacula-web:

# cd /home/viaza132/www/bacula-web

Descompacte:

# tar -zxvf bacula-web.5.2.10.tar.gz

Agora vamos ajustar as configurações.

Acesse o arquivo de configuração no /home/viaza132/www/bacula-web/application/config e altere o arquivo config.php.sample para config.php:

# cd /home/viaza132/www/bacula-web/application/config
# mv config.php.sample config.php

Edite o arquivo config.php:

# vim config.php

E deixe assim:

// Translations
$config[‘language’] = ‘pt_BR’;// MySQL bacula catalog
$config[0][‘label’] = ‘Backup Server’;
$config[0][‘host’] = ‘localhost’;
$config[0][‘login’] = ‘root’;
$config[0][‘password’] = ‘12345’;
$config[0][‘db_name’] = ‘bacula’;
$config[0][‘db_type’] = ‘mysql’;
$config[0][‘db_port’] = ‘3306’;

Salve o arquivo.

Agora ajuste a permissão do diretório /home/viaza132/www/bacula-web/application/view/cache:

# chown apache -R /home/viaza132/www/bacula-web/application/view/cache

Crie o arquivo bacula-web no /etc/httpd/conf.d:

# vim /etc/httpd/conf.d/bacula-web.conf

E adicione:

Alias /bacula-web /home/viaza132/www/bacula-web
<Directory /home/viaza132/www/bacula-web>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from All
</Directory>

Salve o arquivo e reinicie o Apache:

# service httpd restart

E acesse o seu browser:

http://<ip>/bacula-web

Bat (Bacula Admin Tool)

Bat (Bacula Administration Tool) é uma ferramenta GUI do bconsole, mas com muitos recursos adicionais. Tu podes utilizar no GNU/Linux, BSD e Windows.Bom, em algumas distribuições a sua instalação é muito fácil.

No Debian/Ubuntu:

# apt-get install bacula-console-qt

No CentOS:

# yum install bacula-console-bat

E tem a opção de instalar via código fonte, essa opção eu utilizo na minha máquina, assim eu não preciso acessar o servidor, pois eu já tenho o meu console do Bacula instalado na minha máquina onde fica mais fácil o gerenciamento de backup.

Ao baixar o Bacula, na compilação digite:

# ./configure –enable-bat
# make
# make install

Após isso ajuste o arquivo bat.conf:

# vim /etc/bacula/cat bat.conf

Director {# o nome do diretor
Name = bacula-dir

# porta de comunicação do bacula
DIRport = 9101

#Ip do servidor do Bacula
address = XXX.XXX.XXX.XXX

# Senha
Password = “7Gp5ak3/lVCeYmRUSiWpa9lTEOxlWW9dxCnQvCwDgwew”
}

Bom, uma dica que não tem erro, é só pegar o arquivo do bconsole.conf no servidor, copie/cole e só altere o address colocando o IP do servidor do Bacula. Salve o arquivo e digite no terminal:

$ sudo bat

Rolar para cima