條理分明的phpLogCon紀錄檔瀏覽系統
以網頁介面顯示,不同資訊分門別類

2008-09-04
長時間不斷電持續運作的伺服器主機,即使已經將不同功能與用途的紀錄檔分開存放,資料量仍然會超出一般人所能處理的極限。這種問題在伺服器已經運作一段時間後將更為嚴重。而phpLogCon是一套以網頁介面設計的紀錄檔瀏覽系統,會將每一筆紀錄分門別類排列在畫面中,並以各種不同欄位將每一筆紀錄檔內容進行欄位分割,在查詢每一筆紀錄時較容易找到所需的訊息。
雖然微軟的Windows作業系統橫掃全球,佔有率居高不下,但是仍然有許多其他作業系統的愛好者,會在辦公室或是家裡的電腦中安裝非Windows的作業系統。每個人選擇作業系統的理由各有不同,也許是看上市佔率高,比較不必擔心軟硬體相容性的問題;也許是認為某個作業系統的操作介面比較親和,不需要花費太多時間即可上手,而且操作上相當直覺,任何人都能使用。當然也有些人是為了系統安全或主機的穩定性而選擇不同的作業系統,儘管在操作介面上較不如人意,也只能盡力熟悉這樣的操作方式。  

無論作業系統的操作介面是美或醜,在系統的內部架構中總會有些採用相同設計理念所設計的內部功能。也許一般的使用者不容易發現,但對於系統管理者而言,深入了解這一塊區域,對於掌握作業系統的特性將會有相當大的幫助。例如Windows伺服器有所謂的服務(Service)功能,而UNIX/Linux系統則是以daemon的概念負責管理這一塊功能。  

或許每個作業系統的設計考量都不盡相同,所提供的功能也都有些差異,但對於底層的功能來說,差異性或許沒有表面上的操作介面來得那麼懸殊。因為作業系統最終的目的便是提供使用者操作或控制電腦硬體的功能,各種不同電腦系統中所使用的硬體也許也有些差異,但如果詳加檢視,便會發現這些硬體所提供的功能其實都大同小異。  

除了這些硬體設備的操作與控制功能之外,現今的作業系統幾乎都擁有另一個相同的功能,也就是系統紀錄檔的設計。系統紀錄檔可以即時將系統中所發生的各項事件以文字檔或資料庫的方式儲存在磁碟內,萬一將來系統運作發生問題,或是系統遭人入侵進行破壞動作,便可以調閱這些系統紀錄檔,以便從當初第一手儲存下來的資料中查出整個事件發生的緣由,並且進行後續的系統調校、修正等工作。  

身為伺服器主機的系統管理員,每天例行的公事除了檢查系統執行效能是否正常、有無需要調整選項設定項目的地方之外,最常進行的定期性工作,多半便是查閱系統紀錄檔,以便能在最短的時間內發現系統問題所在,並以最快的速度加以解決。  

但只要是長時間不斷電持續運作的伺服器主機,即使已經將不同功能與用途的紀錄檔分開存放,資料量仍然會超出一般人所能處理的極限。這種問題在伺服器已經運作一段時間,又需要回頭尋找先前發生事件的紀錄時更為明顯。畢竟要從成千上萬筆資料中找到特定時間點或擁有特定關鍵字的資料,並不是件輕鬆的工作。  

phpLogCon簡介  

擁有相同困擾的人或許不在少數,所以像phpLogCon這樣的紀錄檔瀏覽介面也就有了立足之地。用最簡單的方式來說明,phpLogCon是一套以網頁介面設計的紀錄檔瀏覽系統,可以用來讀取系統中的紀錄檔內容,並以較為容易讀取的方式呈現在畫面上供使用者存取、瀏覽之用。  

由於使用的是網頁介面,雖然所顯示的資料還是紀錄檔中所存放的各種文字訊息,但至少在親和力方面加強不少。phpLogCon會將每一筆紀錄分門別類排列在畫面中,並以各種不同欄位將每一筆紀錄檔內容進行欄位分割,在查詢每一筆紀錄時也可以較容易找到需要尋找的重要訊息。

▲phpLogCon的執行畫面

事實上,phpLogCon不是只提供紀錄檔瀏覽介面這麼基本的功能而已。除了紀錄檔瀏覽之外,phpLogCon也可以從資料庫或使用其他方法取得網路事件資料,並以較為友善的瀏覽介面呈現所有資料,並且具有一些基本的分析功能。phpLogCon的資料來源可以是資料庫,也可以是最單純的純文字紀錄檔案。因為phpLogCon只是讀取這些資料來源的內容,並不會對這些檔案進行寫入或修改等動作,所以在系統的紀錄檔運作架構方面完全不需要進行任何更動,頂多只要開放這些資料來源的讀取權限,讓phpLogCon在執行時可以正確讀取資料來源的內容而已。  

