bounceHammer has been EOL'ed on February 29, 2016

製品ライフサイクルの終了

2010年3月にオープンソースソフトウェアとして公開して以来、多くのユーザ様・企業様にダウンロードし、 ご利用いただきましたbounceHammerは、2016年2月29日(月)を持ちまして製品ライフサイクルの終了(EOL: End Of Life) となりました。長きにわたりbounceHammerをご使用いただき誠に有り難う御座いました。 開発元では後継となるバウンスメール解析ライブラリとして、より高精度で高速なSisimai(シシマイ) を二条項BSDライセンスで公開しています。

Sisimai
商用サポート

  • 1一式導入・設定・保守・開発の補助
  • 2独自MTA用解析モジュールの開発
  • 3個別案件の対応とメールサポート
  • 4バウンス管理・運用コンサルティング
  • 5スポット解析・解析済みデータ提供

WebUI/日々の更新記録

 

解析されたデータの記録数

bounceHammerは解析したバウンスメールを構造化したデータとして出力し、 databasectl コマンドがデータベースへの書き出しを行い、バウンス記録として蓄積します。

bounceHammer 2.5.0から登場した新機能DailyUpdates(日々の更新記録)は、 databasectlコマンドが 処理したバウンスの数を、それぞれ処理結果に基づいてデータベース(t_dailyupdatesテーブル)に記録します。

記録された数値は、 summarizer --dailyupdates で参照したり、表計算ソフトで分析・加工するためにCSV形式で出力したり、 WebUI(ブラウザベースの管理画面)で参照する事が出来ます。

WebUI(管理画面)用CGIを設置している場合は、ブラウザで見たほうが見やすいでしょう。 InternetExplorer以外のブラウザで見た場合はページ上部にグラフが表示されます。

記録される数値と各項目

thedate - 日付

thedateは、バウンスが発生した日の日付をYYYY-MM-DDの形式で文字列として保持しています。

inserted - 新規登録数

insertedは、その日に発生したバウンスのうち、 データベースに新規登録した数として記録されます。

bounceHammerのデータベースは、発信者アドレスと宛先アドレスの 組み合わせを基準として記録します。 データベース上にまだ記録されていない宛先アドレスがバウンスした場合、 あるいはデータベース上に存在する宛先アドレスと別の発信者アドレス (複数のFromアドレスを使用している場合)の組み合わせでバウンスした場合、 このinsertedの数値として記録されます。

宛先アドレスと発信者アドレスの組み合わせについては データ構造 のページ最下部、tokenの項目を確認してください。

updated - 既存更新数

updatedは、その日に発生したバウンスのうち、 データベースに存在する同じ宛先アドレスと発信者アドレスの組み合わせを更新した数 として記録されます。

前述通り、bounceHammerのデータベースは、 発信者アドレスと宛先アドレスの組み合わせを基準として記録します。

同じ組み合わせがある場合は

その日に発生したバウンスのうち、既にデータベース上に同じ宛先アドレスと 発信者アドレスの組み合わせであるバウンス記録が存在する場合、 bounceHammerdatabasectl コマンドは、Frequency(差戻回数)を1増やし、bounced(バウンスした日時)やエラー理由等を 新しいデータで上書きします。updatedはその上書きをした数として記録されます。

Frequency(差戻回数)やbounced(バウンス日時)については データ構造 のページのfrequency,bouncedの項目を確認してください。

skipped - 処理省略数

skippedは、その日に発生したバウンスのうち、 データベースに存在する同じ宛先アドレスと発信者アドレスの組み合わせを更新 しなかったとして記録されます。 つまり前述のupdatedの対象となりながらもデータベースの記録を更新しなかった数です。

更新しない理由

bounceHammerがデータベース上に存在する同じ宛先アドレスと 発信者アドレスの組み合わせのバウンス記録を更新しない理由はいつくかありますが、

  1. databasectl コマンドが処理をするバウンス記録が、データベース上にあるものよりも古い場合 (古いデータで上書きしない為)
  2. バウンスした発信者アドレスのドメイン部分が、データベースの発信者ドメイン (senderdomains)テーブルに存在しない(管理下にないドメインのバウンス記録は書き込まない)

の2点が更新をしない主な理由です。skippedはこれらに該当した場合の更新しなかった数として記録されます。

failed - 処理失敗数

failedは、その日に発生したバウンスをデータベースに記録する過程で、 databasectl コマンドが処理に失敗した数を記録します。

通常はこの項目の数値が1以上になることはありません。 この項目に1以上の数値が記録されている場合、なんらかのエラーが発生した事を意味します。

executed - コマンド実行回数

executedは、 databasectl コマンドを実行した回数を記録します。後述の推定バウンス数を算出するため だけに使用されます。

estimated - 推定バウンス数

estimatedは、その日に発生したバウンスの推定値を表します。 この項目はデータベース上にはカラムとして存在しません。 summarizer --dailyupdates が出力する結果、またはWebUI(管理画面)を出力する段階で数式: 新規登録数(inserted) + 既存更新数(updated) + 処理省略数(skipped) / コマンド実行回数(executed) によって算出されます。

推定値?

推定とあるのは、 databasectlコマンドが、 同じバウンス記録のログファイル(YAML)を複数回処理した場合に、 処理省略数(skipped)が実行回数分だけ増大しする為です。 運用段階で同じバウンス記録のログファイルを複数回処理をしないようにしていれば、 この数値はほぼ正確なその日のバウンス数を表します。

modified - 最終更新日

modifiedは、その日のバウンス記録を最後に更新した日を表します。 例えば古いバウンスメールを解析して、その解析結果が2005/04/29のものであった場合、 そのバウンス記録を2010/08/31に databasectl コマンドで処理すると、処理された数は thedateが2005-04-29になっている各カラムに記録され、 その行のmodifiedは2010/08/31の処理時間(UNIX時間)となります。

コマンドラインツールでは

bin/databasectl コマンドに-vをたくさん、あるいは-B(--batch)オプションを付けて実行すると、 inserted(新規登録数)・updated(既存更新数)・skipped(処理省略数)・failed(処理失敗数)が表示されます。

databasectlコマンドを実行しても記録がデータベースに入らない・更新されない場合は -B, -vオプションを付けてその場で確認するとよいでしょう。