2010-07-27 77 views
9

我們爲PHP開發了PaaS解決方案。作爲其中的一部分,我們向開發人員提供了通過API查看Apache error_log和access_log文件的方法。NoSQL解決方案最適合存儲Apache error_log和access_log? Cassandra或MongoDB?

目前我們將日誌寫入到每個部署(vhost)分離的磁盤上的文件中。

因爲這不會有更大數量的節點和部署的規模太清楚,即使文件在分佈式文件系統(GlusterFS),我們想切換到更好的東西。

特別是出於計費和統計的原因,我們不希望每次都解析日誌文件。

由於MongoDBs copped藏品看起來真棒用於記錄我們想要去這一點。但事實證明,他們似乎並沒有使用自動分片,這對我們來說很重要,因爲我們預計會有更多的寫入被讀取。

另一種選擇是卡桑德拉,我喜歡它的每一個節點是平等的做法,但他們沒有像皚皚的集合。

原來既不是兩種解決方案提供了一個獨特的功能,可以幫助我做出決定,或者我沒有看到它。

所以我想知道的是,有沒有人使用這兩個系統的日誌記錄之前的一個什麼呢?你有什麼經驗,你能給我一些提示嗎?還是有其他解決方案能更好地滿足我們的需求?

回答

5

如果您正在考慮使用Cassandra4 Months with Cassandra, a love story,您可以從Cloudkick查看本文。

他們利用Cassandra存儲不同的指標對自己的系統,這有點類似於存儲日誌文件。

編輯:

如果您還沒有決定用什麼,這是一個使用MongoDB作爲後端的一個很好的解決方案:

Graylog2是存儲一個開源的系統日誌實現你的登錄MongoDB。它由一個用Java編寫的服務器組成,該服務器通過TCP或UDP接受你的系統日誌消息並將其存儲在數據庫中。第二部分是Ruby on Rails Web界面,允許您查看日誌消息。

+0

感謝您的回答。我讀了,也http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/這是關於服務器使用MongoDB的監控解決方案似乎很滿意。但除此之外,我認爲可能有其他意見和解決方案。 – pst 2010-07-27 15:34:18

+0

最好的建議是*與*一起玩,看看哪些適合你。兩者都很容易設置,你可以自己看看哪一個最適合你。 – 2010-07-27 20:56:33

+0

您可能也對這個問題感興趣:http://stackoverflow.com/questions/2892729/mongodb-vs-cassandra – 2010-07-28 08:43:01

5

原來既不是兩種解決方案提供了一個獨特的功能,可以幫助我做出決定,或者我沒有看到它。

說實話,我們現在正在通過這個測試,現在有一些嚴重的日誌數據。 (就目前而言,我的意思是,我們中的一些人昨晚在進行這些測試時已經很晚了)。

對我來說,這裏有兩個顯着特點:易用性證明縮放

易於使用

  • 的MongoDB的很容易。幾個小時後,我從空白計算機轉移到一個活動的Mongo實例,並從MySQL導入數據和一些完成的map-reduce。
  • 在同一段時間,團隊Cassandra圍繞重新編譯Java文件嘗試讓Hadoop配置爲在現有的Cassandra實現上運行,以便他們甚至可以運行map-reduce。

成熟的縮放

  • MongoDB的分片仍處於測試階段。它將在未來幾周推出。這非常緊密。
  • Cassandra sharding在一些非常大的實例中被證明。

所以我認爲答案確實會針對您的個人口味。我誠實地認爲Cassandra可能是一種更爲穩定的產品,但我也從經驗中瞭解到,學習和設置曲線更加陡峭。所以這可能值得嘗試一下。

+0

我同意你的意見。 MongoDB非常容易設置,但自動分片處於測試階段,它似乎不適用於上面所述的上限集合。 Cassandara碎片應該可以工作,因爲它似乎被一些大公司所使用。但設置是一個皮塔餅,我恨一個激情xml配置文件。但那是個人的品味。 感謝您的意見,我會告訴您這是如何爲我們工作的。目前我們正在測試MongoDB。我們必須依次測試,因爲我不能分成團隊。 :) – pst 2010-07-29 18:50:58