<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > 主要機能の構築 > アラーム > アラームのカスタマイズ > アラームメールを送信する |
概要
アラームメールを送信する場合、メールマスタと呼ばれるテキスト形式の設定ファイルに対してメール送信のための設定情報を定義するとともに、アラームマスタに対してメール送信用のフィールドを定義する必要があります。
アラームメールの送信はメールサーバを介して行われます。アラームサーバーアクションの設定画面では、いずれかのプロバイダのメールサーバと接続するためのメールサーバ名、ポート番号、アカウント、パスワードなどを、接続するメールサーバの認証方法にあわせて設定する必要があります。尚、FA-Panelにはメールサーバとしての機能は内蔵していません。別途、メールサーバを用意する必要があります。
ここでは、標準のアラーム機能に対して、アラームメールを送信するためのカスタマイズ方法について紹介します。
サンプルのダウンロード
このページで紹介されている作成例には、サンプルが用意されています。
サンプルは以下からダウンロードすることができます。
アラームメールの送信には、FA-Panelとは別に、別途メールサーバが必要となります。メールの送信が行えるメールサーバと接続できる環境を用意してください。
作業手順
■アラームマスタの編集
1.アラームマスタを開く
対象プロジェクトの以下のフォルダ配下にある「master.csv」を開いてください。
(プロジェクトフォルダ)\server\alarm\master.csv
以下は、変更前のアラームマスタの例です。
2.アラームマスタを編集する
アラームメールを送信する場合、アラームマスタにアラームメールフィールド([MAIL])を定義する必要があります。
MAILフィールドには、各アラームにおけるメールを送信するタイミングを定義することができます。メール送信のタイミングとは、発生時、復帰時、確認時などのアラームの各事象です。
以下は、MAILフィールドに指定可能なキーワードです。
キーワード |
内容 |
all
|
すべてのタイミングでメールを送信する。 |
new
|
発生時にメールを送信する。 |
recover
|
復帰時にメールを送信する。 |
ack
|
確認時にメールを送信する。 |
change
|
アラームの状態が変化したときにメールを送信する。 |
(ブランク)
|
本フィールドがブランクのアラームはメールを送信しない。 |
尚、上記の定義は、半角スペース区切りで複数列挙して記述することにより、組み合わせて定義することができます。
例えば、発生時と復帰時に送信したい場合は、「new recover」のように定義します。
ここでは例として、アラームマスタを以下のように編集してください。
上記では、列の末尾に [MAIL] フィールドを追加して、個々のアラームのメール送信タイミングを定義しています。
•ALARM-001 ・・・メール送信しない(ブランク)
•ALARM-002 ・・・発生時のみメールを送信(new)
•ALARM-003 ・・・発生時、復帰時にメールを送信(new recover)
尚、アラームマスタをExcelで編集する際には、CSV形式で保存してください。
以下は、メモ帳で編集した例です。
■メールマスタの編集
1.メールマスタを編集する
続いて、メールマスタの編集を行います。
サンプルプロジェクトには、以下のフォルダ配下に「mail_master.txt」が用意されています。
(プロジェクトフォルダ)\server\alarm_mail\mail_master.txt
サンプルのメールマスタには以下のような内容が記述されています。
[MailCondition]
[MailSubject] アラームメール
[MailSender] xxx@xxx.co.jp
[MailSendToName] xxx@xxx.co.jp (end)
[MailSendToNameCC] (end)
[MailSendToNameBCC] (end)
[MailAttachedFile] (end)
[MailHeader] ****************************** alarm e-mail. ****************************** (end)
[MailFooter] bottom of e-mail. (end)
[MailMessage] [DATESTR:%Y/%m/%d %H:%M:%S] & " " & [CM1] [ALARMID] & " " & [CM0] & " " & [TYPEJP] "--" (end) |
以下の部分を実際の環境にあわせて変更し、上書き保存してください。
[MailSender]
xxx@xxx.co.jp ←送信元メールアドレスを指定してください
[MailSendToName]
xxx@xxx.co.jp ←送信先メールアドレスを指定してください
(end)
尚、動作確認を行う際には、送信先メールアドレスの設定に自分自身のPCのメールアドレスなどの受信可能なアドレスを設定してください。
■アラームサーバアクションのメール設定
1.アラームサーバーアクションの設定画面を開く
Panel Serverの左ツリーからActionの下にあるAlarmを選択し、プロパティを開いてください。
2.アラームサーバーアクションのメール設定を行う
設定ダイアログから、メールの設定を行います。
画面上部にある「メール」タブをクリックしてください。
|
まず、メールマスタのフォルダを指定します。ここでは、先ほど編集したメールマスタが格納されているフォルダ「server\alarm_mail」を指定してください。
また、今回の例では、「複数のアラームが発生した場合、一回のメールにまとめて送る」にチェックを入れておきます。
メール設定の部分に、メールサーバとの接続に必要となる情報を設定します。実際の環境にあわせて設定を行ってください。
|
■メール送信用の定周期イベントの追加
続いて、アラームサーバーアクションのメール送信を呼び出すための定周期イベントを設定します。
1.定周期イベントを追加する
Panel Serverの左ツリーからEventを右クリックし、追加/定周期イベントを選択してください。
「E01」というイベントが新たに追加されました。
2.定周期イベントを設定する
追加された「E01」イベントのプロパティを表示し、以下の設定を行ってください。
まず、基本設定のタブから、名前を分かりやすい名称に変更します。
ここでは例として、「ALARM_MAIL」としておきます。
|
続いて、定周期イベントの周期を確認します。
今回はデフォルトの1秒周期のまま使用します。
|
続いて、実行アクションの設定を行います。
実行するアクションに「Alarm」を選択し、パラメータに「MAIL」と入力して追加ボタンをクリックしてください(※すべて半角文字の大文字で入力してください)。
設定が完了したら、OKボタンでダイアログを閉じてください。
|
動作確認
それでは、動作を確認してみましょう。
Panel Serverの画面上部にあるオンライン(黄矢印)をクリックしてください。
続いて、Panel Editorの画面上部にあるブラウザ実行アイコン(緑矢印)をクリックし、Panel Browserを呼び出します。
Panel Browserが起動したら、アラームの状態を確認できるようにアラームサマリ画面を表示しておきます。
又、アラームメールを受信できる環境を準備しておいてください。
サンプルのアラームマスタでは以下のように設定されており、U01.F01.M0000、M0001、M0002までのタグがアラームとして登録されています。又、MAILフィールドの設定では、M0000はブランク(メール送信なし)、M0001は new(発生時のみ)、M0002は new recover(発生時および復帰時)として設定されています。
Panel ServerからU01.F01.M0000にTrueを書き込んでください。
アラームサマリにM0000の軽故障が表示されましたが、M0000のアラームマスタのMAILフィールドはブランク(送信しない)となっているため、メールは送信されません。
続いて、Panel Serverから、U01.F01.M0001にTrueを書き込んでください。
アラームサマリにM0001の中故障が表示されました。
上記の発生により、アラームメールとして以下の内容が送信されます。
メールの内容がアラームサマリの表示内容と一致していることを確認してください。
****************************** alarm e-mail. ****************************** 2018/05/22 10:53:20 中故障 ALARM-002 アラーム002 発生 -- bottom of e-mail. |
続いて、Panel ServerU01.F01.M0001にFalseを書き込んでください。
アラームサマリにM0001の中故障が復帰し、確認待ちの状態になりました。
M0001のアラームマスタのMAILフィールドは「new」となっているため、発生時のみメールが送信されます。上記の復帰操作によるメールは送られてこない事を確認してください。
続いて、Panel ServerからU01.F01.M0002にTrueを書き込んでください。
アラームサマリのM0002の重故障が表示されました。
アラームメールとして以下の内容が送信されます。
メールの内容がアラームサマリの表示内容と一致していることを確認してください。
****************************** alarm e-mail. ****************************** 2018/05/22 11:00:54 重故障 ALARM-003 アラーム003 発生 -- bottom of e-mail. |
続いて、Panel ServerからU01.F01.M0002にFalseを書き込んでください。
アラームサマリのM0002の重故障が復帰し、確認待ちの状態になりました。
M0002のアラームマスタのMAILフィールドは「new recover」となっているため、発生時、復帰時それぞれのタイミングでメールが送信されます。今回の例では、以下のようなアラームメールが送信されます。
メールの内容がアラームサマリの表示内容と一致していることを確認してください。
****************************** alarm e-mail. ****************************** 2018/05/22 11:03:03 重故障 ALARM-003 アラーム003 復帰 -- bottom of e-mail. |
続いて、Panel ServerからU01.F01.M0001とM0002に、同時にTrueを書き込んでみてください。
すると、アラームサマリにM0001とM0002のアラームが表示されました。
アラームメールとして以下の内容が送信されます。
****************************** alarm e-mail. ****************************** 2018/05/22 11:08:42 中故障 ALARM-002 アラーム002 発生 -- 2018/05/22 11:08:42 重故障 ALARM-003 アラーム003 発生 -- bottom of e-mail. |
上記は、アラームサーバーアクションのメール設定で「複数のアラームが発生した場合、一回のメールにまとめて送る」にチェックを入れたために、複数のアラームが1つのメールにまとめて送信されたものです。本設定のチェックを外すと別々のメールに分けて送信されます。
補足説明
■メール送信用の定周期イベントについて
アラームメールを送信する場合、アラームサーバーアクションを定周期で呼び出すための通常のイベントとは別に、メール送信処理を呼び出すための定周期イベントを別途作成するようにします。
(メール送信呼び出し用の定周期イベント)
定周期イベントからの実行アクションの定義では、パラメータに「MAIL」を指定するようにします。アラームサーバーアクションはMAILパラメータ付きで呼び出される事によってメールの送信を行います。
尚、アラームメールの送信メッセージは、一旦、アラームサーバ側でメールキューに蓄えられる仕組みとなっています。アラームサーバはイベントからMAILパラメータ付きで呼び出される事によって、キューに存在するメッセージをもとにメールの送信を実行します。
|
■メールマスタについて
メールマスタは、メールの送信先情報やフォーマットを定義するテキストファイルです。メールマスタのファイル名にはとくに制限はなく、自由な名前を付けることができます。メールマスタはアラームサーバーアクションで指定したメールマスタ用のフォルダに格納します。このフォルダにはメールマスタ以外のファイルは配置しないでください。
尚、メールマスタは複数のファイルに分けて定義することもできます。メールマスタを複数用意して、各メールマスタの「MailCondition」を定義する事により、送信するメールのフォーマットや送信先を送信条件毎に切り替えることができます。例えば、メールマスタ1は中故障以上のメール( [CM2]>=2 )、メールマスタ2は重故障のみに限ったメール( [CM2]==3 )などのように定義し、それぞれの送信先メールアドレスを別々に定義するといった使い分けが可能となります。
以下は、メールマスタの定義における主な設定項目と設定例です。
設定項目 |
解説 |
||
[MailCondition]
|
メール送信条件を記述します。送信条件はフィールド名を使用して記述します。
例えば[CM3]がグループ番号をあらわすフィールドだとすると、グループ番号が10より大きいアラームのみ送信したい場合は、以下のように定義します。
[MailCondition] [CM3] > 10
また、[CM2]が重要度、[CM3]がグループ番号をあらわすフィールドの場合、グループ番号が10より大きく、かつ重要度が2のもののみ送信したい場合は以下のように定義します。
[MailCondition] [CM3] > 10 && [CM2]==2
このメール送信条件は、複数のメールマスターを作成してそれぞれ条件により異なる送信先のグループにメールを送信したい場合などに使用します。メールマスターが1つのみ(つまり送信先が1つのみ)の場合は、アラームマスタの[MAIL]フィールドでアラーム毎に送信するかどうかの条件を指定できるため、このメール送信条件の設定は必要ありません。[MailCondition]になにも記述がないと、アラームマスタの[MAIL]フィールドで指定したすべてのアラームメールが送信されます。
|
||
[MailSubject]
|
メールのタイトル(件名)を指定します。タイトルには全角文字を使用できませんのでご注意下さい。
例) [MailSubject] Alarm mail
|
||
[MailSender]
|
メール送信者を指定します。
例) [MailSender] xxx@xxx.co.jp
|
||
[MailSendToName]
|
メールの送信先のメールアドレスを指定します。複数の送信先を指定する場合、以下のように複数行に分けて記述します。このセクションの終わりの行は、必ず(end)とする必要があります(※CC、BCCについても同様のルールで記述します)。
例) [MailSendToName] xxx@xxx.co.jp yyy@xxx.co.jp (end)
|
||
[MailSendToNameCC]
|
メール送信先(CC)を指定します。表記方法は [MailSendToName] と同様です。
|
||
[MailSendToNameBCC]
|
メール送信先(BCC)を指定します。表記方法は [MailSendToName] と同様です。 |
||
[MailAttachedFile]
|
ファイル名を指定することで、指定したファイルをメールに添付して送信することができます。複数のファイルを添付したい場合は、ファイル名を以下のように列挙します。末尾は必ず(end)で終わらせます。
例) [MailAttachedFile] c:\xxx1.txt c:\xxx2.txt (end)
|
||
[MailHeader]
|
メールのヘッダ文章を指定します。メールの文章の先頭にヘッダ文章が付加されます。末尾は必ず(end)で終わらせます。
例) [MailHeader] ****************************************** *********** Alarm Mail *********** ****************************************** (end)
|
||
[MailFooter]
|
メールのフッター文章を指定します。メールの文章の末尾にフッター文章が付加されます。末尾は必ず(end)で終わらせます。
例) [MailFooter] ****************************************** ** 緊急連絡先 xxx-xxx-xxxx ** ****************************************** (end)
|
||
[MailMessage]
|
メールに含めるアラームメッセージのフォーマットを記述します。フォーマットの定義にはアラームのフィールド名を使用することができます。このセクションの終わりの行は、必ず(end)とする必要があります。
例) [MailMessage] [DATESTR:%Y/%m/%d %H:%M:%S] & " " & [CM1] [ALARMID] & " " & [CM0] & " " & [TYPEJP] "--" (end)
上記の例では、1行目に発生日時の後に警報レベルの文字列(重故障など)を半角スペース区切りで連結し、2行目にアラームID、コメント、アラームの事象を連結し、3行目にハイフン2文字「--」を入れて区切りとしています。尚、文字は & で連結することができます。
また、条件によりメッセージを変えたい場合には、以下のように「演算式構文」(「スクリプトマニュアル」「演算式構文」を参照)で記述することもできます。「演算式構文」を使用する場合はすべてを1行で記述する必要があります。もし、文章中に改行が必要な場合は以下のようにRET()を間に含めることで改行を指定できます。
例) [MailMessage] {[TYPE] == "new"}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & [CM0]},{[TYPE] == "recover"}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & [CM1]},{default}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & "状態が変化しました。"} (end)
|
||
[MailRetry] |
メール送信のリトライ回数を指定することができます。尚、本パラメータを指定しなかった場合は、メールの送信が成功するまでリトライを繰り返す動作となります。
例)メール送信が失敗する場合、リトライを5回行い、それでも送れなかった場合はメールを破棄する。 [MailRetry] 5
|
■参考)メールマスタの設定例
設定例1)
[MailCondition]
[MailSubject] Alarm1
[MailSender] xxx@xxx.co.jp
[MailSendToName] xxx@xxx.co.jp (end)
[MailSendToNameCC] (end)
[MailSendToNameBCC] (end)
[MailAttachedFile] (end)
[MailHeader] *************** ** Alarm Mail1 ** *************** (end)
[MailFooter] ************** TEL:xxx-xxx-xxx ************** (end)
[MailMessage] "■" & [DATESTR:%Y/%m/%d %H:%M:%S] [TYPEJP] & "," & [ALARMID] & "," & [CM0] & "," & [CM1] & [CM2] (end) |
設定例2)
[MailCondition]
[MailSubject] Alarm2
[MailSender] xxx@xxx.co.jp
[MailSendToName] xxx@xxx.co.jp (end)
[MailSendToNameCC] (end)
[MailSendToNameBCC] (end)
[MailHeader] *************** ** Alarm Mail2 ** *************** (end)
[MailFooter] ************** TEL:xxx-xxx-xxx ************** (end)
[MailMessage] {[TYPE] == "new"}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & [CM0]},{[TYPE] == "recover"}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & "状態が復帰しました。"},{default}{"■" & [DATESTR:%Y/%m/%d %H:%M:%S] & " AlarmID:" & [AlarmID] & RET() & "状態が変化しました。"} (end) |