2014-01-15 58 views
2

所以上下文是我有一個生成日誌的客戶端應用程序,我希望偶爾將這些數據上傳到後端。後端將用作分析服務器,存儲,處理和顯示這些數據 - 因此您可以想象會涉及到一些查詢。有效存儲和處理客戶端日誌的數據庫

在數據收集高峯負荷方面,我預計會有大約5K個客戶,每個客戶每天產生大約50-100行,我希望我正在處理的解決方案能夠處理這種數據。如果你做數學,那就是每月100萬行以上。

在數據分析負載方面,它會相當低 - 我期望我們幾個人(管理員)運行查詢,從所有日誌中每週收集一次信息。

我的應用程序目前正在運行RoR + Postgres,儘管我打算使用不同的dB,如果它能更好地滿足我的需求。我當前的競爭者是MongoDB & Cassandra,但是如果它可以擴展以完成工作,我並不想離開Postgres。

回答

0

對於我的經驗,您將需要一個搜索引擎做的診斷和分析,當你有很多的日誌,而不是使用數據庫。 (搜索引擎將比數據庫更快)

現在,我使用logstash + Elasticsearch + Kibana整體解決方案來構建我的Log系統。

  • Logstash是一個工具可以解析日誌,並使其更具人性 可讀。
  • Elasticsearch是一個搜索引擎來做索引和 搜索您的日誌。
  • Kibana是一個webUI,你可以使用它 與你的Elasticsearch進行通信。

這是一個Kibana Demo網站。你可以訪問它。 http://demo.kibana.org/。 它提供了餅圖,表格等搜索界面和分析工具。

在我的項目中,我的應用程序每天生成超過150萬條日誌。該日誌系統可以處理所有這些日誌。

享受它。

0

如果你正在尋找一個數據庫解決方案這將隨請求增長,那麼我會建議超越Postgres。

Cassandra非常適合時間序列數據,但鍵值存儲不適用於臨時分析。一個想法可能是將日誌存儲在Cassandra中,然後在日後將它們轉換爲其他系統。

爲了直接存儲和顯示數據,請看Graphite,一個實時圖形項目。

您可以使用Graphite創建自己的自定義圖形,並將它們另存爲儀表板。

enter image description here