PHPLogCon - 網頁顯示及分析 Syslog

1、前言

phpLogCon 為一透過網頁介面查詢 Syslog 及其它系統事件內容,可運作於 Windows 及 Unix / Linux 作業系統下,目前支援分析的類型有 Syslog、Windows Event Log、SNMP Trap...等,您可透過讀取系統檔案的方式來進行即時查詢 (Real-Time) 也可寫入資料庫 (MySQL) 中,本次實作為透過 phpLogCon 讀取系統檔案 (/var/log/messages) 的方式來進行即時查詢。






文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1 - 安裝 phplogcon 套件
          步驟2 - 設定 phplogcon 前置作業
          步驟3 - 初始化 phplogcon 設定 (install.php)
          步驟4 - 設定 phplogcon 完成後續作業
4、參考
5、Me FAQ
          Q1.連結至 phplogcon 首頁出現錯誤訊息?
          Q2.Fatal error: Call to undefined function preg_match() in class_template.php on line 152?
          Q3. ./config.php File does NOT exist!?





2、實作環境

  • FreeBSD 7.2-RELEASE-p2
  • phplogcon-2.7.0 





3、安裝及設定

步驟 1 - 安裝 phplogcon 套件

切換至 Ports Tree 下開始安裝 PHPLogCon 套件。
cd /usr/ports/sysutils/phplogcon //切換至安裝路徑
make install clean                //安裝並清除安裝暫存檔案




步驟 2 - 設定 phplogcon 前置作業

在準備開始初始化 PHPLogCon 設定以前請先進行下列步驟以便後續 PHPLogCon 初始化順利進行,若不想建立空白設定檔 (config.php) 也可複製 phplogcon/include/config.sample.php 至 phplogcon 目錄下也可。
cp -rp /usr/local/www/phplogcon /home/web/   //複製至您網站根目錄下
cd /home/web/phplogcon    //切換至 PHPLogCon 目錄
touch config.php          //建立空設定檔 (初始化設定屆時將寫入此檔案)
chown www config.php      //確定 Web Service 可寫入設定至此檔案




步驟 3 - 初始化 phplogcon 設定 (install.php)

開啟瀏覽器輸入類似如下網址,開始進行初始化 PHPLogCon 設定。
ex. http://www.weithenn.org/phplogconf/install.php

1. 系統設定偵測 (是否可進行 PHPLogCon 設定),請按下【Next】後繼續設定。


2. 檢查設定檔 (config.php) 權限,請按下【Next】後繼續設定。


3. 基本設定 (如每頁顯示幾筆訊息) 此設定日後也可進行更改,請按下【Next】後繼續設定。
     1. Number of syslog messages pre page: 設定每頁顯示幾筆訊息。
     2. Message character limit for the main view: 設定主頁面訊息顯示字數。
     3. Character display limit for all string type fields: 設定每種領域類型顯示字數。
     4. Show message details popup: 查詢訊息時是否自動跳出視窗。
     5. Automatically resolved IP Address (inline): 是否自動將 FQDN 反解為 IP 位址。
     6. Enable User Database: 是否啟用使用者資料庫。


4. 建立第一筆來源記錄,請按下【Next】後繼續設定。
     1. Name of the Source: 填入屆時顯示於 Select Source 項目的文字。
     2. Source Type: 設定讀取檔案的來源 (Diskfile 來源為系統檔案)。
     3. Select View: 設定顯示此檔案的欄位。
     4. Logline type: 設定讀取檔案的類型。
     5. Syslog file: 設定讀取檔案的路徑。


