Centos7-Elasticaesrch7-Kibana7-Beats7-Logstash7虛擬機環境下載

本博主已經安裝與配置好的Centos7.6下ELK環境(都是基於最新版本730)虛擬機環境,鏈接:https://pan.baidu.com/s/1RJZI3VrczIi3a0RIt7–uQ
提取碼:luxg
下載後,解壓後,用Vmware workstation 打開,即可以直接使用。

ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但並非全部。

Elasticsearch是實時全文搜索和分析引擎,提供搜集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分散式系統。它構建於Apache Lucene搜索引擎庫之上。

Logstash是一個用來搜集、分析、過濾日誌的工具。它支持幾乎任何類型的日誌,包括系統日誌、錯誤日誌和自定義應用程序日誌。它可以從許多來源接收日誌,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。

Kibana是一個基於Web的圖形界面,用於搜索、分析和可視化存儲在 Elasticsearch指標中的日誌數據。它利用Elasticsearch的REST介面來檢索數據,不僅允許用戶創建他們自己的數據的定製儀錶板視圖,還允許他們以特殊的方式查詢和過濾數據

Filebeat:輕量級數據收集引擎。基於原先 Logstash-fowarder 的源碼改造出來。換句話說:Filebeat就是新版的 Logstash-fowarder,也會是 ELK Stack 在 Agent 的第一選擇。

Kafka: 數據緩衝隊列。作為消息隊列解耦了處理過程,同時提高了可擴展性。具有峰值處理能力,使用消息隊列能夠使關鍵組件頂住突發的訪問壓力,而不會因為突發的超負荷的請求而完全崩潰。

Logstash :數據收集處理引擎。支持動態的從各種數據源搜集數據,並對數據進行過濾、分析、豐富、統一格式等操作,然後存儲以供後續使用。

Elasticsearch :分散式搜索引擎。具有高可伸縮、高可靠、易管理等特點。可以用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 基於 Lucene 開發,現在使用最廣的開源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基於它來構建自己的搜索引擎。

Kibana :可視化化平台。它能夠搜索、展示存儲在 Elasticsearch 中索引數據。使用它可以很方便的用圖表、表格、地圖展示和分析數據。

為什麼用到ELK:

一般我們需要進行日誌分析場景:直接在日誌文件中 grep、awk 就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔、文本搜索太慢怎麼辦、如何多維度查詢。需要集中化的日誌管理,所有伺服器上的日誌收集匯總。常見解決思路是建立集中式日誌收集系統,將所有節點上的日誌統一收集,管理,訪問。

一般大型系統是一個分散式部署的架構,不同的服務模塊部署在不同的伺服器上,問題出現時,大部分情況需要根據問題暴露的關鍵信息,定位到具體的伺服器和服務模塊,構建一套集中式日誌系統,可以提高定位問題的效率。

一個完整的集中式日誌系統,需要包含以下幾個主要特點:
•收集-能夠採集多種來源的日誌數據
•傳輸-能夠穩定的把日誌數據傳輸到中央系統
•存儲-如何存儲日誌數據
•分析-可以支持 UI 分析
•警告-能夠提供錯誤報告,監控機制

本博主已經安裝與配置好的Centos7.6下ELK環境(都是基於最新版本730)虛擬機環境,鏈接:https://pan.baidu.com/s/1RJZI3VrczIi3a0RIt7–uQ
提取碼:luxg
下載後,解壓後,用Vmware workstation 打開,即可以直接使用。

ELK提供了一整套解決方案,並且都是開源軟體,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。目前主流的一種日誌系統。

一般我們需要進行日誌分析場景:直接在日誌文件中 grep、awk 就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔、文本搜索太慢怎麼辦、如何多維度查詢。需要集中化的日誌管理,所有伺服器上的日誌收集匯總。常見解決思路是建立集中式日誌收集系統,將所有節點上的日誌統一收集,管理,訪問。    一般大型系統是一個分散式部署的架構,不同的服務模塊部署在不同的伺服器上,問題出現時,大部分情況需要根據問題暴露的關鍵信息,定位到具體的伺服器和服務模塊,構建一套集中式日誌系統,可以提高定位問題的效率。    一個完整的集中式日誌系統,需要包含以下幾個主要特點:

♦ 收集-能夠採集多種來源的日誌數據;

♦ 傳輸-能夠穩定的把日誌數據傳輸到中央系統;

♦ 存儲-如何存儲日誌數據;

♦ 分析-可以支持 UI 分析;

