Ubuntu
如何將所有日誌文件條目通過管道傳輸到 linux 上的數據庫?
我正在考慮建構一個應用程序來讀取我的不同伺服器日誌文件,將解析的數據保存到數據庫,然後從日誌文件中刪除該行。
這是我的程序員方面試圖想出更好的方法將所有日誌文件放入可用/可搜尋的應用程序控制台中看起來有些不對勁。
市場上似乎已經有昂貴的解決方案,但我無法證明高價的合理性 $ 500- $ 2000/月的價格。
無論如何,我的問題是如何從主動寫入的日誌文件中刪除行而不引起問題?一些日誌文件是旋轉的(如 nginx),而另一些則不是。我想最安全的方法是複製文件,然後
echo '' > file.log
刪除它。不過,我可能會錯過 300 毫秒的寫入。另一個問題是我是否甚至想刪除日誌。我想不刪除日誌意味著我必須打開文件,跳到最後,然後向後工作,直到我到達最後一個已知條目。
將日誌數據通過管道傳輸到外部應用程序/數據庫的好方法是什麼?
不要重新發明輪子。
使用 logstash 將您的日誌從系統中刪除。
讓 logstash 將日誌發送到 elasticsearch。
使用 kibana 前端進行分析。
這種組合非常常見,被稱為 ELK 堆棧。而且它都是開源的。