5. 初始化 phplogcon 設定完成,請按下【Finish】連結至 PHPLogCon 主頁面 (ex. http://www.weithenn.org/phplogconf/index.php)。


6. Enjoy PHPLogCon。




步驟 4 - 設定 phplogcon 完成後續作業

步驟 4-1 - 建議您刪除初始化設定檔 (install.php)

初始化 PHPLogCon 設定完畢後建議您刪除初始化設定檔 install.php 或設定該檔案權限為唯讀 (請依個人喜好擇一即可)。
rm /home/web/phplogcon/install.php          //刪除初始化設定檔 (方式一)
chmod 400 /home/web/phplogcon/install.php  //設定初始化設定檔為唯讀 (方式二)

步驟 4-2 - 修改 phplogcon 設定檔 (config.php)

日後若要修改相關設定 (例如: 每頁顯示幾筆訊息、支援資料庫...等) 皆可透過修改 PHPLogCon 設定檔 config.php 達成,例如: 要關閉查詢訊息時是否自動跳出視窗功能,可進行如下修改即可。
vi /home/web/phplogcon/config.php
 $CFG'ViewEnableDetailPopups' = 1;  //1 為啟用 (Enable),預設值
 $CFG'ViewEnableDetailPopups' = 0;  //0 為禁用 (Disable),修改後

步驟 4-3 - 中文化 phplogcon 操作介面 (lang)

若您想自行翻譯 PHPLogCon 操作頁面語系可依如下方式進行修改即可。
  • 將設定檔 config.php 中指定成您自訂的語系 (ex. $CFG'ViewDefaultLanguage' = "tw")
  • 將英文語系檔案進行複製後進行修改即可 (ex cp -rp /home/web/phplogcon/lang/en /home/web/phplogcon/lang/tw)

步驟 4-4 - phplogcon 預設 MySQL 資料庫模板 (db_template.txt)

若要設定 PHPLogCon 支援 MySQL 則有預設資料庫模板可供使用 /home/web/phplogcon/include/db_template.txt。

步驟 4-5 - 自訂顯示的欄位 (Legacy columns configuration)

若您的需求為不需要顯示所有欄位,您也可以透過修改 config.php 自訂要顯示的欄位。
vi /home/web/phplogcon/config.php
 $CFG'ShowMessage' = true;    //啟動自訂欄位
 //Eventlog based fields: $CFG'Columns' = array ( SYSLOG_DATE, SYSLOG_HOST, SYSLOG_EVENT_LOGTYPE, SYSLOG_EVENT_SOURCE, /*SYSLOG_EVENT_CATEGORY, */SYSLOG_EVENT_ID,
 SYSLOG_MESSAGE );            //預設顯示的欄位
 $CFG'Columns' = array ( SYSLOG_DATE, SYSLOG_HOST, SYSLOG_SYSLOGTAG, SYSLOG_MESSAGETYPE, SYSLOG_MESSAGE );   //自訂要顯示的欄位

而在 Select View 下拉式選單中預設顯示的文字為 Legacy columns configuration 若您要修改此顯示名稱可透過修改 functions_config.php 達成。
vi /home/web/phplogcon/include/functions_config.php
 // Legacy handling for tabletype!
 function AppendLegacyColumns()
          'DisplayName' =>"Legacy Columns Configuration",  //修改此處文字
 // Legacy support for old columns definition format!
          AppendLegacyColumns();

步驟 4-6 - 關閉頁面 PHPLogCon 操作頁面顯示的 Donate 項目 (Donate)

如果您想關閉 PHPLogCon 操作頁面上顯示的 Donate 項目,您也可以透過修改 functions_common.php 自訂要顯示的欄位。
vi /home/web/phplogcon/include/functions_common.php
 $content'SHOW_DONATEBUTTON' = true;  //預設值 (顯示 Donate 項目)
 $content'SHOW_DONATEBUTTON' = false; //修改後 (關閉 Donate 項目)






4、參考






5、Me FAQ

Q1. 連結至 phplogcon 首頁出現錯誤訊息?

Error Message:
連結至 PHPLogCon 首頁 (index.php) 時出現如下錯誤訊息?


Ans:
PHPLogCon 未偵測到設定檔案 (config.php) 代表您尚未進行初始化 PHPLogCon 設定,請開啟瀏覽器輸入類似如下網址,開始進行初始化 PHPLogCon 設定
ex. http://www.weithenn.org/phplogconf/install.php

Q2. Fatal error: Call to undefined function preg_match() in class_template.php on line 152?

Error Message:
開啟瀏覽器輸入網址進行初始化 PHPLogCon 設定 (ex. http://www.weithenn.org/phplogconf/install.php) 時出現如下錯誤訊息
 Fatal error: Call to undefined function preg_match()in /home/web/phplogcon/classes/class_template.php on line 152

Ans:
表示您的系統缺少 PHP Extension (php5-pcre) 安裝此 PHP Extension 完成後請重新啟動 Web Service (重新載入 PHP Extension) 即可順利開始進行初始化 PHPLogCon 設定
cd /usr/ports/devel/php5-pcre && make install clean  //安裝 PHP Extension (php5-pcre)
php -m        //顯示目前系統已安裝的 PHP Extension
  PHP Modules
  date
  gd
  libxml
  mysql
  pcre           //PHP Extension (php5-pcre) 已載入
  PDO
  pdo_mysql
  Reflection
  session
  standard
  xml
  Zend Modules
/usr/local/etc/rc.d/lighttpd reload   //重新啟動 Web Service
  Stoping lighttpd and start gracefully.
  Starting lighttpd.




Q3 - ./config.php File does NOT exist!?

Error Message:
進行初始化 PHPLogCon 設定,進行至步驟 二 檢查設定檔 (config.php) 權限時出現如下錯誤訊息?


Ans:
表示 PHPLogCon 無法偵測到您的設定檔 (config.php) 或無法寫入該設定檔,若不想建立空白設定檔 (config.php) 也可複製 phplogcon/include/config.sample.php 至 phplogcon 目錄下也可。
cd /home/web/phplogcon //切換至 PHPLogCon 目錄
touch config.php       //建立空設定檔 (初始化設定時將寫入此檔案)
chown www config.php   //確定 Web Service 可寫入設定至此檔案