Linux

通過 HTTP 提供日誌

  • December 6, 2011

這是我想要實現的目標:我有一些 Linux 伺服器部署了我的 web 應用程序。目前,我的開發團隊訪問 Web 應用程序,執行他們的測試案例,然後通過 SSH 連接到我的 Linux 機器以查看或獲取日誌。我不希望他們能夠通過 SSH/FTP 進入任何伺服器,我正在尋找一種解決方案,僅通過 HTTP 和 HTTP 將日誌發送給他們(沒有 Linux 解決方案,如監獄等)。

由於伺服器已經很慢並且不能真正處理更多的負載,我決定使用 Python 的 SimpleHTTPServer。對於每個有他們需要的日誌的目錄,我基本上創建一個 index.html 文件,該文件只有一個到該日誌文件的下載連結,然後我在該目錄中啟動一個 SimpleHTTPServer。我需要在每個盒子上啟動 3 個 SimpleHTTPServer,因為它們需要 3 個日誌。

這工作正常,除了不時用於訪問有時大約 700MB 的日誌之一的http://serverurl:port url 停止響應(在Google瀏覽器中它說:沒有收到數據,在 IE 和 FF 中它只是顯示空白頁)。此時,該埠上的 SimpleHTTPServer 仍處於啟動狀態並顯示在正在執行的程序中。

到目前為止,我只是通過殺死然後在該埠上啟動 SimpleHTTPServer 來解決這個問題,但我正在尋找一個永久的解決方案。奇怪的是,這只發生在其中一個日誌上,我已經厭倦了切換埠號,因為我認為可能存在衝突或其他原因。

任何人都可以建議一個使用 HTTP 的解決方案,它與 SimpleHTTPServer 一樣輕量級並且不需要這麼多的維護。

*NIX 系統已經包含一個非常擅長收集日誌/消息並將它們發送到集中式主機 ( [syslogd][1]) 的守護程序。

您可以通過配置將某些設施發送到日誌主機來利用這一點syslogd,並修改您的測試腳本以記錄到該設施,或者簡單地將它們的輸出通過管道傳輸到[logger][2]程序。

然後,您可以在 loghost 上執行您選擇的 Web 伺服器(或執行您想要的任何其他分析),而不會給您的伺服器帶來不必要的負載,或者不必打開潛在的安全漏洞以使日誌可用。

這不是“使用 HTTP 的解決方案”(至少不是直接使用),但它可能比在每個機器上執行 Web 伺服器更好。

引用自:https://serverfault.com/questions/335956