♦ 警告-能夠提供錯誤報告,監控機制;    ELK提供了一整套解決方案,並且都是開源軟體,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。Filebeat工作原理     Filebeat由兩個主要組件組成:prospectors 和 harvesters。這兩個組件協同工作將文件變動發送到指定的輸出中。    Harvester:        Harvester負責讀取單個文件內容。每個文件會啟動一個Harvester,每個Harvester會逐行讀取各個文件,並將文件內容發送到制定輸出中。Harvester負責打開和關閉文件,意味在Harvester運行的時候,文件描述符處於打開狀態,如果文件在收集中被重命名或者被刪除,Filebeat會繼續讀取此文件。所以在Harvester關閉之前,磁碟不會被釋放。默認情況filebeat會保持文件打開的狀態,直到達到close_inactive(如果此選項開啟,filebeat會在指定時間內將不再更新的文件句柄關閉,時間從harvester讀取最後一行的時間開始計時。若文件句柄被關閉後,文件發生變化,則會啟動一個新的harvester。關閉文件句柄的時間不取決於文件的修改時間,若此參數配置不當,則可能發生日誌不實時的情況,由scan_frequency參數決定,默認10s。Harvester使用內部時間戳來記錄文件最後被收集的時間。例如:設置5m,則在Harvester讀取文件的最後一行之後,開始倒計時5分鐘,若5分鐘內文件無變化,則關閉文件句柄。默認5m)。    Prospector:         負責管理Harvester並找到所有讀取源。

