オープンソースソフトウェア「Bacula」で安心・安全なバックアップシステムを構築しよう

第3回GUIツールBaculumを使ってバックアップを簡単にする

第2回では、Baculaの基本的な概要とインストール手順、バックアップ、リストア手順を解説しました。

バックアップ、リストアはbconsoleと呼ばれるCUI(Command Line Interface)ツールを使いましたが、BaculaにはBaculumというWebベースのGUI運用管理ツールがあります。日々のバックアップ取得が正常にできているか、管理サーバのディスクがどの程度使われているか、等を視覚的に確認することができます。またバックアップ、リストアの即時実行もできます。

Baculumには以下のようなDashboardがあり、Dashboardから各操作を行います。

画像

今回の連載では以下を実施します。

  • Baculumのインストール
  • Baculumでバックアップ取得
  • Baculumでリストア

Baculumは第2回の全体図で解説しましたが、管理サーバにインストールします。Baculumの操作は同じネットワークに接続されたPCからブラウザを使って操作します。

Baculumを使って管理サーバのデータをバックアップし、管理サーバにリストアします。

画像

Baculumのインストール

Baculumをインストールしていきましょう。Baculumは管理サーバにインストールします。

以下の環境のサーバにBaculumをインストールします。

LinuxマシンCentOS 7.2
IPアドレス192.168.2.1
BaculaパッケージBacula 7.4.4
BaculumパッケージBaculum 7.4.0

事前準備

Baculaは以下のポートで通信を行います。 Firewallなど通信をブロックするものは設定を変更しておいてください。

ポート番号利用目的
9101(TCP)bacula-dirデーモン通信用
9102(TCP)Bacula-fdデーモン通信用
9103(TCP)Bacula-fdデーモン通信用
9095(TCP)Baculum通信用

CentOS7で使用するポートを解放するコマンドは以下になります。

# firewall-cmd --permanent --add-service=bacula
success
# firewall-cmd --permanent --add-port=9095/tcp
success
# firewall-cmd --reload
success

リポジトリ追加

まずBaculum用のリポジトリを追加します。

viエディタなどで以下の様にbaculum.repoファイルを作成し/etc/yum.repos.d配下に配置します。

# cd /etc/yum.repos.d
# vi baculum.repo
[baculumrepo]
name=Baculum CentOS repository
baseurl=http://bacula.org/downloads/baculum/centos
gpgcheck=1
enabled=1

リポジトリ追加後に以下のコマンドでBaculumをインストールするための公開鍵を登録します。

# rpm --import http://bacula.org/downloads/baculum/baculum.pub

パッケージインストール

次にBaculumのパッケージをインストールします。

# yum -y install baculum baculum-httpd

インストールが完了したらhttpdを起動します。

# systemctl start httpd

httpdを起動したら自動起動の設定も合わせて設定します。

# systemctl enable httpd

最後にhttpdが起動していることを確認します。

# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 火 2017-01-17 10:38:49 JST; 18s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 2356 (httpd)

テストファイル作成

後でリストアをする時のためにテストファイルを作成します。aaaファイルにviエディタ等で任意の文字列を記載してください。

# vi /usr/sbin/aaa

初期設定

Baculumのインストールが完了したら初期設定を行います。初期設定はブラウザから設定します。任意のブラウザを開き、以下のURLでアクセスします。

  • http://<管理サーバIPアドレス>:9095/

今回の例ですとhttp://192.168.2.1:9095/となります。

ブラウザでアクセスするとユーザ名とパスワードを求められますが初期ユーザ名とパスワードは以下になります。

  • ユーザ名:admin
  • パスワード:admin

無事にログインできると以下の様な画面になります。

画像

ここでは言語選択をします。現時点では日本語対応していませんので「English」を選択して、画面中央下の「Next」をクリックします 近日中に日本語対応を予定しています⁠⁠。

次にライセンスの合意を求められます。⁠I have read the license terms and agree to」にチェックを入れて画面中央下の「Next」をクリックします。

画像

次にデータベース接続設定を行います。ここでのデータベース設定は管理サーバインストール時に設定した値を使用します。

以下の例ではMySQL(MariaDB)を使用した際の例になります。設定を入力後Connection testを実施して、⁠OK」となることを確認して、画面中央下の「Next」をクリックしてください。

画像

次にCUIツールであるbconsoleとの連携設定をします。設定はデフォルトのままで画面中央の「Bconsole connection test」を実施します。

「test」ボタンをクリックします。

画像

「OK」と表示されることを確認してください。OKと表示されたら画面中央下の「Next」をクリックしてください。

もし、NGとなる場合はbconsoleの設定ファイルbconsole.confのファイルの権限が正しくない可能性があります。sshで管理サーバにログインして以下のコマンドを実行します。

# chmod 644 /etc/bacula/bconsole.conf

権限変更後に再び「test」ボタンをクリックして「OK」となることを確認してください。

次に管理ユーザを作成します。管理者ユーザ名とパスワードを入力します。

画像

入力したら画面中央下の「Next」をクリックしてください上記の例では「root」というユーザを管理ユーザにしていますが、root以外でも問題ありません⁠⁠。

