Enterprise 技術情報 Enterprise Technical information
外部との連携 メールを送信する
サーバー監視でエラーが発生した場合は、ルーチンの処理の成否など、運用の現場では処理の結果を把握しておきたいケースが多々あります。今回の記事ではKompiraからメールを用いて通知を行う方法をご紹介します。
動作確認環境
ソフトウェア | バージョン |
---|---|
Kompira | 1.4.10.post10 |
LinuxOS | CentOS6.10 |
または
ソフトウェア | バージョン |
---|---|
Kompira | 1.5.5.post7 |
LinuxOS | CentOS7.8.2003 |
今回の記事では「簡単なWebサーバーの監視をする」ジョブフローを利用し、エラーが発生した場合には指定の担当者にメールで通知するジョブフローを作っていきます。
Kompiraよりメールを送信する際にはmailto()を使用します。ここで文字列で記載された表題、文面などで指定されたアドレスに送信されます。
mailto( to = "tantou@sample.co.jp", from = "operator@sample.co.jp", subject = "障害通知", body = "障害が発生しました。")
このように各項目に指定をすると”tantou@sample.co.jp”宛にメールが送信されます。
mailto()の引数は以下の様なものがあります。各項目の詳細はKompiraドキュメントを参照ください。
mailto( to, # 宛先 from, # 発信元 subject, # 表題 body, # 本文 ### 以降はオプション [cc, # cc先アドレス bcc, # bcc先アドレス reply_to, # 返信先のメールアドレス html_content, # htmlメールを送信する際の本文 attach_files, # 添付ファイル parents, # 親メッセージ(mail_parseした結果の辞書)を渡すと、そのメッセージに対する返信としてのメールを送信 headers, # メールヘッダの追加項目 reply_to_all, # parents でメールを返信する際にtrueを指定すると、「全員に返信」扱いで送信 inline_content, # 添付ファイルをインライン展開 as_string # 実際に送信するかわりに、メールヘッダを含むメッセージ全体を文字列化 ])
さて、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認証設定などを別途行う必要があります。
スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する