サーバ監視でエラーが発生した場合は、ルーチンの処理の成否など、運用の現場では処理の結果を把握しておきたいケースが多々あります。今回の記事では Kompira からメールを用いて通知を行う方法をご紹介します。
動作確認環境
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.4.10.post10 |
OS | CentOS 6.10 |
または
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.5.5.post7 |
OS | CentOS 7.8.2003 |
または
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.6.2.post4 |
OS | CentOS 8.2.2004 |
または
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.6.8 |
OS | CentOS Stream 8 |
今回の記事では「簡単な Web サーバの監視をする」ジョブフローを利用し、エラーが発生した場合には指定の担当者にメールで通知するジョブフローを作っていきます。
Kompira よりメールを送信する際には mailto() を使用します。ここで文字列で記載された表題、文面などで指定されたアドレスに送信されます。
mailto( to = "tantou@sample.co.jp", from = "operator@sample.co.jp", subject = "障害通知", body = "障害が発生しました。" )
このように各項目に指定をすると “tantou@sample.co.jp” 宛にメールが送信されます。
mailto() の引数は以下の様なものがあります。各項目の詳細は Kompira ドキュメントを参照ください。
※Kompira Enterprise のバージョンによっては使用できないオプションもあります。
mailto( to, # 宛先 from, # 発信元 subject, # 表題 body, # 本文 ### 以降はオプション cc, # cc 先アドレス bcc, # bcc 先アドレス reply_to, # 返信先のメールアドレス html_content, # html メールを送信する際の本文 attach_files, # 添付ファイル parents, # 親メッセージ( mail_parse した結果の辞書)を渡すと、そのメッセージに対する返信としてのメールを送信 headers, # メールヘッダの追加項目 charset, # 文字コード reply_to_all, # parents でメールを返信する際に true を指定すると、「全員に返信」扱いで送信 inline_content, # 添付ファイルをインライン展開 as_string, # 実際に送信するかわりに、メールヘッダを含むメッセージ全体を文字列化 smtp_server # 利用するSMTP サーバ )
さて、Web サーバの監視ジョブフローは次のようなものでした。
| url = "http://www.kompira.jp/" | urlopen(url) => { if $STATUS != 0 | then: print("異常が検出されました") elif $RESULT.code != 200: print("異常が検出されました。エラーコードは %{code}" % $RESULT) else: print("正常です") }
ここで print() での表示の代わりに mailto() で置き換えてみましょう。
| url = "http://www.kompira.jp/" | urlopen(url) => { if $STATUS != 0 | then: mailto( to="tantou@sample.co.jp", from="operator@sample.co.jp", subject="障害通知", body="異常が検出されました" ) elif $RESULT.code != 200: mailto( to="tantou@sample.co.jp", from="operator@sample.co.jp", subject="障害通知", body="異常が検出されました。エラーコードは %{code}" % $RESULT ) else: mailto( to="tantou@sample.co.jp", from="operator@sample.co.jp", subject="正常通知", body="特に異常は認められませんでした。" ) }
このようにしてジョブフローの処理結果の通知などをメールで送信する事が出来ます。
mailto ジョブで送信したメールの User-Agent ヘッダは “Kompira verX.XX” となります。”X.XX” の部分は Kompira のバージョンが入ります。
また、メールの送信は Kompira サーバの postfix を通じて行われます。 Kompira からの通知メールが迷惑メールに振り分けされるような場合には、spf 認証設定などを別途行う必要があります。