« 複数のサーバのデータを1台のサーバにまとめてレプリケーションしたい! | トップページ | メルマガコラム再掲 フルと増分を組み合わせたスケジュールへの変更方法 »

2012年5月29日 (火)

ARCserve RHAからメールを受け取る!(2/3)

マサオミです。

東京は春を通り越して夏の陽気が出てきました。まだ湿度が低いので過ごしやすい。
今年は電力不足が深刻なので猛暑だけは勘弁いただきたいです。

-------------- [PR] ARCserveのオフィシャルFacebookページ ----------------

CA ARCserve Japan Official
https://www.facebook.com/arcservejp
毎週ARCserveに関連するクイズやFacebookのみの情報発信に加え、
皆さまとのコミュニケーションの場しても活用していきたいと考えておりますので、
是非「いいね!」クリックしてください!

-------------------------------------------------------------------

さて、前回はARCserve RHAでのメール通知の設定方法について解説しましたが、
今回はその続きになります。

第1回: 標準機能によるメール通知方法  (2012/5/22)
第2回: スクリプトを使ったメール通知方法  (←本日はここ)
第3回: スクリプトを使ったメール通知方法(応用編) (2012/6/5 掲載予定)

前回の最後にも少しだけ書きましたが、
「あれ?ポートの設定はどこでするの?」とか
「ユーザ名とかパスワードの設定は?」とか
いくつか疑問が残った方もいらっしゃるのではないでしょうか。

残念ながらARCserve RHAはまだSMTPのみ対応なのです。
SMTP認証とかサブミッションポートの設定とかができません。

-------------
(2013年3月21日追記)

r16.5でイベント通知機能が改善され、
SMTP認証やポートの設定ができるようになりました。

より便利になった ARCserve Replication/HA r16.5の新機能はこちら

-------------

とは言っても、外部のメールサービスを利用されている方もいらっしゃるでしょうし、
認証ができないと社内のメールサーバでも利用できない、という方も多いと思います。
25番ポートは迷惑メール対策のために閉じている(OP25B)というメールサーバも多くなってきました。

では、どうしたらいいか。

ARCserve RHAは通知設定で「スクリプトの実行」をサポートしていますのでこれを利用しましょう。
以下でご紹介するスクリプトは簡単に編集・メール送信が行えるように
PowerShellを利用しています。Windows Server 2008以降では
既に導入されているシェルスクリプトの環境なのでこれをそのまま利用します。

Windows Server 2008 R2よりも前のOSですと事前に設定する、ダウンロードする
などの準備が少々必要ですので、以下のブログ記事を参考にセットアップしてください。

<参考> CA PowerShell 講座 第1話: CA パワーシェルをインストールしよう
http://arcserve.txt-nifty.com/blog/2010/03/1-f573.html
【1】 Windows PowerShellのインストール を参照。
※CA ARCserve RHA PowerShellは今回インストールの必要はありません

では今回利用するスクリプトを準備します。拡張子は.ps1にしておいてください。
この.ps1を好きな場所に保存します。
(今回はc:\scriptsフォルダにsync-mail.ps1ファイルとして保存)

$EmailFrom ="<差出人メールアドレス>"
$EmailTo ="<宛先メールアドレス>"
$SMTPUser ="<認証するユーザメールアドレス>"
$SMTPPass ="<認証パスワード>"
$SMTPPort = 587
$SMTPServer = "<メールサーバ名>"

$Subject = "RHAからの通知"
$Body = "同期が終了しました"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
$SMTPClient.EnableSsl = $false
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPUser, $SMTPPass)
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

[解説]
スクリプトは同期終了後に「同期が終了しました」と本文に書かれたメールが飛んでくるという
単純なものにしています。メッセージ部分は好きに書き換えてください。
またサブミッションポート587番を利用し、SSLでの接続はしない設定にしています。
SSLを有効にする場合には $SMTPClient.EnableSsl を $true に変えてください。
その他、$EmailFrom, $EmailTo, $SMTPUser, $SMTPPass, $SMTPServerなども
適宜環境に合わせて変更してください。

で、後はARCserve RHA マネージャ画面でこのスクリプトを指定すれば実行できます!

・・・・と簡単に言いたいところなんですが、残念ながら.ps1ファイルの直接実行は
ARCserve RHAではできないんです・・・。

そこで、ちょっとした対策を行います。まず保存したスクリプトのショートカットを作ります。

mail2-1

作成したショートカットのプロパティを開き、[リンク先]の先頭部分に
powershell
と追記します。
(例: powershell.exe c:\scripts\sync-mail.ps1)

mail2-2

上記はWindows Server 2008 R2の設定なので
それ以外のOSでPATHに指定されていない場合には
powershell.exeの保存先のパスを直接指定してください。
(例: C:\Windows\system32\windowspowershell\v1.0\powershell.exe)

PowerShellで作ったスクリプトをダブルクリックで実行したい!という時にも
利用できる方法なんで覚えておいて損はないと思います。

このようにするとファイルのアイコンのマークがPowerShellのものに変わったと思います。
ここではショートカットの名前も元ファイルと同じ名前にしています。

mail2-3

さて、作成されたショートカットなんですが、このファイル自体の拡張子は.lnkです。
このショートカットファイルをARCserve RHAマネージャの実行するスクリプトのパスを
入力する画面で指定します。このスクリプトは同期後にメール通知を行う、ということを
想定していますので、「同期後にスクリプトを実行」を有効にして設定します。
(例: C:\scripts\sync-notify.lnk)

mail2-4

この設定を行った後、シナリオを保存して実行すると、
同期処理が終了するたびにメールによる通知が飛んできます。
メッセージの部分を好きに書き換えていただくだけでその他の通知にも利用できます。

いかがでしたでしょうか?
このようにARCserve RHAからのスクリプト実行でも通知を受け取ることができ、
SMTP認証やOP25Bが実施されている環境でも利用できます。
(ちなみにARCserve Backupでも同様のスクリプトを作れば利用できますよ!)

ただ、この方法は事前に設定した内容のメールしか飛びません。
ARCserve RHA自体が発しているメールを受け取りたい、という場合には
もう少し工夫が必要です。次回は応用編ということでその辺りについて解説したいと思います。

それでは、See you in next TT . . .

|

« 複数のサーバのデータを1台のサーバにまとめてレプリケーションしたい! | トップページ | メルマガコラム再掲 フルと増分を組み合わせたスケジュールへの変更方法 »

技術情報」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/553787/54811819

この記事へのトラックバック一覧です: ARCserve RHAからメールを受け取る!(2/3):

« 複数のサーバのデータを1台のサーバにまとめてレプリケーションしたい! | トップページ | メルマガコラム再掲 フルと増分を組み合わせたスケジュールへの変更方法 »