WebSphere Application Server 是一個(gè)基于 Java 的 Web 應(yīng)用程序服務(wù)器,,它構(gòu)建在開放標(biāo)準(zhǔn)的基礎(chǔ)之上,,能幫助您部署與管理從簡(jiǎn)單的 Web 站點(diǎn)到強(qiáng)大的電子商務(wù)解決方案的諸多應(yīng)用程序,。它遵循 J2EE 并為 Java 組件,、XML 和 Web 服務(wù)提供了一個(gè)可移植的 Web 部署平臺(tái),,這個(gè)平臺(tái)能夠與數(shù)據(jù)庫(kù)交互并提供動(dòng)態(tài) Web 內(nèi)容。 隨著WebSphere Application Server產(chǎn)品在中間市場(chǎng)的份額不斷增加,,使用WebSphere Application Server作為IT基礎(chǔ)產(chǎn)品的企業(yè)越來越多,,作為我們企業(yè)的IT部門,很重要的一部分工作就是管理WebSphere Application Server,。由于業(yè)務(wù)系統(tǒng)的復(fù)雜性,,以及IT系統(tǒng)的龐大等多種原因,我們的系統(tǒng)不可避免的會(huì)出現(xiàn)這樣那樣的問題,,要定定位和解決這些問題,,WebSphere Application Server的日志將起了很關(guān)鍵作用。怎么管理以及查看這些日志呢,? 本文作者所一直從事WebSphere Application Server的相關(guān)服務(wù)工作,,積累了許多WebSphere Application Server的管理經(jīng)驗(yàn)。我們希望能夠通過一系列的文章與讀者分享這些經(jīng)驗(yàn)想,,幫助您更好管理好你的WebSphere Application Server,。 本文將從問題診斷入手,在解決一系列具體問題的過程中,,介紹配置日志的策略以及具體參數(shù)的用法,,為您提供診斷問題的途經(jīng)以及指定日志策略的方式和方法。 問題診斷的方法在我們基于J2EE的應(yīng)用程序中,,問題的出現(xiàn)可能在各個(gè)相關(guān)的環(huán)節(jié)出現(xiàn),。所以首先要明確問題是發(fā)生在哪個(gè)組建上的,我們可以通過測(cè)試單個(gè)組件,,檢查他們成功或者失敗來把問題進(jìn)行一個(gè)隔離,。從而分析相關(guān)日志來定位問題。下圖是一些常用的測(cè)試方法以及相關(guān)日志的位置,。
當(dāng)我們的系統(tǒng)出現(xiàn)不能訪問現(xiàn)象時(shí),,我們一般按照一下步驟進(jìn)行分析: 1.使用瀏覽器通過80端口訪問應(yīng)用(例如:http://localhost/myWeb/) 2.使用瀏覽器通過9080(根據(jù)實(shí)際端口而定)端口訪問應(yīng)用(例如:http://localhost:9080/myWeb)如果訪問正常,說明HTTP server的請(qǐng)求沒有正常轉(zhuǎn)發(fā),,這時(shí)候通過http://localhost來驗(yàn)證HTTP 服務(wù)器是否正常啟動(dòng),,如果正常說明HTTP server 運(yùn)行正常,此時(shí)請(qǐng)檢查http_plugin.log查看插件日志,,并且查看HTTP server 的配置文件httpd.conf,,查找WebSpherePluginConfig 所加載的plugin-cfg.xml文件是否正確。 3.如果通過9080(根據(jù)實(shí)際端口而定)端口不能訪問應(yīng)用程序,,可以通過http://localhost:9080/snoop 驗(yàn)證應(yīng)用服務(wù)器是否存活,。如存活則如圖:
一般說明應(yīng)用程序存在問題,查看分析相關(guān)日志:System.Out.log 、SystemErr.log,、activity.log定位應(yīng)用程序引起的問題,。 日志介紹System.Out.log 、SystemErr.log 屬于JVM 日志,,,。WebSphere Application Server 寫格式化的消息到 System.out日志。另外,,應(yīng)用程序和其他代碼可以寫入這些日志,,通過print() 和 println() 方法實(shí)現(xiàn)。有些開發(fā)工具箱(Developer Kit)內(nèi)置如 Throwable 類的 printStackTrace() 方法也可以寫入這些日志,。通常,,System.out 日志用于監(jiān)控應(yīng)用程序服務(wù)器的運(yùn)行是否正常。System.out 日志可用于問題確定,,但建議改為使用 IBM 服務(wù)日志和日志分析器的高級(jí)能力,。System.err 日志包含異常堆棧跟蹤信息,這在執(zhí)行問題分析時(shí)很有用,。 因?yàn)槊總€(gè)應(yīng)用程序服務(wù)器都代表 JVM,,所以每個(gè)應(yīng)用程序服務(wù)器和它的所有應(yīng)用程序都有一組 JVM 日志,缺省情況下該日志位于 installation_root/profiles/profile_name/logs/server_name 目錄,。在 WebSphere Application Server Network Deployment 配置的情況下,,也為 Deployment Manager 和每個(gè)節(jié)點(diǎn)管理器創(chuàng)建 JVM 日志,因?yàn)樗鼈円泊?JVM,。 activity.log為IBM 日志,,應(yīng)用程序服務(wù)器從各種 WebSphere Application Server 組件的活動(dòng)創(chuàng)建服務(wù)或活動(dòng)日志文件。服務(wù)或活動(dòng)日志文件(activity.log)是二進(jìn)制文件,,它位于 install_root 的 logs 目錄中,,我們可以使用日志分析器用于查看服務(wù)或活動(dòng)日志文件。 查看 JVM 日志JVM 日志是作為純文本文件寫的,。因此,,查看這些日志沒有特殊的要求。它們位于 installation_directory/profiles/profile_name/logs/server_name 目錄中,,并在缺省情況下命名為 SystemOut.log 和 SystemErr.log。 有兩種技術(shù)可用于查看應(yīng)用程序服務(wù)器的 JVM 日志,。 l 使用管理控制臺(tái),。它支持從遠(yuǎn)程機(jī)器查看 JVM 日志。 l 使用存儲(chǔ)日志的機(jī)器上的文本編輯器,。 此任務(wù)的步驟 1.從管理控制臺(tái)查看 JVM 日志,。 啟動(dòng)管理控制臺(tái)。 在控制臺(tái)導(dǎo)航樹中單擊故障診斷 > 日志和跟蹤。要查看特定服務(wù)器的日志,,單擊服務(wù)器名以選擇它,,然后單擊 JVM 日志。 選擇運(yùn)行時(shí)選項(xiàng)卡,。 單擊與您要查看的日志相應(yīng)的查看,。 2.在服務(wù)器硬盤查看JVM 日志。 轉(zhuǎn)至存儲(chǔ)日志的機(jī)器,。 在文本編輯器中打開文件或?qū)⑽募戏诺骄庉嫼筒榭闯绦蛑小?/p> 日志格式:根據(jù) JVM 日志配置的不同,,格式化的消息可以用基本或高級(jí)格式寫入 JVM 日志。 消息格式 格式化的消息可以使用這兩種格式中的一種寫入 JVM 日志: 基本格式 這是 WebSphere Application Server 的較早版本中使用的格式,。 高級(jí)格式 如果可能,,則通過添加有關(guān)事件的信息來擴(kuò)展基本格式。 下面是一些日志常用格式,,可以幫助我們更好的查看日志,,可能找到的采用這些格式的各種字段如下: TimeStamp 時(shí)間戳記是使用其被格式化所處于的進(jìn)程語言環(huán)境格式化的。它包含標(biāo)準(zhǔn)日期(例如,,YYMMDD),,以毫秒為精度的 24 小時(shí)時(shí)間和時(shí)區(qū)。 ThreadId 從發(fā)出消息的線程的散列代碼生成的 8 個(gè)字符的十六進(jìn)制值,。 ThreadName 發(fā)出消息或跟蹤事件的 Java 線程名,。 ShortName 發(fā)出消息或跟蹤事件的記錄組件的縮寫名稱。這通常是 WebSphere Application Server 內(nèi)部組件的類名,,但也可以是一些用戶應(yīng)用程序的其他標(biāo)識(shí),。 LongName 發(fā)出消息或跟蹤事件的記錄組件的全名。這通常是 WebSphere Application Server 內(nèi)部組件的標(biāo)準(zhǔn)類名,,但也可以是一些用戶應(yīng)用程序的其他標(biāo)識(shí),。 EventType 表明消息或跟蹤事件類型的一個(gè)字符字段。消息類型是大寫的,??赡苤蛋ǎ?/p> F 致命消息。 E 錯(cuò)誤消息,。 W 警告消息,。 A 審計(jì)消息。 I 參考消息,。 C 配置消息,。 D 詳細(xì)信息消息。 O 通過用戶應(yīng)用程序或內(nèi)部組件直接寫入 System.out 的消息,。 R 通過用戶應(yīng)用程序或內(nèi)部組件直接寫入 System.err 的消息,。 Z 表明不可識(shí)別的類型的占位符,。 類名 發(fā)出消息或跟蹤事件的類。 方法名稱 發(fā)出消息或跟蹤事件的方法,。 組織 擁有發(fā)出消息或跟蹤事件的應(yīng)用程序的組織,。 產(chǎn)品 發(fā)出消息或跟蹤事件的產(chǎn)品。 組件 發(fā)出消息或跟蹤事件的產(chǎn)品內(nèi)的組件,。 基本格式 以基本格式顯示的消息事件使用下列格式,。符號(hào) <name> 表明將總是在基本格式消息中出現(xiàn)的必需字段。符號(hào) [name] 表明將被包括的可選的或有條件的字段,,如果可以確定它們的話,。
<timestamp><threadId><shortName><eventType>[className][methodName]<message> 高級(jí)格式 以高級(jí)格式顯示的消息事件使用下列格式。表示法 <name> 用于表明將總是以消息條目的高級(jí)格式出現(xiàn)的必需字段,。表示法 [name] 用于表明將被包括的可選的或有條件的字段(如果可以確定它們的話),。 <timestamp><threadId><eventType><UOW><source=longName>[className][methodName]<Organization><Product><Component>[thread=threadName] <message>
配置 JVM 日志使用管理控制臺(tái)配置應(yīng)用程序服務(wù)器的 JVM 日志。直到下一次重新啟動(dòng)應(yīng)用程序服務(wù)器,,才應(yīng)用為了運(yùn)行應(yīng)用程序服務(wù)器而對(duì) JVM 日志進(jìn)行的配置更改,。 此任務(wù)的步驟 啟動(dòng)管理控制臺(tái) 單擊故障診斷 > 記錄和跟蹤,然后單擊服務(wù)器 > JVM 日志,。 選擇“配置”選項(xiàng)卡,。 滾動(dòng)通過面板以顯示要配置的日志的屬性。 更改相應(yīng)的配置屬性并單擊應(yīng)用,。 保存您的配置更改,。 Java 虛擬機(jī)(JVM)日志設(shè)置使用此頁(yè)面查看和修改 Java 虛擬機(jī)(JVM)System.out 和 System.err 日志的設(shè)置。 要查看此管理控制臺(tái)頁(yè)面,,單擊故障診斷 > 日志和跟蹤 > server name > JVM 日志,。 查看和修改此受管進(jìn)程的 Java 虛擬機(jī)(JVM)System.out 和 System.err 日志的設(shè)置。通過將 JVM 的 System.out 和 System.err 流重定向到獨(dú)立日志文件來創(chuàng)建 JVM 日志,。System.out 日志用于監(jiān)控運(yùn)行應(yīng)用程序服務(wù)器的運(yùn)行狀況,。System.err 日志包含執(zhí)行問題分析時(shí)有用的異常堆棧跟蹤信息。每個(gè)應(yīng)用程序服務(wù)器及其所有應(yīng)用程序有一組 JVM 日志,。還為 Deployment Manager 和每個(gè)節(jié)點(diǎn)管理器創(chuàng)建 JVM 日志,。“配置”面板上的更改將在重新啟動(dòng)服務(wù)器時(shí)應(yīng)用。“運(yùn)行時(shí)”面板上的更改將立即應(yīng)用,。 “配置”選項(xiàng)卡 文件名 指定此頁(yè)面中描述的某個(gè)日志文件的名稱,。 第一個(gè)文件名字段指定 System.out 日志的名稱。第二個(gè)文件名字段指定 System.err 文件的名稱,。 按下“運(yùn)行時(shí)”選項(xiàng)卡上的查看按鈕查看所選日志文件的內(nèi)容,。 為 System.out 日志或 System.err 日志指定的文件名必須具有以下某個(gè)值: 文件名 文件系統(tǒng)中的文件的名稱。建議您使用標(biāo)準(zhǔn)文件名,。如果該文件名不是標(biāo)準(zhǔn)文件名,則認(rèn)為它相對(duì)于服務(wù)器的當(dāng)前工作目錄。每個(gè)日志必須配置一個(gè)專用文件,。例如,,我們無法將 System.out 和 System.err 重定向到同一物理文件。 如果包含文件的目錄已經(jīng)存在,,則正在運(yùn)行的服務(wù)器所使用的用戶標(biāo)識(shí)需要該目錄的讀/寫訪問權(quán)限,。如果該目錄不存在,將會(huì)用適當(dāng)?shù)脑S可權(quán)創(chuàng)建它,。正在運(yùn)行的服務(wù)器所使用的用戶標(biāo)識(shí)必須有創(chuàng)建該目錄的權(quán)限,。 控制臺(tái) 這是用于將流重定向到關(guān)聯(lián)進(jìn)程流的特殊文件名。如果為 System.out 指定了此值,,則文件重定向到 stdout,。如果為 System.err 指定了此值,則文件重定向到 stderr,。 無 廢棄寫入流的所有數(shù)據(jù),。指定無等于將流重定向到 UNIX 系統(tǒng)上的 dev/null。 filename 的缺省路徑是變量 SERVER_LOG_ROOT 的值,。要查看 SERVER_LOG_ROOT 變量的值: 1.在管理控制臺(tái)上,,選擇環(huán)境 > WebSphere 變量 2.單擊服務(wù)器單選按鈕,然后單擊應(yīng)用,。在顯示的列表中出現(xiàn) SERVER_LOG_ROOT 變量的值,。 要更改 SERVER_LOG_ROOT 的值: 1.選擇 SERVER_LOG_ROOT 2.在值字段中輸入新的路徑 3.單擊“應(yīng)用” 4.保存此配置。您必須重新啟動(dòng)服務(wù)器以使更改生效,。 當(dāng)然我們還可以以將 ${SERVER_LOG_ROOT}/和 ${SERVER_LOG_ROOT}/SystemErr.log 文件的位置和名稱更改為任何其他絕對(duì)路徑和文件名(例如,,/tmp/myLogfile.log)。 文件格式 指定用于保存 System.out 文件的格式,。 日志文件滾動(dòng)(保留舊的日志文件生成新的日志文件) 應(yīng)用服務(wù)器有日志自管理功能,,通過使用這一組配置屬性將 System.out 或 System.err 日志文件配置為自我管理。 自我管理日志文件將消息寫入文件,,直到達(dá)到時(shí)間或大小條件,。當(dāng)達(dá)到指定時(shí)間或文件達(dá)到指定大小時(shí),日志文件將滾動(dòng)(包括關(guān)閉文件并重命名保存的文件),,同時(shí)記錄將臨時(shí)掛起,。新保存的文件名是原始文件名加上表明文件重命名時(shí)間的時(shí)間戳記限定符。一旦完成重命名,,則重新打開具有原始名稱的新的空日志文件,,并恢復(fù)記錄。雖然日志文件滾動(dòng)后一條消息可能會(huì)分割在保存的文件和當(dāng)前文件中,,但全部消息都將保留,。 如果關(guān)聯(lián)流重定向到文件,,則僅可以將一個(gè)日志配置為自我管理。 文件大小 單擊日志文件的此屬性以讓它根據(jù)其文件大小管理它自己,。當(dāng)文件達(dá)到最大大小字段中指定的大小時(shí),,發(fā)生自動(dòng)滾動(dòng)。 最大大小 指定文件的最大大?。ㄒ哉鬃止?jié)為單位),。當(dāng)文件達(dá)到此大小時(shí),它就滾動(dòng),。 此屬性僅當(dāng)您單擊“文件大小”后才有效,。
時(shí)間 單擊日志文件的此屬性以讓它根據(jù)一天中的時(shí)間管理它自己。文件在啟動(dòng)時(shí)間字段中指定的時(shí)間滾動(dòng),。 啟動(dòng)時(shí)間 指定應(yīng)用程序服務(wù)器重新啟動(dòng)后第一次啟動(dòng)周期滾動(dòng)算法的時(shí)間,,即,一天中的幾點(diǎn)(從 1 到 24),。算法在應(yīng)用程序服務(wù)器啟動(dòng)時(shí)裝入,。一旦滾動(dòng)算法在啟動(dòng)時(shí)間字段指定的鐘點(diǎn)啟動(dòng)后,它將每隔一定的時(shí)間(重復(fù)時(shí)間字段指定的小時(shí)數(shù))滾動(dòng)文件,。此滾動(dòng)模式將繼續(xù)使用不作調(diào)整,,直到應(yīng)用程序服務(wù)器停止。 注:滾動(dòng)總是在一天中指定鐘點(diǎn)開始時(shí)發(fā)生,。一天的第一個(gè)小一天的第一個(gè)小時(shí)(自 00:00:00(午夜)起)是 1 點(diǎn),,而一天的最后一個(gè)小時(shí)(自 23:00:00 起)是 24 點(diǎn)。因此,,如果您希望日志文件在午夜?jié)L動(dòng),,則將啟動(dòng)時(shí)間設(shè)置為 1。 重復(fù)時(shí)間 指定隔多少小時(shí)(從 1 到 24)發(fā)生周期滾動(dòng),。 重復(fù)時(shí)間 指定每隔多少小時(shí)日志文件滾動(dòng)一次,。有效值范圍是從 1 到 24。 配置日志文件按時(shí)間,、按大小或按時(shí)間和大小滾動(dòng),。單擊文件大小和時(shí)間以在首次匹配條件時(shí)滾動(dòng)文件。例如,,如果重復(fù)時(shí)間字段是 5 小時(shí),,而最大文件大小是 2 MB,則文件將每 5 小時(shí)滾動(dòng)一次,,除非時(shí)間間隔未到而文件大小已達(dá) 2 MB,。按文件大小滾動(dòng)后,文件將繼續(xù)按時(shí)間間隔滾動(dòng),。 歷史日志文件的最大大小 指定要保存的歷史(已滾動(dòng))文件數(shù),。流將寫入當(dāng)前文件,,直到它滾動(dòng)。滾動(dòng)時(shí),,關(guān)閉當(dāng)前文件,,并以當(dāng)前名稱加上滾動(dòng)時(shí)間戳記組成的新名稱保存該文件。然后流將以原始名稱重新打開一個(gè)新文件以繼續(xù)寫入,。歷史文件數(shù)從零增長(zhǎng)到最大歷史文件數(shù)字段的值。下一次滾動(dòng)刪除最舊的歷史文件,。 已安裝應(yīng)用程序的輸出 指定是否記錄和格式化應(yīng)用程序代碼發(fā)出的 System.out 或 System.err 打印語句,。 顯示應(yīng)用程序打印語句 單擊此字段以顯示應(yīng)用程序使用 print 和 println 流方法寫入流的消息??偸浅霈F(xiàn) WebSphere Application Server 系統(tǒng)消息,。 格式化打印語句 單擊此字段以格式化應(yīng)用程序打印語句(如 WebSphere Application Server 系統(tǒng)消息)。 “運(yùn)行時(shí)”選項(xiàng)卡
文件名 指定此頁(yè)面中描述的某個(gè)日志文件的名稱,。
第一個(gè)文件名字段指定 System.out 日志的名稱,。第二個(gè)文件名字段指定 System.err 文件的名稱。
按下“運(yùn)行時(shí)”選項(xiàng)卡上的查看按鈕查看所選日志文件的內(nèi)容,。
為 System.out 日志或 System.err 日志指定的文件名必須具有以下某個(gè)值: 文件名 文件系統(tǒng)中的文件的名稱,。建議您使用標(biāo)準(zhǔn)文件名。如果該文件名不是標(biāo)準(zhǔn)文件名,,則認(rèn)為它相對(duì)于服務(wù)器的當(dāng)前工作目錄,。每個(gè)流必須配置一個(gè)專用文件。例如,,您無法將 System.out 和 System.err 重定向到同一物理文件,。 如果包含文件的目錄已經(jīng)存在,則正在運(yùn)行的服務(wù)器所使用的用戶標(biāo)識(shí)需要該目錄的讀/寫訪問權(quán)限,。如果該目錄不存在,,將會(huì)用適當(dāng)?shù)脑S可權(quán)創(chuàng)建它。正在運(yùn)行的服務(wù)器所使用的用戶標(biāo)識(shí)必須有創(chuàng)建該目錄的權(quán)限,。
控制臺(tái) 這是用于將流重定向到關(guān)聯(lián)進(jìn)程流的特殊文件名,。如果為 System.out 指定了此值,則文件重定向到 stdout,。如果為 System.err 指定了此值,,則文件重定向到 stderr。 無 廢棄寫入流的所有數(shù)據(jù),。指定無等于將流重定向到 UNIX 系統(tǒng)上的 dev/null,。 filename 的缺省路徑是變量 SERVER_LOG_ROOT 的值。要查看 SERVER_LOG_ROOT 變量的值: 1.在管理控制臺(tái)上,,選擇環(huán)境 > WebSphere 變量 2.單擊服務(wù)器單選按鈕,,然后單擊應(yīng)用,。在顯示的列表中出現(xiàn) SERVER_LOG_ROOT 變量的值。 要更改 SERVER_LOG_ROOT 的值: 1.選擇 SERVER_LOG_ROOT 2.在值字段中輸入新的路徑 3.單擊“應(yīng)用” 保存此配置,。您必須重新啟動(dòng)服務(wù)器以使更改生效,。當(dāng)然我們還可以以將${SERVER_LOG_ROOT}/SystemOut.log 和 ${SERVER_LOG_ROOT}/SystemErr.log 文件的位置和名稱更改為任何其他絕對(duì)路徑和文件名(例如,/tmp/myLogfile.log),。 結(jié)束語JVM 日志對(duì)我們對(duì)問題的的分析和跟蹤是非常重要的,。WebSphere Application Server 強(qiáng)大的日志自管理功能,使我們的日常工作更方便更簡(jiǎn)單,,學(xué)習(xí)和掌握這些功能對(duì)我們管理人員來說受益非淺,。 |
|