我們在生成文本日誌文件的Solaris 10服務器上有應用程序。我們需要將這些日誌文件實時傳輸到中央服務器以監視新事件。Python客戶端/服務器實時流日誌文件更新?
理想情況下,我們會有一個NFS掛載,我們所有的系統都會將它們的日誌寫入到那裏,並且監視服務器可以從那裏掛載它們。不幸的是,由於技術和非技術原因,這不是一種選擇。
目前,我們使用背景尾部-f來通過SSH隧道傳輸數據。
但是,我們正在研究是否值得將更強大的東西放在一起。
我想寫一個簡單的Python客戶端/服務器與Twistedb(或類似的東西 - 建議?)流日誌數據。這是否容易實現?任何現有的圖書館/工具,我可以期待的想法?我應該注意的任何問題?
另外,這是Solaris 10,所以我不熟悉文件系統監視器的狀態。我知道Gamin可以通過OpenCSW獲得。不過,還有其他選擇嗎?
嗯,這是一個非常有趣的方法。第一個問題 - 生成日誌文件的應用程序不在Python中(它使用C++),我懷疑我們沒有源代碼。我如何獲得Python日誌記錄來讀取這些日誌文件,並在他們進來時讀入新行?第二個問題 - 我最好使用內置的SocketServer,而不是像Twisted這樣的框架?說實話,我之前沒有使用Twisted,所以我用這個藉口來學習它......大聲笑。 – victorhooi
啊,我假定你的應用程序在Python中,因此與日誌記錄模塊集成將是直截了當的。我認爲在這種情況下使用日誌記錄模塊會很愚蠢。這回答了你的兩個問題。就我個人而言,我會使用Syslog-NG http://en.wikipedia.org/wiki/Syslog-ng來調查以滿足您的需求。它是健壯的和被證明的。如果它確實不能滿足您的需求,那麼在Twisted中編寫一個自定義應用程序,部分是爲了學習Twisted,聽起來很合理。您解決問題的動機將超過您選擇的技術。 – dicato