最後に確認画面が表示されます。内容を確認して「Save」をクリックします。

画像

Dashboardが表示されることを確認して初期設定は完了です。

画像

Baculumには画面上部に「Dashboard」⁠Workspace」⁠Graphs」⁠Users」⁠Logout」のメニューがあり、それぞれ、以下のようなことが実施可能です。

Dashboard
  • ジョブ実行結果一覧
  • リストア実行
  • Baculum設定
  • クライアント数情報確認
  • Baculaデータベース情報確認
  • Pool使用状況確認
  • Job実行数情報確認
  • Job実行使用量情報確認
Workspace
  • Storage Daemon情報確認
  • Client一覧確認
  • Volume一覧確認
  • Pool一覧確認
  • Job実行結果一覧
  • Job実行(バックアップ実行)
  • リストア実行
  • Baculum設定
Graphs
  • Job実行時間確認
  • Job実行使用量確認
Users
  • ユーザ追加
  • ユーザ削除
  • ユーザパスワード変更
Logout
  • Baculumからログアウト

バックアップ

Baculumのインストールと設定ができたところで、早速Baculumを使ってバックアップを取得してみましょう。

Dashboardから「WorkSpace」をクリックします。

画像

次に画面左側のメニューから「Run job」をクリックします。

画像

バックアップ実行可能なJobが表示されますのでクリックして選択します。

画像

バックアップ取得可能なクライアントをクリックすると詳細な設定値が画面右側に表示されます。ここでは、Levelを「Full」に選択しました。Fullはフルバックアップの意味になります。

最後に「Run job」をクリックすることでバックアップの取得が開始されます。

画像

バックアップの実行を開始すると画面右側にログが表示されます。

バックアップの実行が完了すると「Backup OK」と表示されます。

画像

ログからでは少し見にくいところもありますのでバックアップ実行結果一覧を確認します。

Dashboardのviewをクリックします。

画像

Job statusが全て「Terminated」になっていることを確認します。実行中の場合は「Running」となっています。

画像

リストア

今度はバックアップしたデータをリストアしてみましょう。Dashboardから画面左下の「Perform Restore」をクリックします。

画像

次にリストアするクライアントを選択します。以下の例では「bacula-fd」というクライアントを選択しています。

画像

選択したら画面中央下の「Next」をクリックします。

次に実行済みのJobからリストアするデータを選択します。以下の例では一番最近に実行したJob ID 5を選択しています。

画像

選択したら画面中央下の「Next」をクリックします。

次にリストアするファイルを選択します。以下のような画面になりますので、ディレクトリを展開してリストアファイルを選択します。

画像

ディレクトリを展開して/usr/sbinの中のaaaというファイルの右にある「add」をクリックします。

クリックすると右下のウインドウにファイルが追加されます。これでリストアファイルとして選択されました。

画像

今回の例では1つのファイルだけを選択していますが、ディレクトリごとも可能です。

またaddをクリックせずにファイルを右下のウインドウにドラッグ&ドロップすることでリストア対象を追加することもできます。

ファイルを選択したら、画面中央下の「Next」をクリックします。

次にリストアファイルの出力先を決めます。デフォルトの/tmp/restoreのままで画面中央下の「Next」をクリックします。

画像

次にリストアファイルの出力先のファイルの扱いについて決めます。出力先の/tmp/restoreに対して以下の4種類から選択します。

  • do not replace file(出力先にファイルが存在する場合リストアしない)
  • if file from restore are older(リストアするファイルが古い場合上書きする)
  • if file from restore are newer(リストアするファイルが新しい場合上書きする)
  • always replace fires(出力先にファイルが存在しても上書きする)

今回は「always replace fires」を選び画面中央下の「Next」をクリックします。

画像

最後にリストアの確認画面になりますので、内容を確認して画面中央下の「Run restore」をクリックします。

画像

リストアが実行されるとジョブ一覧の画面に遷移します。Job statusが「Terminated」となることを確認します。

画像

リストアができたところで実際のファイルを確認しましょう。/usr/sbinのaaaファイルを/tmp/restoreにリストアしました。sshで管理サーバにログインします。/tmp/restoreに移動します。

# cd /tmp/restore

次にリストアしたファイルが存在することを確認します。

# ls -l usr/sbin/aaa
-rw-r--r-- 1 root root 14  1月 17 15:00 usr/sbin/aaa

ディレクトリ構造は保持されるので/tmp/restore配下のさらにusr/sbinにaaaというファイルが出力されることになります。

その他のGUIツール

Baculum以外にもWebベースのGUI運用管理ツールがあります。現在(2017年1月)も開発が活発に行われているのはBacula-webというツールがあります。

Bacula-webのインストール手順や設定方法は割愛しますが、以下のサイトから詳細を確認できます。

Bacula-web
http://www.bacula-web.org/

こちらはインターフェイスが日本語対応しています。

次回はBaculaを便利に使うための設定値解説と題して、ディレクターデーモン、ストレージデーモン、ファイルデーモンの詳しい設定について解説し、さらにバックアップ対象サーバを追加していきます。

おすすめ記事

記事・ニュース一覧