Ubuntu

如何將所有日誌文件條目通過管道傳輸到 linux 上的數據庫?

  • December 31, 2014

我正在考慮建構一個應用程序來讀取我的不同伺服器日誌文件,將解析的數據保存到數據庫,然後從日誌文件中刪除該行。

這是我的程序員方面試圖想出更好的方法將所有日誌文件放入可用/可搜尋的應用程序控制台中看起來有些不對勁。

市場上似乎已經有昂貴的解決方案,但我無法證明高價的合理性 $ 500- $ 2000/月的價格。

無論如何,我的問題是如何從主動寫入的日誌文件中刪除行而不引起問題?一些日誌文件是旋轉的(如 nginx),而另一些則不是。我想最安全的方法是複製文件,然後echo '' > file.log刪除它。不過,我可能會錯過 300 毫秒的寫入。

另一個問題是我是否甚至想刪除日誌。我想不刪除日誌意味著我必須打開文件,跳到最後,然後向後工作,直到我到達最後一個已知條目。

將日誌數據通過管道傳輸到外部應用程序/數據庫的好方法是什麼?

不要重新發明輪子。

使用 logstash 將您的日誌從系統中刪除。

讓 logstash 將日誌發送到 elasticsearch。

使用 kibana 前端進行分析。

這種組合非常常見,被稱為 ELK 堆棧。而且它都是開源的。

syslog-ng​​​​​​​​​​​​​​​​​​​​​

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