MeterMaid 的配置儲存於 msg.conf 中,由 configutil 維護。以下是 MeterMaid 目前支援的設定。預設值位在括號中。如需 MeterMaid 參數的完整清單,請參閱「Sun Java System Messaging Server 6.3 Administration Reference」中的「configutil Parameters」。
local.metermaid.enable 在即將執行 MeterMaid 常駐程式的系統上,此設定必須設為 yes,使 Watcher 能夠啟動和控制 MeterMaid。
logfile.metermaid.* 這些設定與 IMAP、POP 與其他服務所使用的設定相同。依預設,MeterMaid 會將其記錄檔寫入 msg-svr-base/data/log/metermaid 中
metermaid.config.listenaddr (INADDR_ANY ) MeterMaid 應連結的位址。在大部分的系統上均無需變更預設值,但在負載平衡或 HA 系統上,則建議您指定適當的位址。
metermaid.config.maxthreads (20) MeterMaid 伺服器是多重執行緒的伺服器,其中具有可進行作業排程的執行緒處理區。此值可設定 MeterMaid 所能使用的執行緒數上限。在 CPU 數量超過 4 個的系統上增加此值,可提升整體的流量。
metermaid.config.port (63837) 此為 MeterMaid 偵聽連線及 MeterMaid 用戶端所將連接的連接埠。
metermaid.config.secret (無預設值;必須提供其值) 為認證內送的連線,MeterMaid 會使用用戶端在連線至 MeterMaid 時所傳送的共用機密。
metermaid.config.serverhost (無預設值;必須提供其值) 此為用戶端將連線的主機名稱或 IP 位址。此值可能與 metermaid.config.listenaddr 相同,但通常會具有特定值將用戶端導向 Messaging Server 環境中的某個特定系統。
這些設定由 check_metermaid 用戶端使用:
metermaid.mtaclient.connectfrequency (15) 會每隔 connectfrequency 秒嘗試進行連線。當用戶端需要連線至 MeterMaid 時,會使用此設定作為內部節流,以避免 MeterMaid 無法使用時仍持續嘗試連線。用戶端無法與 MeterMaid 通訊時,會將「失敗」狀態傳回至 MTA 對映引擎,指出 MeterMaid 未封鎖此連線。
例如,如果 check_metermaid.so 嘗試連線至 MeterMaid,但是因為某些原因而失敗,則在 metermaid.mtaclient.connectfrequency 指定的下一次 N 秒期間,不會再進行任何嘗試。這可避免 check_metermaid.so 過度頻繁嘗試連線至沒有作用的 MeterMaid。
metermaid.mtaclient.connectwait (5) 用戶端等待連線至 MeterMaid 時 (初始連線或重複使用其他已建立的連線),會在等待 connectwait 秒後,才傳回失敗狀態,並允許此連線繼續進行。
metermaid.mtaclient.debug (否) 若啟用此選項,即會將用戶端的除錯資訊列印至伺服器或 SMTP 伺服器的執行緒特定記錄檔。
metermaid.mtaclient.maxconns (3) 為支援多重執行緒伺服器,用戶端可維護 MeterMaid 連線的處理區。透過此作業將可提升通訊期間的同步運作性。但由於 MeterMaid 所執行的內部鎖定,對特定表格的存取將限定為一次一個請求,因此單一處理程序的多重連線只能提供有限度的好處。
metermaid.mtaclient.readwait (10) 在與 MeterMaid 進行通訊時,用戶端將等候 readwait 秒,才會傳回失敗狀態,並允許此連線繼續進行。
最後,節流表也定義於此處顯示的 msg.conf 中。每個配置參數中的 * 代表所定義之特定表格的名稱。以名為內部的表格為例,第一個參數將是 metermaid.table.internal.data_type。
metermaid.table.*.data_type (字串) MeterMaid 在其表格中支援兩種資料類型,即字串與 ipv4。字串資料限定為每個項目 255 個位元組,並且可使用區分大小寫或不區分大小寫的函數進行比較 (請參閱下方的 metermaid.table.*.options)。
metermaid.table.*.max_entries (1000) MeterMaid 初始化每個表格時,皆會預先配置此數量的項目。MeterMaid 會自動回收舊項目,即使尚未過期亦然。接收到新連線時,MeterMaid 會重複使用最舊的已存取項目。站點應指定足夠高的值,以快取在 quota_time 期間所接收的連線。
metermaid.table.*.options 是以逗號分隔的關鍵字清單,用以定義表格的運作方式或特性。有效的關鍵字包括:
nocase — 使用資料時,會以不區分大小寫的比較函數執行所有比較。(此選項僅適用於字串資料。)
penalize — 在 quota_time 秒後,節流通常會將連線計數重設為 0,若已啟用減額選項,節流即會依配額降低連線計數 (但不低於 0),使其他連線嘗試減少之後的 quota_time 期限。例如,若配額為 5,quota_time 為 60,而系統在第一分鐘接收到 12 個連線嘗試,則會接受前 5 個連線,而拒絕接下來的 7 個連線。經過 60 秒後,針對特定位址所計算的連線數將會降低為 7,仍將其維持在配額以上,而拒絕連線嘗試。假設後續又有其他連線嘗試產生,則在接下來的 60 秒期限後,連線數將進一步降低為 2,此時 MeterMaid 將再次允許連線嘗試。
metermaid.table.*.quota (100) 接收到的連線會依據配額進行計數。若在 quota_time 秒內接收到的連線數超過此值,MeterMaid 即會拒絕連線。(內送連線所受到的實際影響由對映表所控制,此影響所產生的結果可能是進一步的審查、延遲或拒絕連線。)
metermaid.table.*.quota_time (60) 可指定依據 quota 計算連線數的秒數。經過此秒數後,針對內送位址計算的連線數將根據此表格的 type 降低。
metermaid.table.*storage (雜湊) MeterMaid 可使用兩種不同的儲存方法,即雜湊與延伸。建議使用預設的雜湊表方法,但在特定情況下,延伸樹狀結構或許可提供較快的查詢。
metermaid.table.*.type (throttle) 目前 MeterMaid 唯一支援的表格類型為 throttle。此類型的表格可追蹤資料 (通常為 IP 位址),並會在 quota_time 秒期間內將內送的連線節流為 quota 個連線。