ELK架構簡介
一:背景
二:ELK介紹
ELK 由 ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:
1. Logstash是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其儲存供以後使用(如,搜尋)。
2. Elasticsearch是個開源分散式搜尋引擎,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋負載等。
3. Kibana也是一個開源和免費的工具,他Kibana可以為Logstash和ElasticSearch提供的日誌分析友好的Web介面,可以幫助您彙總、分析和搜尋重要資料日誌。
在需要收集日誌的所有服務上部署logstash ,作為logstash agent(logstash shipper)用於監控並過濾收集日誌,將過濾後的內容傳送到logstash indexer , logstash indexer 將日誌收集在一起交給全文搜尋服務 ElasticSearch ,可以用 ElasticSearch進行自定義搜尋透過 Kibana 來結合自定義搜尋進行頁面展示。
三:ELK的通用架構
1.這是最簡單的一種ELK架構方式。優點是搭建簡單,易於上手。缺點是Logstash耗資源較大,執行佔用CPU和記憶體高。此架構首先由Logstash分佈於各個節點上搜集相關日誌、資料,並經過分析、過濾後傳送給遠端伺服器上的Elasticsearch進行儲存。Elasticsearch將資料以分片的形式壓縮儲存並提供多種API供使用者查詢,操作。使用者亦可以更直觀的透過配置Kibana Web Portal方便的對日誌查詢,並根據資料生成報表。
2.引入了訊息佇列機制,位於各個節點上的Logstash Agent先將資料/日誌傳遞給Kafka(或者Redis),並將佇列中訊息或資料間接傳遞給Logstash,Logstash過濾、分析後將資料傳遞給Elasticsearch儲存。最後由Kibana將日誌和資料呈現給使用者。因為引入了Kafka(或者Redis),所以即使遠端Logstash server因故障停止執行,資料將會先被儲存下來,從而避免資料丟失。這種架構適合於較大叢集的解決方案,但由於Logstash中心節點和Elasticsearch的負荷會比較重,可將他們配置為叢集模式,以分擔負荷,這種架構的優點在於引入了訊息佇列機制,均衡了網路傳輸,從而降低了網路閉塞尤其是丟失資料的可能性,但依然存在Logstash佔用系統資源過多的問題。
3.引入了Logstash-forwarder。首先,Logstash-forwarder將日誌資料蒐集並統一傳送給主節點上的Logstash,Logstash分析、過濾日誌資料後傳送至Elasticsearch儲存,並由Kibana最終將資料呈現給使用者。這種架構解決了Logstash在各計算機點上佔用系統資源較高的問題。經測試得出,相比Logstash,Logstash-forwarder所佔用系統CPU和MEM幾乎可以忽略不計。另外,Logstash-forwarder和Logstash間的通訊是透過SSL加密傳輸,起到了安全保障。
4.將Logstash-forwarder替換為Beats。經測試,Beats滿負荷狀態所耗系統資源和Logstash-forwarder相當,但其擴充套件性和靈活性有很大提高。Beats platform目前包含有Packagebeat、Topbeat和Filebeat三個產品,均為Apache 2.0 License。同時使用者可根據需要進行二次開發。這種架構原理基於第三種架構,但是更靈活,擴充套件性更強。同時可配置Logstash 和Elasticsearch 叢集用於支援大叢集系統的運維日誌資料監控和查詢。
日誌主要包括系統日誌、應用程式日誌和安全日誌。系統運維和開發人員可以透過日誌瞭解伺服器軟硬體資訊、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以瞭解伺服器的負荷,效能安全性,從而及時採取措施糾正錯誤。
通常,日誌被分散的儲存不同的裝置上。如果你管理數十上百臺伺服器,你還在使用依次登入每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的 syslog ,將所有伺服器上的日誌收集彙總。
集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep 、 awk 和 wc 等 Linux 命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心
二:ELK介紹
ELK 由 ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:
1. Logstash是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其儲存供以後使用(如,搜尋)。
2. Elasticsearch是個開源分散式搜尋引擎,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋負載等。
3. Kibana也是一個開源和免費的工具,他Kibana可以為Logstash和ElasticSearch提供的日誌分析友好的Web介面,可以幫助您彙總、分析和搜尋重要資料日誌。
在需要收集日誌的所有服務上部署logstash ,作為logstash agent(logstash shipper)用於監控並過濾收集日誌,將過濾後的內容傳送到logstash indexer , logstash indexer 將日誌收集在一起交給全文搜尋服務 ElasticSearch ,可以用 ElasticSearch進行自定義搜尋透過 Kibana 來結合自定義搜尋進行頁面展示。
三:ELK的通用架構
1.這是最簡單的一種ELK架構方式。優點是搭建簡單,易於上手。缺點是Logstash耗資源較大,執行佔用CPU和記憶體高。此架構首先由Logstash分佈於各個節點上搜集相關日誌、資料,並經過分析、過濾後傳送給遠端伺服器上的Elasticsearch進行儲存。Elasticsearch將資料以分片的形式壓縮儲存並提供多種API供使用者查詢,操作。使用者亦可以更直觀的透過配置Kibana Web Portal方便的對日誌查詢,並根據資料生成報表。
2.引入了訊息佇列機制,位於各個節點上的Logstash Agent先將資料/日誌傳遞給Kafka(或者Redis),並將佇列中訊息或資料間接傳遞給Logstash,Logstash過濾、分析後將資料傳遞給Elasticsearch儲存。最後由Kibana將日誌和資料呈現給使用者。因為引入了Kafka(或者Redis),所以即使遠端Logstash server因故障停止執行,資料將會先被儲存下來,從而避免資料丟失。這種架構適合於較大叢集的解決方案,但由於Logstash中心節點和Elasticsearch的負荷會比較重,可將他們配置為叢集模式,以分擔負荷,這種架構的優點在於引入了訊息佇列機制,均衡了網路傳輸,從而降低了網路閉塞尤其是丟失資料的可能性,但依然存在Logstash佔用系統資源過多的問題。
3.引入了Logstash-forwarder。首先,Logstash-forwarder將日誌資料蒐集並統一傳送給主節點上的Logstash,Logstash分析、過濾日誌資料後傳送至Elasticsearch儲存,並由Kibana最終將資料呈現給使用者。這種架構解決了Logstash在各計算機點上佔用系統資源較高的問題。經測試得出,相比Logstash,Logstash-forwarder所佔用系統CPU和MEM幾乎可以忽略不計。另外,Logstash-forwarder和Logstash間的通訊是透過SSL加密傳輸,起到了安全保障。
4.將Logstash-forwarder替換為Beats。經測試,Beats滿負荷狀態所耗系統資源和Logstash-forwarder相當,但其擴充套件性和靈活性有很大提高。Beats platform目前包含有Packagebeat、Topbeat和Filebeat三個產品,均為Apache 2.0 License。同時使用者可根據需要進行二次開發。這種架構原理基於第三種架構,但是更靈活,擴充套件性更強。同時可配置Logstash 和Elasticsearch 叢集用於支援大叢集系統的運維日誌資料監控和查詢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2123618/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ELK之簡介
- 軟體架構簡介架構
- 微服務架構簡介微服務架構
- Flume(一):簡介架構架構
- 四種JavaEE架構簡介Java架構
- 微服務架構模式簡介微服務架構模式
- Microservice架構模式簡介ROS架構模式
- Android 圖形架構簡介Android架構
- Redux技術架構簡介(一)Redux架構
- Java異常簡介及其架構Java架構
- Slack系統架構簡介 - jinlow架構
- 資料湖架構及概念簡介架構
- TiDB簡介與整體架構TiDB架構
- WebServiceCXF與Restful架構風格簡介WebREST架構
- Kubernetes系統架構簡介架構
- 人工智慧中代理架構簡介人工智慧架構
- 大資料分類和架構簡介大資料架構
- spring cloud架構整合-springcloud簡介SpringCloud架構GC
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- 一. SpringCloud簡介與微服務架構SpringGCCloud微服務架構
- Scrapy架構及資料流圖簡介架構
- 微服務架構的特徵簡要介紹微服務架構特徵
- Java平臺除錯架構簡介 (轉)Java除錯架構
- 01 . ELK Stack簡介原理及部署應用
- 十大常用軟體架構模式簡介架構模式
- 微服務架構:自動擴充套件簡介微服務架構套件
- Hive簡介、應用場景及架構原理Hive架構
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- Spring Cloud系列(一):微服務架構簡介SpringCloud微服務架構
- 簡單介紹架構設計的原則!架構
- JAVANIO學習筆記1-架構簡介Java筆記架構
- 無伺服器架構的簡單介紹伺服器架構
- 紅帽虛擬化RHEV-架構簡介架構
- ELK基礎架構解說-運維筆記架構運維筆記
- 大資料架構和模式(一)——大資料分類和架構簡介大資料架構模式
- 個人伺服器基礎設施架構簡介伺服器架構
- Redux技術架構簡介(二)– 非同步實現Redux架構非同步
- SAP Kyma(Extension Factory on SAP Cloud Platform)的架構簡介CloudPlatform架構