>> はじめに |
|
このコーナーでは、NetVaultをまったく使用したことがない方でも、ステップ毎に導入することができるよう、順を追って解説していきます。
記念すべき第10回は通知機能を取り上げようと思います。いつものように、NetVault 7.1.0のインストールおよび仮想テープ・ライブラリの作成と登録を済ませておいてください。また、通知機能を使用するには、検証に使用するマシンから利用できるSMTPのメール・サーバと、通知の確認をするためのメールクライアントが必要です。
>> メールサーバの設定をしよう |
|
まず最初に、NetVault Configuratorを起動し、"通知"タブからメールの送信に使用するSMTPのサーバを設定します。
# nvconfigurator &
Mail Serverの設定では、SMTPの項目に利用可能なSMTPサーバのIPアドレスまたは、FQDNによるドメイン名等を入力します。"NetVaultの電子メール・アドレス"および"NetVaultの電子メール表示名"とあるのは、通知メールを受け取った時に表示される送信者のメール・アドレスおよび名前になります。存在しないアドレスでも入力することが可能ですが、運用の際には決められたポリシーに基づいて設定することをお勧めします。
次にGlobal Notificationの設定です。グローバル通知では、指定したシステム管理者に対してのみ通知を行います。通知を受けるシステム管理者のメールアドレスおよび表示名を入力します。もし複数通知したいアドレスがある際には、カンマ区切りにてエントリができるようになっています。
設定後は正しく通知ができるかどうか、NetVaultの通知の設定よりも前に、グローバル通知にて内部的に使用されているnvsendmailというコマンドを使用して確認します。コマンドのシンタックスは次の通りです。送付先やsubjectの指定が可能な事が確認できます。
USAGE: /usr/netvault/util/nvsendmail [-d <dest-address>] [-r <real-name>] [-s <s
ubject>] [-f <message-file>] [-a <attach-file>] [-m] [-n]基本構文:
- -d <dest_address>: 受け取り手のe-mail アドレス
- -r <real_name>: 受け取り手の実際の名前
- -s <subject>: e-mail の主題
- -f <message_text>: 送信するe-mail のメッセージ
追加で利用可能なコマンド:
- -a <attach_file>: e-mail に添付ファイルが必要な場合、このスイッチをつけて、目的のファイル名と正確なパスを入力します。
- -m: このスイッチで、mime-format を強制します。
- -n: このスイッチは指定すると、ホスト環境から必要なパラメータを取るようにする通知モードです。
宛先(-d)と件名(-s)のみ入力してとりあえず受信されることを確認してみます。
# /usr/netvault/util/nvsendmail -d xxxxxxx@bakbone.co.jp -s 'nvsendmail test'
メッセージがない為、件名だけが確認できますが、送信者が設定を行った内容であることがわかります。とりあえず動作することがわかりました。もしメールが届かない場合には、メールサーバ側の設定によるところなどもあるかと思います。
>> グローバル通知の設定 |
|
設定を行うには、NetVault GUIのトップにある管理メニューから、グローバル・ノーティフィケーションを選択します。ウィンドウが表示されたらメニューからツリー構造になっているため、希望の設定項目にチェックを入れる仕組みです。
デフォルトで、いくつかのイベントにチェックが入っています。項目の上に○印があるところが、設定済みの項目になります。
早速、通知設定を行ってみます。最初は、ジョブが失敗した際に通知を行うよう設定してみます。"Job > Job failed"の順に階層を降りていくと、下記4種類の通知選択が可能になっています。
- Sysop E-mail: NetVault管理者にメールを送る
- Sysop Operator message: オペレータメッセージにメッセージを送信(Statusウィンドウ)
- Print Report: OSのデフォルトプリンタに出力
- Run a job: イベントが発生した際に、指定したジョブを実行
このなかでも、特にE-mailでの通知を受けるという機能がもっとも一般的な活用方法です。
仮にE-mailを受信したい場合、あとは単にチェックを入れ、ウィンドウ左上にある保存ボタンを押すことで設定は完了します。
せっかく設定したので、あとはジョブを失敗させるのですが、普通に考えると少し難しいです。一番簡単な方法は、プレスクリプト等を使用する設定にしながら、実際には存在しないスクリプト名を入力することです。こうすることで、スクリプト実行のエラーになり、通知の確認が可能です。バックアップ対象を適当に選択し、あとはすべてデフォルトのまま、スクリプトの項目だけ入力します。
ジョブ管理から確認してみると、Backup Failedになっていることが確認できます。
メールを正常に受信できたら、内容を確認します。内容はシンプルですが、失敗の状況が伝えられています。
>> 通知機能はカスタマイズができる! |
|
通知は送られてきたけど、少し味気ないし英語ではね、という方はカスタマイズしてみてはいかがでしょう?
グローバル通知は、スクリプトより構成されており、/usr/netvault/scripts/global以下に格納されています。
[root@demo1rh9 root]# cd /usr/netvault/scripts/global/
[root@demo1rh9 global]# ls -al *.sh
-rwxr-xr-x 1 root root 565 6月 23 13:57 sysmail.sh
-rwxr-xr-x 1 root root 424 6月 23 13:57 sysopmessage.sh
-rwxr-xr-x 1 root root 486 6月 23 13:57 sysprint.sh
-rwxr-xr-x 1 root root 844 6月 23 13:57 sysrunjob.sh
E-mail送信に使用したスクリプトはsysmail.shになります。スクリプト処理で柔軟な対応が可能なため、カスタマイズの例として英語のメッセージの日本語化に挑戦してみましょう。マニュアルには、細かい仕様もかかれているのですが、面倒な場合には今までのスクリプトをコピーして編集することで手間が省けます。
[root@demo1rh9 global]# cp ./sysmail.sh ./sysmailjp.sh
[root@demo1rh9 global]# vi ./sysmailjp.sh
修正には若干シェルスクリプトの知識が必要になりますが、ポイントはNVNAMESTARTとNVNAMEENDという文字列に囲まれた部分が、グローバル通知に表示される名前になりますので、変更します。また、デフォルトでは"$NVHOME/util/nvsendmail -n"の一文でメッセージを送信しているところを、自分で日本語で書いています。送信に使用するメッセージをテキストに落とし、そのファイルを指定してnvsendmailを実行しています。"|nkf -j"を使用しているのは、LinuxはEUCを使用していますが、E-mailはJISで送信しなければならないため、コード変換をしています。もう少し上手な方法もあるとは思いますが、基本的な動作については理解していただけると思います。
スクリプトの作成が完了したら、グローバル通知のプロファイルを見てみると、作成した名前"Sysop E-mail JP"として新しく項目ができているのがわかります。この例では、Jobが正常に終了したらE-mailを送るようにしています。そのため、設定を保存し今度は正常に稼動するジョブを適当に実行してみると、先ほどとは異なったメッセージが表示されました。
例としては、あまり適切ではなかったかもしれませんが、イメージをつかんで頂ければ幸いです。なお、これらの自作されたスクリプトの動作についてはバックボーン・ソフトウエアでは一切保証しておりません。応用としては、例えば外部のパトライト・システムと連動して、障害時には回転灯で視覚的にわかるようにするなども原理的に可能です。
>> レポート機能との統合 |
|
通知機能だけ使用する場合は、それほど多彩な情報を送信することはできませんが、NetVaultの持つHTMLベースのレポート機能を組み合わせることで、より多くの情報を視覚的にわかりやすく送信することができます。
レポート機能のご紹介については、今後にご期待ください。
>> 次回は・・ |
|
通知には実はもう一種類あります。それは、ユーザーを作成して、そのユーザー毎に通知を行う機能です。この機能は、アクセス・コントロールによってアカウントを作成し、その後特定の権限のみを特定ユーザーに付与する機能と連携させて使用します。次回は、このあたりをご説明しようと思います。お楽しみに!