或許有人會認為phpLogCon只能處理UNIX/Linux等類似作業系統的syslog紀錄檔所存放的訊息,但事實上這套軟體也能運用在Windows作業系統中,並用來處理事件紀錄檔的內容。此外像是SNMP所產生出來的資料,phpLogCon也能加以處理。而phpLogCon的錯誤排除功能,也可以幫助使用者在瀏覽紀錄檔的過程中,儘快找到問題所在,並找出解決的辦法。  

phpLogCon是「Adiscon's MonitorWare line of monitoring applications」(http://www.monitorware.com/)專案的一部分,這個專案所推出的監控應用軟體針對不同的部分提供了各種應用程式,以輔助系統管理者進行維護工作,並減輕管理員的工作負擔。前面提到phpLogCon可以處理Windows的事件紀錄,事實上,在Windows系統上執行phpLogCon時,資料來源可以是MonitorWare Agent所產生的紀錄檔,也可以是WinSyslog或EventReporter的執行結果。  

而在UNIX/Linux系統方面,除了系統本身預設使用的syslogd之外,phpLogCon也支援一套名為Rsyslog的系統事件紀錄軟體。Rsyslog是一套多執行緒的系統紀錄程式加強版,主要設計考量在於安全性與可靠性這兩方面。系統事件發生時可以直接將資料寫入資料庫之中(MySQL、PostgreSQL、Oracle或其他資料庫系統皆可相容),並在發生重要事件時可以使用電子郵件通知系統管理者。資料的輸出格式亦可完全由使用者自行決定,不需要被系統本身所限制住。此外,Rsyslog也可以用來過濾syslog訊息的任何部分、將訊息進行壓縮,並且能夠直接將純文字檔轉換成syslog格式。  

由於syslogd在執行前需要先進行一些設定,並將設定內容存放於設定檔之中,因此在更換系統的事件紀錄軟體時,大多數人第一個考慮到的問題都是現有的設定檔是否可以繼續沿用。但這個問題在Rsyslog上面並不存在,因為Rsyslog可以直接套用現有的設定檔案,完全不需要進行任何設定檔修改,即可將syslog更換成Rsyslog。  

Rsyslog提供了較為進階的事件紀錄功能,所以相當適合使用在企業等級的伺服器上。如果覺得syslog所能提供的資訊有限,或許也可以考慮在使用phpLogCon時,同時一併更換系統事件紀錄程式。如果使用者採用的Linux發行版本為Fedora,則可以省下這個步驟。因為從2007年11月起,Rsyslog已經是Fedora的預設紀錄程式。

▲RSyslog的官方網站

phpLogCon的主要用途  

使用phpLogCon的最大優點,便是可以直接快速檢閱系統的紀錄檔,以了解目前系統的運作狀態為何。因為系統紀錄檔隨時會更新目前系統的運作情況,如果可以即時檢閱這些紀錄檔,自然便可以在最快的時間內得知系統是否處於正常狀態,或是已經發生了問題尚待解決。  

此外,如果系統管理員在特定情況下無法在遠端直接存取伺服器的系統檔案,例如伺服器並未對外界開放SSH或Telnet等遠端連線的存取功能,在這樣的情況之下,系統管理員如果想要了解目前伺服器的運作狀況會是一件不可能的任務。但如果伺服器上架設了phpLogCon軟體,不但可以經由網頁介面直接查看伺服器主機的運作情況,甚至還能在問題發生之前先行解決,以避開可能產生的嚴重後果。  

安裝phpLogCon  

下載phpLogCon的壓縮檔之後,以下列指令解開壓縮檔,並將檔案複製到網頁伺服器的目錄中,再修改檔案的存取權限即可。  

