2017-08-19 19 views
2

給定一個目錄,讀取所有的日誌文件(文本),併發送每條線路通過網絡。寫一個日誌收集器/讀者,任何好的設計?

因此,根本的問題是設計一個日誌讀取器,它需要:

  • 1,找到一個目錄
  • 2日誌文件,讀未讀的日誌文件
  • 3,日誌文件可以越來越大讀
  • 4時,日誌文件可以讀
  • 5時被移動到其他地方或刪除,如果日誌讀取器已關閉,繼續啓動時 下一次(不重複,它不停止損失)

以前我使用inode記錄進度和文件讀取,但inode可以重複。

因此,任何好的想法如何實現這些目標?

+0

你瞭解inotify的? http://man7.org/linux/man-pages/man7/inotify.7.html。它可以幫助你達到2.5分。順便說一句,爲什麼你需要一個日誌閱讀器,當你有rsyslog? – Luv33preet

+0

以前的設計中使用的inotify,它使用的inode來跟蹤新的文件和移動文件和刪除的文件,但inode的可重複使用。 inotify的設計沒有解決5,當讀者下來,舊的文件被刪除,新的文件創建的,該inode不會改變(和名稱可以相同)。 –

+0

你能告訴爲什麼你需要另一個日誌閱讀器嗎?當你有很多其他選項,如rsyslog,filebeat? – Luv33preet

回答

-2

你想要標準的採集器...
使用syslog-ng或類似的東西。
https://syslog-ng.org/

或者,如果你想要寫一個,檢查syslog-ng的...代碼:P