紛失した定期的な電子メールを検出するための監視警報システムの設計[閉じる]

紛失した定期的な電子メールを検出するための監視警報システムの設計[閉じる]

特定の定期的なメールが届かない場合は、自動的に通知(電子メール経由)を受信する方法についてのアイデアを探しています。電子メールを生成したシステムに必ずアクセスできるわけではありません。

最近の実際のユースケースでは、毎日約6人の技術者と管理者に要約レポートを送信し、数十のサイトの場所のシステムステータスを提供しました。アラートを送信する2番目のチャネルがありますが、このレポートでのみ検出できるメンテナンスの問題がたくさんあります。

昨夜、私はレポートを生成するスクリプトが数週間前に動作を停止したことを発見しました。誰も気づかなかった。関係者の90〜100%が自分の仕事に非常に巧みで興味を持っていますが、情報過負荷の端にあるという事実に気づいていない人(または含む)を非難するのに多くの時間を費やす前に理解してください。私は何十もの重要でない電子メールの1つが到着しないときに人々がそれに気づかないことが人間の本性だと思います。それが来たら、我々はそれを見直し、良い結果を得るように導くように見えますが、それは来ません。心理的な誘発要因はありません。私たちは電子メールを認識し、それに応じて措置を講じますが、電子メールが不足していることについては認識して行動しません。

現在の私の考えは、監視したいレポートEメールを別の「ウォッチャー」Eメールアドレスに送信することです。その後、スタンドアロンコンピュータがあります。クラウドに2つのRaspberry PiまたはVMを置いて長い間電子メールを受信できなかった場合は、電子メールを受信して​​警告を送信することもできます。電子メール監視タイマーに似ています。

似たようなものがすでに存在し、正しい検索語がないため、誰かが私にこの情報を伝えることができますが、他の人がこの情報にアクセスする方法についての提案にも興味があります。今はプロのスクリプトの方向に進んでいますが、より一般化することに興味があります。

答え1

procmailツールにアクセスできると仮定すると、何かを見て組み合わせることができますcron。そうでない場合は、特定の電子メールが届いたときにシェルコマンドを実行できるすべてのものが非常によく似た操作を実行できるはずです。

まず、監視する電子メールと一致するprocmail(または使用する他のメールフィルタリングツール)ルールとtouchウォッチャーファイルを設定します。このcフラグを使用すると、ルールが電子メールのコピーを処理し、一致するものがあっても処理を継続するため、電子メールが失われることはありません。

:0 c
*^Subject: Regular Report
| /usr/local/bin/regular-report-received.sh

touch次に、ユーザー所有ファイルにスクリプトを作成し、次のように保存します/usr/local/bin/regular-report-received.sh

#!/bin/bash
touch ~/.regular-report-received

(これはprocmailルール内で行うことができますが、私はすべてを別々に保つのが好きなので、ここにいます。)

次に、ファイルが最近変更されたか定期的にチェックするcronジョブが必要です。たとえば、各ユーザーに対して次のことができます。

 @daily /usr/local/bin/is-regular-report-received.sh

そう/usr/local/bin/is-regular-report-received.shです。

#!/bin/bash
STALE_IF_BEFORE=$(date --date='-36 hours' +%s)
FILE_TIMESTAMP=$(stat -c '%Y' ~/.regular-report-received)
test "${FILE_TIMESTAMP}" -gt "${STALE_IF_BEFORE}" || printf 'Report not received!\n'

これが完了すると、cron過去36時間にレポートを受け取らなかった各ユーザーに真夜中に電子メールが送信されます。

口当たりに合わせて調節してください。

関連情報