2009-12-16 35 views
6

對不起,如果這聽起來像一個基本問題,但我是網絡開發新手。來自負載均衡服務器的日誌

我們在多個服務器之間進行負載平衡。這些應用程序被配置爲使用log4j進行日誌記錄。他們每個人都將日誌文件寫入各自的服務器。這意味着研究問題意味着從所有這些服務器獲取日誌,這很乏味,而且意味着要通過Ops控制負載平衡並引入延遲。

這是Web應用日誌記錄的常態嗎?還是有簡單的解決方案來整合日誌記錄在一個地方?開發人員可以輕鬆使用日誌的標準做法是什麼?

+0

這看起來像是一個ServerFault問題。 – 2009-12-16 19:10:08

回答

2

您可以進行各種日誌記錄,並且可以自動使用。

有些類型是:

  • 記錄到內置的機器日誌(事件日誌或similiar)。
    對於這些,請授予訪問權限,以便您可以遠程訪問它們,並根據需要進行整理/檢查。
  • 記錄通常記錄到本地計算機上的文本文件的應用程序。 (IIS或其他)。
    獲取授予文件夾的訪問權限,以便您可以分析這些文件夾。
  • 自定義日誌記錄。
    我建議記錄到數據庫。 (雖然這些需要經常修剪/總結。)
    如果對數據庫的記錄失敗,則會記錄到計算機日誌。
    注意:這可能會對性能產生影響,所以要小心你的記錄數量。

如果操作不願意直接訪問,請查看是否可以將這些文件的臨時轉儲寫入可以訪問的位置。

2

Log4J同時具有JMS appender(因此,您可以將日誌發送到消息隊列 - 不要聽起來愚蠢,因爲它聽起來取決於您需要做多少/什麼樣的處理!)和appender(本地或遠程) 。這些都可以幫助您在單一位置收集日誌。系統日誌appender可能是您收集資料的最佳選擇,因爲Unix-ish系統在很長一段時間內一直在使用系統日誌,並且有很多穩定的功能可供您使用。

根據您的交通情況,登錄到數據庫可能難以擴展,除非您對批量插入操作很敏感。我建議你在平面文件(當然是合併的)中保存這些東西,這樣你就可以隨時將它們導入數據庫,或者嘗試使用像Hadoop(大量基於解析日誌文件的示例)的東西 - 前提是你有足夠的數量來證明這種複雜性。

1

使日誌更容易訪問的一種可能的選擇是將它們寫入通過NFS共享的驅動器。您可以爲每臺服務器配置不同的目錄,但在要評估日誌的服務器上可以看到這兩個目錄。

2

我們有一個強大的日誌記錄的網絡農場,這裏是它如何實現。

每個Web應用程序都會生成日誌事件消息。使用MSMQ,這些消息將被髮送到獨立機器上託管的專用隊列。這臺機器有一個應用程序將郵件出隊並將它們寫入Sqlite數據庫。

使用MSMQ將來自日誌服務器的Web應用程序分離。如果服務器處於脫機狀態,則消息將駐留在Web服務器上,直到重新建立連接。 MSMQ處理將消息移動到目標服務器。這樣網站可以繼續不間斷地完成任務。

日誌記錄服務器有自己的Web界面來查詢日誌數據庫,並且也可以接收來自其他應用程序的日誌消息。

我們爲每條消息分配一個分類。對於具有嚴重錯誤分類的郵件,日誌記錄服務器會自動向支持團隊發送電子郵件。其他非致命消息和跟蹤消息僅記錄到數據庫以進行彙總報告。