Prospector會找到/apps/logs/*目錄下的所有info.log文件,並為每個文件啟動一個Harvester。Prospector會檢查每個文件,看Harvester是否已經啟動,是否需要啟動,或者文件是否可以忽略。若Harvester關閉,只有在文件大小發生變化的時候Prospector才會執行檢查。只能檢測本地的文件。    Filebeat會將文件狀態記錄在文件中(默認在/var/lib/filebeat/registry)。此狀態可以記住Harvester收集文件的偏移量。若連接不上輸出設備,如ES等,filebeat會記錄發送前的最後一行,並再可以連接的時候繼續發送。Filebeat在運行的時候,Prospector狀態會被記錄在內存中。Filebeat重啟的時候,利用registry記錄的狀態來進行重建,用來還原到重啟之前的狀態。每個Prospector會為每個找到的文件記錄一個狀態,對於每個文件,Filebeat存儲唯一標識符以檢測文件是否先前被收集。    Filebeat之所以能保證事件至少被傳遞到配置的輸出一次,沒有數據丟失,是因為filebeat將每個事件的傳遞狀態保存在文件中。在未得到輸出方確認時,filebeat會嘗試一直發送,直到得到回應。若filebeat在傳輸過程中被關閉,則不會再關閉之前確認所有時事件。任何在filebeat關閉之前為確認的時間,都會在filebeat重啟之後重新發送。這可確保至少發送一次,但有可能會重複。可通過設置shutdown_timeout 參數來設置關閉之前的等待事件回應的時間(默認禁用)。Logstash工作原理    Logstash事件處理有三個階段:inputs → filters → outputs。是一個接收,處理,轉發日誌的工具。支持系統日誌,webserver日誌,錯誤日誌,應用日誌,總之包括所有可以拋出來的日誌類型。Input    輸入數據到logstash,一些常用的輸入為:
♦ file:從文件系統的文件中讀取,類似於tial -f命令;
♦ syslog:在514埠上監聽系統日誌消息,並根據RFC3164標準進行解析;
♦ redis:從redis service中讀取;
♦ beats:從filebeat中讀取;Filters    數據中間處理,對數據進行操作,一些常用的過濾器為:        ♦ grok:解析任意文本數據,Grok 是 Logstash 最重要的插件。它的主要作用就是將文本格式的字元串,轉換成為具體的結構化的數據,配合正則表達式使用。內置120多個解析語法。        官方提供的grok表達式:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns        grok在線調試:https://grokdebug.herokuapp.com/
♦ mutate:對欄位進行轉換。例如對欄位進行刪除、替換、修改、重命名等。
♦ drop:丟棄一部分events不進行處理。
♦ clone:拷貝 event,這個過程中也可以添加或移除欄位。
♦ geoip:添加地理信息(為前台kibana圖形化展示使用)Outputs    outputs是logstash處理管道的最末端組件。一個event可以在處理過程中經過多重輸出,但是一旦所有的outputs都執行結束,這個event也就完成生命周期。一些常見的outputs為:
♦ elasticsearch:可以高效的保存數據,並且能夠方便和簡單的進行查詢。
♦ file:將event數據保存到文件中。
♦ graphite:將event數據發送到圖形化組件中,一個很流行的開源存儲圖形化展示的組件。Codecs    codecs 是基於數據流的過濾器,它可以作為input,output的一部分配置。Codecs可以幫助你輕鬆的分割發送過來已經被序列化的數據。一些常見的codecs:
♦ json:使用json格式對數據進行編碼/解碼。
♦ multiline:將匯多個事件中數據匯總為一個單一的行。比如:java異常信息和堆棧信息。Elasticsearch    Elasticsearch 是一個分散式的搜索和分析引擎,可以用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 基於 Lucene 開發,現在是使用最廣的開源搜索引擎之一。

本博主已經安裝與配置好的Centos7.6下ELK環境(都是基於最新版本730)虛擬機環境,鏈接:https://pan.baidu.com/s/1RJZI3VrczIi3a0RIt7–uQ
提取碼:luxg
下載後,解壓後,用Vmware workstation 打開,即可以直接使用。

基本概念
♦ node:即一個 Elasticsearch 的運行實例,使用多播或單播方式發現 cluster 並加入。
♦ cluster:包含一個或多個擁有相同集群名稱的 node,其中包含一個master node。
♦ index:類比關係型資料庫里的DB,是一個邏輯命名空間。
♦ alias:可以給 index 添加零個或多個alias,通過 alias 使用index 和根據index name 訪問index一樣,但是,alias給我們提供了一種切換index的能力,比如重建了index,取名customer_online_v2,這時,有了alias,我要訪問新 index,只需要把 alias 添加到新index 即可,並把alias從舊的 index 刪除。不用修改代碼。
♦ type:類比關係資料庫里的Table。其中,一個index可以定義多個type,但一般使用習慣僅配一個type。
♦ mapping:類比關係型資料庫中的 schema 概念,mapping 定義了 index 中的 type。mapping 可以顯示的定義,也可以在 document 被索引時自動生成,如果有新的 field,Elasticsearch 會自動推測出 field 的type並加到mapping中。
♦ document:類比關係資料庫里的一行記錄(record),document 是 Elasticsearch 里的一個 JSON 對象,包括零個或多個field。
♦ field:類比關係資料庫里的field,每個field 都有自己的欄位類型。
♦ shard:是一個Lucene 實例。Elasticsearch 基於 Lucene,shard 是一個 Lucene 實例,被 Elasticsearch 自動管理。之前提到,index 是一個邏輯命名空間,shard 是具體的物理概念,建索引、查詢等都是具體的shard在工作。shard 包括primary shard 和 replica shard,寫數據時,先寫到primary shard,然後,同步到replica shard,查詢時,primary 和 replica 充當相同的作用。replica shard 可以有多份,也可以沒有,replica shard的存在有兩個作用,一是容災,如果primary shard 掛了,數據也不會丟失,集群仍然能正常工作;二是提高性能,因為replica 和 primary shard 都能處理查詢。另外,如上圖右側紅框所示,shard數和replica數都可以設置,但是,shard 數只能在建立index 時設置,後期不能更改,但是,replica 數可以隨時更改。

Kibana    Kibana是一個開源的分析與可視化平台,設計出來用於和Elasticsearch一起使用的。可以用kibana搜索、查看、交互存放在Elasticsearch索引里的數據,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高級數據分析與可視化。ELK 架構    第一種ELK架構,是最簡單的一種ELK架構方式。優點是搭建簡單,易於上手。缺點是Logstash耗資源較大,運行佔用CPU和內存高。另外沒有消息隊列緩存,存在數據丟失隱患。建議供學習者和小規模集群使用。此架構首先由Logstash分布於各個節點上搜集相關日誌、數據,並經過分析、過濾後發送給遠端伺服器上的Elasticsearch進行存儲。Elasticsearch將數據以分片的形式壓縮存儲並提供多種API供用戶查詢,操作。用戶亦可以更直觀的通過配置Kibana Web Portal方便的對日誌查詢,並根據數據生成報表。

本博主已經安裝與配置好的Centos7.6下ELK環境(都是基於最新版本730)虛擬機環境,鏈接:https://pan.baidu.com/s/1RJZI3VrczIi3a0RIt7–uQ
提取碼:luxg
下載後,解壓後,用Vmware workstation 打開,即可以直接使用。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營