業內常用Elastic Stack的部署方案圖
各部件說明
- Beats: 一個收集器,可以收集日誌文件、http數據包等等
- Kafka:消息隊列,用來緩衝存放從Beats流向LogStash數據
- Redis:也用作消息隊列(Zset),緩衝存放從Beats流向LogStash數據
- LogStash:數據的處理器,使用多個Filter對數據進行預處理或者豐富數據
- ElasticSearch:數據處理後的最終存儲位置,用於數據的存儲和索引查詢
- Kibana:數據的可視化顯示效果
- X-pack:對集羣進行一個安全監控驗證
常見數據流程
- Logstash->Elasticsearch->Kibana
- Beats->Elasticsearch->Kibana
- Beats->Logstash->Elasticsearch->Kibana
- Beats->Kafka/Redis->Logstash->Elasticsearch->Kibana
綜上所述總結
隨着流程的細化,系統可靠性得到提高,所以我們接下來選用Beats->Kafka/Redis->Logstash->Elasticsearch->Kibana數據流程作爲我們的解決方案。
案例背景
- 對現有軌跡存儲方案,環境搭建,數據導入,數據測試,服務編寫,測試結果對比
- 性能分析緯度: 數據量,時間範圍,空間範圍,空間類型
- 數據量:1千萬,1億,10億條
- 時間範圍:1天,1周,1月 時間跨度
- 空間範圍:1平方公里,10平方公里,50 平方公里,
- 空間類型:多邊形,圓形,矩形
案例分析
- 數據來源較爲單一,可以使用PackageBeats或者LogStash直接進行數據採集
- 基於穩定性思考,採用kafka進行彈性消息處理,避免LogStash宕機造成數據丟失
- 數據不需要預處理,可以考慮從Beats->Kafka->ES,但是需要部署Kafka-connector
- 保留LogStash,Beats->Kafka->LogStash->ES ,不需要部署Kafka-connector
案例部署方案圖
案例部署說明
- Packetbeat:類似於抓包,從客戶端數據源抓取數據
- Kafka:彈性消息隊列,緩衝數據源相關數據
- LogStash:消息預處理過濾器,這裏主要是用來替代Kafka-connector連接器的作用
- ElasticSearch:存儲處理後數據,這裏數據無需處理,直接存取即可
- Kibana:對數據進行可視化效果展示
案例資源說明
服務名稱 | IP | 運行內存 | 硬盤大小 | CPU |
---|---|---|---|---|
PacketBeat | 192.168.62.10 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
Kafka | 192.168.62.11 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
Logstash | 192.168.62.12 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
ElasticSearch | 192.168.62.13 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
ElasticSearch | 192.168.62.14 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
ElasticSearch | 192.168.62.15 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |
Kibana | 192.168.62.15 | 2GB | 20GB | 酷睿i7-2820QM @ 2.30GHz |