2012-07-18 54 views
0

我們的PHP &基於MySQL的應用程序創建自定義日誌,寫入MySQL數據庫以供用戶操作。我們主要是爲了便於搜索而做到這一點,並且因爲該應用程序已經在使用MySQL進行持久性存儲,所以它纔有意義。PHP應用程序日誌存儲

我們的日誌現在包含1760萬行,大小爲2GB。在這個地方移動時不那麼友好。

我想知道社區可能會建議作爲一種更好的更有效的方式來存儲日誌。

您可以將該表拆分顯然比1星期的所有日誌,然後刪除非關鍵的日誌,並一分爲二的表歷史性關鍵日誌,對於這樣的事情,支付等

一般來說我們通過這樣的功能的方式寫入日誌作爲

playerlog($id,$message,$cash,$page,$ip,$time); 

但是,這是一個相當簡化的版本,我們也使用MySQL的延遲插入的日誌不適合頁面加載的關鍵。

回答

0

您應該澄清需要什麼日誌。作爲插入後的第二步,您可以設置一個可處理日誌數據的作業,例如讀取日誌並對其進行處理(這會將DBMS降級爲某種消息傳遞中間件)。這可能會將部分內容(如付款)存儲到未被刪除的存檔或將認證日誌寫入指定保留時間後刪除的地方。但是這一切都取決於你的用例。

根據您計劃分析的內容或查詢數據的方式,您甚至可以將它們存儲在MySQL之外。

一些可能性:

  • 實現SIEM系統(http://en.wikipedia.org/wiki/Security_information_and_event_management)爲目標來分析事件,觸發警報等
  • 使用SIEM-像類似的Splunk(見splunk.com)上原木工作,並針對搜索日誌和你的DBMS解決方案分析
  • 棍如果是「不夠快」
  • 簡單地使用系統日誌和存儲文本日誌文件的軟件 - - 你可以跳過整個MySQL的事情母雞
  • ...
相關問題