完成如本頁下方的指令操作後,以瀏覽器開啟phpLogCon的路徑(例如「http://localhost/phplogcon」),即可依照畫面上的提示開始安裝。安裝過程中如果有任何問題(例如檔案存取權限設定不正確),安裝畫面會提醒使用者進行修改,直到所有需求都已經滿足為止。

sudo -i     
tar zxpf phplogcon-2.5.3.tar.gz
cd phplogcon-2.5.3
mv src /var/www/phplogcon
cp contrib/configure.sh /var/www/phplogcon
cp contrib/secure.sh /var/www/phplogcon
cd /var/www
chown -R www-data.www-data phplogcon
chmod a+x *.sh

(取得系統管理員權限)
(解開壓縮檔)
(進入phplogcon目錄)
(將src子目錄搬移至網頁伺服器目錄下)
(將contrib/configure.sh與contrib/secure.sh
這二個檔案複製到網頁伺服器目錄中)

(修改檔案擁有者)
(將剛才複製的.sh檔加上執行權限)

使用phpLogCon  

在完成安裝、設定動作後,以管理者帳號登入phpLogCon,即可看到畫面上出現目前已設定好的紀錄檔內容。以syslog為例,畫面中會顯示紀錄產生的日期與時間、主機名稱、建立此紀錄的應用程式為何,以及該程式執行時的行程編號、訊息種類與執行時所使用的參數等資料。顯示的資料可以在執行時自行決定,因為phpLogCon可以同時監控不同的紀錄檔或資料庫內容,所以在執行時可以再選擇要查閱的紀錄以及所顯示的欄位內容排列方式。  

選擇不同紀錄檔與顯示方式的動作可以從畫面右上角的四個下拉式選單中決定,包括不同的語系選擇、使用的外觀佈景樣式、紀錄檔來源以及畫面顯示的排列型式等等。  

其中語系部分,雖然原始安裝檔案中並沒有提供正體中文的語系檔,但只要花點時間自行修改,還是可以製作出一套正體中文的語系檔供自己使用。如果願意釋出幫助更多需要正體中文語系檔的使用者,也可以將翻譯過的語系檔寄回phpLogCon開發團隊,以便在下一個版本中直接將正體中文列為正式支援的語言選項之一。  

在畫面上方可以看到一個搜尋欄位,在這裡可以輸入任何關鍵字以便在眾多紀錄檔的資料中尋找使用者所希望查詢的項目內容。搜尋前亦可指定搜尋範圍,例如只搜尋警告和錯誤訊息,或是進一步地將搜尋範圍縮小到錯誤訊息以加快搜尋速度。如果希望以時間作為搜尋時的過濾方式,phpLogCon系統預設的時間過濾搜尋方式提供了一小時內、12小時、24小時、七天或一個月等不同範圍的過濾方式。先行指定搜尋結果過濾方式後,再輸入關鍵字到搜尋欄位中,即可以最快的速度找到自己想尋找的資料。

▲phpLogCon可以自行指定顯示方式,以及採用不同的搜尋方法

如果覺得系統自訂的時間範圍因為太過固定而不合乎自己的使用需求,也可以使用自訂時間的功能自行決定搜尋的時間範圍。使用自訂時間進行搜尋時,可以直接在搜尋欄位中輸入系統所定義的格式以決定時間範圍設定值,或是進入選擇時間範圍的畫面中,選擇開始與結束時間後再返回搜尋畫面,由系統自動將時間轉換為系統所能接受的時間格式,會是比較方便的做法。

▲直接以自訂時間範圍進行搜尋

在限定搜尋時間範圍後,返回主畫面時會看到目前列出來的資料內容都是在這個時間範圍以內的紀錄,在搜尋特定時間點所發生的事件時,這樣的功能會相當有幫助。  

由於系統上的事件不斷地在發生,所以紀錄檔的內容也是不停地更新著。但以網頁介面設計的phpLogCon並不會因為紀錄檔內容持續更新而無法查看最新的資料,因為phpLogCon設計了自動更新的機制,只要事先設定好定時更新的時間,便可以即時在畫面上看到最新的紀錄檔內容。  

自動更新的間隔時間從5秒到一分鐘的短周期,到五分鐘、十分鐘,甚至是30分鐘的設定方式都有支援。如果不希望啟用自動更新功能,只要將自動更新時間設定成為「關閉自動更新」即可。

▲自動更新讀取最新紀錄檔內容的功能,可以自行決定時間間隔為何

每一筆紀錄在畫面上都會顯示不同的欄位,但最重要事件的實際內容卻因為空間不足而會被擠到畫面的角落。或許,在畫面上直接從這個小欄位中讀取事件內容並不方便,但別擔心,phpLogCon也已經想好對策。只要將滑鼠移動到使用者準備查閱的事件資料上,phpLogCon便會以小視窗的方式顯示該筆資料的詳細內容,以利於使用者讀取。這樣的設計將會更有效地幫助系統管理者了解主機所發生的事件為何,以及所有相關的資訊等等。

phpLogCon軟體小檔案

軟體版本:2.53
軟體性質:GNU General Public License v3
使用限制:無
官方網址:http://www.phplogcon.org/
下載網址:http://download.adiscon.com/phplogcon/phplogcon-2.5.3.tar.gz (320KB)

點圖放大
▲phpLogCon官方網站


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!