以下工具可用於進行監視:
immonitor-access 監視以下 Messaging Server 元件/程序的狀態︰郵件傳送 (SMTP 伺服器)、郵件存取和儲存 (POP 和 IMAP 伺服器)、目錄服務 (LDAP 伺服器) 和 HTTP 伺服器。此公用程式可測量各項服務的回應時間,以及傳送和擷取郵件所佔用的往返總時間。此公用程式可透過在目錄中查詢指定使用者並測量回應時間來監視目錄服務;還可透過傳送郵件 (SMTP) 來監視郵件遞送,以及透過擷取郵件來監視郵件存取和儲存。監視 HTTP 伺服器僅限於確定該伺服器是否連線良好以及是否在執行中。
如需完整說明,請參閱 「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「immonitor-access」。
stored 公用程式在伺服器上執行維護作業,還可執行監視作業。但是,現在 msprobe 將監視作業處理得更好。請參閱使用 msprobe 和 watcher 功能進行監視。
此公用程式可提供從各種系統計數器獲得的統計資料。以下是目前可用計數器物件的清單:
每個項目代表一個計數器物件並提供此物件的各種有用計數。本小節中僅論述 alarm、diskusage、serverresponse、db_lock、popstat、imapstat 以及 httpstat 計數器物件。如需有關 counterutil 指令用法的詳細資訊,請參閱 「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「counterutil」。
counterutil 擁有多種旗標。此公用程式的指令格式可能如下所示:
counterutil -o CounterObject -i 5 -n 10
其中
-o CounterObject 表示計數器物件 alarm、diskusage、serverresponse、db_lock、popstat、imapstat 以及 httpstat。
-i 5 指定 5 秒的間隔時間。
-n 10 表示反覆運算次數 (預設為︰無限)。
counterutil 用法的範例如下:
# counterutil -o imapstat -i 5 -n 10 Monitor counteroobject (imapstat) registry /gotmail/iplanet/server5/msg-gotmail/counter/counter opened counterobject imapstat opened count = 1 at 972082466 rh = 0xc0990 oh = 0xc0968 global.currentStartTime [4 bytes]: 17/Oct/2000:12:44:23 -0700 global.lastConnectionTime [4 bytes]: 20/Oct/2000:15:53:37 -0700 global.maxConnections [4 bytes]: 69 global.numConnections [4 bytes]: 12480 global.numCurrentConnections [4 bytes]: 48 global.numFailedConnections [4 bytes]: 0 global.numFailedLogins [4 bytes]: 15 global.numGoodLogins [4 bytes]: 10446 ... |
這些 alarm 統計參照由 stored 傳送的警示。該警示計數器提供以下統計︰
表 23–1 counterutil alarm 統計
字尾 |
說明 |
---|---|
alarm.countoverthreshold |
超過臨界值的次數。 |
alarm.countwarningsent |
傳送的警告數目。 |
alarm.current |
目前監視的值。 |
alarm.high |
記錄的最高值。 |
alarm.low |
記錄的最低值。 |
alarm.timelastset |
上次設定目前值的時間。 |
alarm.timelastwarning |
上次傳送警告的時間。 |
alarm.timereset |
上次執行重設的時間。 |
alarm.timestatechanged |
上次變更警報狀態的時間。 |
alarm.warningstate |
警告狀態 (yes[1] 或 no[0])。 |
可以使用指令 counterutil -oCounterObject -i 5 -n 10 取得目前 IMAP、POP 以及 HTTP 連線數、失敗登入數、自啟動時間以來的總連線數等的資訊。其中,CounterObject 表示計數器物件 popstat,imapstat 或 httpstat。imapstat 字尾的涵義顯示在表 23–2 中。popstat 和 httpstat 物件可以使用相同的格式和結構提供相同的資訊。
表 23–2 counterutil imapstat 統計
字尾 |
說明 |
---|---|
currentStartTime |
目前 IMAP 伺服器程序的起始時間。 |
lastConnectionTime |
上次接受新用戶端的時間。 |
maxConnections |
IMAP 伺服器處理的並行運作連線的最大數目。 |
numConnections |
目前 IMAP 伺服器服務的連線總數。 |
numCurrentConnections |
目前使用中連線的數目。 |
numFailedConnections |
目前 IMAP 伺服器服務的失敗連線數目。 |
numFailedLogins |
目前 IMAP 伺服器服務的失敗登入次數。 |
numGoodLogins |
目前 IMAP 伺服器服務的成功登入次數。 |
指令:counterutil -o diskusage 產生以下資訊︰
表 23–3 counterutil diskstat 統計
字尾 |
說明 |
---|---|
diskusage.availSpace |
磁碟分割區中的可用空間總量。 |
diskusage.lastStatTime |
上次取得統計資料的時間。 |
diskusage.mailPartitionPath |
郵件分割區路徑。 |
diskusage.percentAvail |
磁碟分割區可用空間百分比。 |
diskusage.totalSpace |
磁碟分割區中的空間總量。 |
指令:counterutil -o serverresponse 產生以下資訊:此資訊對於檢查伺服器是否正在執行以及伺服器的回應速度非常有用。
表 23–4 counterutil serverresponse 統計
字尾 |
說明 |
---|---|
http.laststattime |
上次檢查 http 伺服器回應的時間。 |
http.responsetime |
http 的回應時間。 |
imap.laststattime |
上次檢查 imap 伺服器回應的時間。 |
imap.responsetime |
imap 的回應時間。 |
pop.laststattime |
上次檢查 pop 伺服器回應的時間。 |
pop.responsetime |
pop 的回應時間。 |
ldap_host1_389.laststattime |
上次檢查 ldap_host1_389 伺服器回應的時間。 |
ldap_host1_389.responsetime |
ldap_host1_389 的回應時間。 |
ugldap_host2_389.laststattime |
上次檢查 ugldap_host2_389 伺服器回應的時間。 |
ugldap_host2_389.responsetime |
ugldap_host2_389 的回應時間。 |
郵件傳送伺服器記錄 SMTP、IMAP、POP 和 HTTP 的事件記錄。您可以自訂建立和管理 Messaging Server 記錄檔的策略。
由於記錄可影響伺服器效能,因此在要求伺服器承擔這項重任以前應仔細考量是否需要記錄。請參閱第 21 章, 管理記錄,以取得更多資訊。
MTA 根據郵件監視 MIB 和 RFC 1566 為每個使用中的通道累積郵件通訊量計數器。通道計數器旨在為您指示電子郵件系統的趨勢和運作狀況。通道計數器並不用於提供精確的郵件通訊量計數。如需精確計數,請參閱 MTA 記錄 (第 21 章, 管理記錄中有說明)。
MTA 通道計數器使用最輕的可用機制實作,因此它們在實際作業中產生的影響非常小。通道計數器不難嘗試:如果嘗試對映區段失敗,則不會記錄任何資訊;如果區段中的其中一個鎖定無法立即獲得,則不會記錄任何資訊;系統關閉時,內部記憶體區段中包含的資訊將永遠遺失。
imsimta counters -show 指令提供 MTA 通道郵件統計 (參閱以下內容)。需要不斷檢查這些計數器,同時請注意顯示的最小值。某些通道的最小值實際上可能為負數。負值表示在通道計數器設定為零時 (例如,建立了計數器的叢集寬度資料庫) 為該通道形成了郵件佇列。當這些郵件被移出佇列時,該通道的相關計數器便會減少,因而導致出現負的最小值。對於此類計數器,正確的「絕對」值是目前值減去計數器自初始化以來所具有的最小值。
Channel Messages Recipients Blocks ------- -------- ---------- ------- tcp_local Received 29379 79714 982252 (1) Stored 61 113 -2004 (2) Delivered 29369 79723 983903 (29369 first time) (3) Submitted 13698 13699 18261 (4) Attempted 0 0 0 (5) Rejected 1 10 0 (6) Failed 104 104 4681 (7) Queue time/count 16425/29440 = 0.56 (8) Queue first time/count 16425/29440 = 0.56 (9) Total In Assocs 297637 Total Out Assocs 28306 |
1) Received 是在名為 tcp_local 的通道中形成佇列的郵件數。亦即由任何其他通道在 tcp_local 通道中形成佇列的郵件 (mail.log* 檔案中的 E 記錄)。
2) Stored 是儲存在通道佇列中要傳送的郵件數。
3) Delivered 是已由通道 tcp_local 處理過 (移出佇列) 的郵件數。(即,mail.log* 檔案中的 D 記錄。)移出佇列作業可能表示成功遞送 (即在其他通道中形成佇列),也可能是由於郵件被返回至寄件者而導致的移出佇列。這通常相當於 Received 數減去 Stored 數。
MTA 還記錄初次嘗試將多少個郵件移出佇列;此數目顯示在括號中。
4) Submitted 是由通道 tcp_local 在其他通道中形成佇列的郵件 (mail.log 檔案中的 E 記錄) 數。
5) Attempted 是在移出佇列中遇到暫時問題的郵件數,即 mail.log* 檔案中的 Q 或 Z 記錄。
6) Rejected 是被拒絕的形成佇列的嘗試次數,即 mail.log* 檔案中的 J 記錄。
7) Failed 是移出佇列的嘗試失敗次數,即 mail.log* 檔案中的 R 記錄。
8) Queue time/count 是傳送的郵件在佇列中花費的平均時間。這包含初次嘗試中投遞的郵件 (請參閱 [9]) 以及需要額外投遞嘗試的郵件 (因此通常會在佇列中花很長的時間等待)。
9) Queue first time/count 是初次嘗試時傳送的郵件在佇列中花費的平均時間。
請注意,所提交的郵件數目可能大於遞送的郵件數目。這是通常情況,因為由通道移出佇列 (遞送) 的每個郵件將導致至少一個新郵件形成佇列 (提交),但也可能是多個。例如,如果郵件有兩個分別經由不同通道到達的收件者,則將需要形成兩個佇列。或者,如果郵件被退回,系統會將一個副本傳回給寄件者,將另一個副本傳送給 Postmaster。通常,這將是兩次提交 (除非兩者都透過同一個通道到達)。
一般來說,Submitted 和 Delivered 之間的連線視通道的類型而有所不同。例如,在轉換通道中,郵件將由其他任意通道形成佇列,然後轉換通道將處理該郵件並使其在第三個通道中形成佇列,並在該郵件的自身佇列中將其標記為移出佇列。每個單獨的郵件均佔用一個路徑:
elsewhere -> conversion E record Received conversion -> elsewhere E record Submitted conversion D record Delivered
但是,對於 tcp_local 之類的通道,它不是「通道」,而是具有兩個單獨的部分 (從屬部分與主要部分),並且 Submitted 與 Delivered 之間沒有連線。Submitted 計數器與 tcp_local 通道的 SMTP 伺服器部分有關,而 Delivered 計數器與 tcp_local 通道的 SMTP 用戶端部分有關。這是兩個完全獨立的程式,通過它們的郵件可以是完全獨立的。
提交給 SMTP 伺服器的郵件︰
tcp_local -> elsewhere E record Submitted
經由 SMTP 用戶端傳送給其他 SMTP 主機的郵件︰
elsewhere -> tcp_local E record Received tcp_local D record Delivered
通道移出佇列 (遞送) 將導致至少一個新郵件形成佇列 (提交),但也可能是多個。例如,如果郵件有兩個分別經由不同通道到達的收件者,則將需要形成兩個佇列。或者,如果郵件被退回,系統會將一個副本傳回給寄件者,將另一個副本傳送給 Postmaster。通常將透過同一個通道到達。
由於效能原因,執行 MTA 的節點使用共用記憶體區段 (UNIX) 或共用檔案對映物件 (NT) 將通道計數器的快取保留在記憶體中。當節點上的程序將郵件形成佇列和移出佇列時,它們將更新此內部記憶體快取中的計數器。如果在通道執行時內部記憶體區段不存在,則系統將自動建立此區段。(如果內部記憶體區段不存在,imta start 指令亦可建立此區段)。
指令 imta counters -clear 或 imta qm 指令 counters clear 可用於將計數器重設為零。
imsimta qm counters 公用程式顯示 MTA 通道佇列郵件計數器。必須是超級使用者或 inetuser 才能執行此公用程式。輸出欄位與 imsimta 計數器 中所述之欄位相同。另請參閱 「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「imsimta counters」。
範例:
# imsimta counters -create # imsimta qm counters show Channel Messages Recipients Blocks ---------------------- ---------- ---------- ---------- tcp_intranet Received 13077 13859 264616 Stored 92 91 -362 Delivered 12985 13768 264978 Submitted 2594 2594 3641 ... |
每次重新啟動 MTA 時,您必須執行:# imsimta counters -create
Messaging Server 支援透過簡易網路管理協定 (SNMP) 進行系統監視。使用 SNMP 用戶端 (有時稱為網路管理員),例如 Sun Net Manager 或 HP OpenView (未隨附此產品提供),可以監視 Messaging Server 的某些部分。請參閱附錄 ASNMP 支援,以取得詳細資訊。
可以使用 imquotacheck 公用程式監視電子信箱配額的使用率和限制。imquotacheck 公用程式會產生一個報告,該報告列示定義的配額與限制,並提供有關配額使用率的資訊。
例如,以下指令將列出所有使用者配額資訊:
% imquotacheck ------------------------------------------------------------------------- Domain red.siroe.com (diskquota = not set msgquota = not set) quota usage ------------------------------------------------------------------------- diskquota size(K) %use msgquota msgs %use user # of domains = 1 # of users = 705 no quota 50418 no quota 4392 ajonk no quota 5 no quota 2 andrt no quota 355518 no quota 2500 ansri ... |
以下範例將顯示使用者的配額使用率:
% imquotacheck -u sorook ------------------------------------------------------------------------- quota usage for user sorook ------------------------------------------------------------------------- diskquota size(K) %use msgquota msgs %use user no quota 1487 no quota 305 sorook |
Messaging Server 提供兩個程序 watcher 和 msprobe,以監視多種系統服務。watcher 監視伺服器當機並在需要時重新啟動伺服器。msprobe 監視伺服器掛機 (未回應)。具體來說,msprobe 監視以下內容︰
伺服器回應時間。msprobe 使用協定指令連線啟用的伺服器,並測量其回應時間。如果回應時間超出警示警告臨界值,則會傳送警示郵件 (請參閱警報郵件 至伺服器,或伺服器回應時間超出指定的逾時時間,則會重新啟動伺服器。 伺服器回應時間記錄在計數器資料庫中,並被記錄至預設記錄檔中。counterutil 可用於顯示伺服器回應時間統計 (counterutil)。
以下伺服器由 msprobe 監視︰imap、pop、http、cert、job_controller、smtp、lmtp、mmp 以及 ens。smtp 或 lmtp 不回應時,派送程式會重新啟動。ens 無法自動重新啟動。
磁碟使用率。msprobe 檢查每個郵件儲存分割區的磁碟可用性和使用率。具體來說,它檢查郵件儲存 mboxlist 資料庫目錄和 MTA 佇列目錄。如果磁碟使用率超過配置的臨界值,則將傳送警報郵件。磁碟大小和使用率將記錄在計數器資料庫中並被記錄到預設記錄檔中。管理員可以使用 counterutil 公用程式 (請參閱 counterutil) 以顯示磁碟使用率統計。
郵件儲存 mboxlist 資料庫記錄檔累積。記錄檔累積表明出現 mboxlist 資料庫錯誤。msprobe 計算使用中記錄檔數,並且如果使用中記錄檔數大於臨界值,msprobe 會將嚴重錯誤訊息記錄至 default 記錄檔,以告知管理員重新啟動伺服器。如果已啟用 autorestart (local.autorestart 設定為 yes),則儲存常駐程式會重新啟動。
watcher 和 msprobe 由 configutil 選項控制 (顯示在表 23–5 中)。詳細資訊可以在自動重新啟動失敗或無回應的服務中找到
表 23–5 msprobe 和 watcher configutil 選項
選項 |
說明 |
---|---|
啟用伺服器自動重新啟動。自動重新啟動失敗或掛機的服務。預設:no |
|
失敗重新嘗試逾時。如果伺服器在指定時間內失敗兩次以上,系統將停止重新啟動伺服器的嘗試。該值 (設定為秒) 應設定為長於 msprobe 間隔 (local.schedule.msprobe) 的時間段。預設:600 秒 |
|
特定伺服器重新啟動之前的逾時。service 可以為 imap、pop、http、cert、job_controller、smtp、lmtp、mmp 或 ens。 預設:使用 service.readtimeout |
|
警告訊息記錄至 default 記錄檔之前特定伺服器無回應的秒數。service 可以為 imap、pop、http、cert、job_controller、smtp、lmtp、mmp 或 ens。 預設:使用 local.probe.warningthreshold |
|
警告訊息記錄到 default 記錄檔之前伺服器無回應的秒數。 預設:5 秒 |
|
MTA 佇列目錄,用於檢查佇列大小是否超出 alarm.diskavail.msgalarmthreshold 定義的臨界值。 預設:無 |
|
重新啟動伺服器前伺服器無回應的時間。請參閱 local.schedule.msprobe。 預設:10 秒 |
|
msprobe 執行排程。crontab 樣式排程字串 (請參閱表 18–10) |
|
啟用監視服務失敗的 watcher。(IMAP、POP、HTTP、工作控制器、派送程式、郵件儲存 (stored)、imsched 和 MMP。)(LMTP/SMTP 伺服器由派送程式監視,LMTP/SMTP 用戶端由 job_controller 監視。)將指示特定失敗的錯誤訊息記錄到預設記錄檔中。預設:開啟 |
msprobe 可以採用電子郵件形式向 Postmaster (請參閱監視 imapd、popd 和 httpd) 發出警示,以警告指定狀況。以下是超出特定臨界值時傳送的電子郵件警報之範例:
Subject: ALARM: server response time in seconds of “ldap_siroe.com_389” is 10 Date: Tue, 17 Jul 2001 16:37:08 -0700 (PDT) From: postmaster@siroe.com To: postmaster@siroe.com Server instance: /opt/SUNWmsgsr Alarmid: serverresponse Instance: ldap_siroe_europa.com_389 Description: server response time in seconds Current measured value (17/Jul/2001:16:37:08 -0700): 10 Lowest recorded value: 0 Highest recorded value: 10 Monitoring interval: 600 seconds Alarm condition is when over threshold of 10 Number of times over threshold: 1 |
可以指定 msprobe 監視磁碟和伺服器效能的頻率,以及在何種情況下傳送警示。此作業可透過使用 configutil 指令設定警示參數來完成。表 23–6 顯示有用的警示參數以及其預設設定。請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「configutil Parameters」。
表 23–6 有用的警示郵件 configutil 參數
參數 |
說明 (括號中為預設值) |
---|---|
(localhost) 您向其傳送警告郵件的機器。 |
|
(25) 傳送警報郵件時要連線至的 SMTP 連接埠。 |
|
(Postmaster@localhost) 傳送警報通知的對象。 |
|
(Postmaster@localhost) 警報寄件者的位址。 |
|
(郵件分割區磁碟可用空間百分比。)磁碟可用性警報描述欄位的文字。 |
|
(3600) 磁碟可用性檢查之間的間隔時間 (以秒為單位)。設定為 0 可停用對磁碟使用率的檢查。 |
|
(10) 可用磁碟空間的百分比,低於該值時將傳送警報。 |
|
(-1) 指定當可用磁碟空間低於臨界值 (-1) 或高於臨界值 (1) 時是否發出警報。 |
|
(24)。後來重複發出磁碟可用性警報的間隔時間 (以小時為單位)。 |
|
(伺服器回應時間 [以秒為單位]。)伺服器回應警報描述欄位的文字。 |
|
(600) 伺服器回應檢查之間的間隔時間 (以秒為單位)。設定為 0 可停用對伺服器回應的檢查。 |
|
(10) 如果伺服器回應時間 (以秒為單位) 超出該值,則發出警報。 |
|
(1) 指定當伺服器回應時間大於 (1) 臨界值或小於 (-1) 臨界值時是否發出警報。 |
|
(24) 後來重複發出伺服器回應警報的間隔時間 (以小時為單位)。 |