欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入淺析ELK原理與簡(jiǎn)介

 更新時(shí)間:2021年09月08日 14:57:13   作者:我是一條最咸的咸魚  
ELK是三個(gè)開(kāi)源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開(kāi)源軟件。這篇文章主要介紹了ELK原理與介紹,需要的朋友可以參考下

為什么用到ELK:

一般我們需要進(jìn)行日志分析場(chǎng)景:直接在日志文件中 grep、awk 就可以獲得自己想要的信息。但在規(guī)模較大的場(chǎng)景中,此方法效率低下,面臨問(wèn)題包括日志量太大如何歸檔、文本搜索太慢怎么辦、如何多維度查詢。需要集中化的日志管理,所有服務(wù)器上的日志收集匯總。常見(jiàn)解決思路是建立集中式日志收集系統(tǒng),將所有節(jié)點(diǎn)上的日志統(tǒng)一收集,管理,訪問(wèn)。

一般大型系統(tǒng)是一個(gè)分布式部署的架構(gòu),不同的服務(wù)模塊部署在不同的服務(wù)器上,問(wèn)題出現(xiàn)時(shí),大部分情況需要根據(jù)問(wèn)題暴露的關(guān)鍵信息,定位到具體的服務(wù)器和服務(wù)模塊,構(gòu)建一套集中式日志系統(tǒng),可以提高定位問(wèn)題的效率。

一個(gè)完整的集中式日志系統(tǒng),需要包含以下幾個(gè)主要特點(diǎn):

  • 收集-能夠采集多種來(lái)源的日志數(shù)據(jù)
  • 傳輸-能夠穩(wěn)定的把日志數(shù)據(jù)傳輸?shù)街醒胂到y(tǒng)
  • 存儲(chǔ)-如何存儲(chǔ)日志數(shù)據(jù)
  • 分析-可以支持 UI 分析
  • 警告-能夠提供錯(cuò)誤報(bào)告,監(jiān)控機(jī)制

ELK提供了一整套解決方案,并且都是開(kāi)源軟件,之間互相配合使用,完美銜接,高效的滿足了很多場(chǎng)合的應(yīng)用。目前主流的一種日志系統(tǒng)。

ELK簡(jiǎn)介:

ELK是三個(gè)開(kāi)源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開(kāi)源軟件。新增了一個(gè)FileBeat,它是一個(gè)輕量級(jí)的日志收集處理工具(Agent),F(xiàn)ilebeat占用資源少,適合于在各個(gè)服務(wù)器上搜集日志后傳輸給Logstash,官方也推薦此工具。

Elasticsearch是個(gè)開(kāi)源分布式搜索引擎,提供搜集、分析、存儲(chǔ)數(shù)據(jù)三大功能。它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。

Logstash 主要是用來(lái)日志的搜集、分析、過(guò)濾日志的工具,支持大量的數(shù)據(jù)獲取方式。一般工作方式為c/s架構(gòu),client端安裝在需要收集日志的主機(jī)上,server端負(fù)責(zé)將收到的各節(jié)點(diǎn)日志進(jìn)行過(guò)濾、修改等操作在一并發(fā)往elasticsearch上去。

Kibana 也是一個(gè)開(kāi)源和免費(fèi)的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數(shù)據(jù)日志。

Filebeat隸屬于Beats。目前Beats包含四種工具:

  1. Packetbeat(搜集網(wǎng)絡(luò)流量數(shù)據(jù))
  2. Topbeat(搜集系統(tǒng)、進(jìn)程和文件系統(tǒng)級(jí)別的 CPU 和內(nèi)存使用情況等數(shù)據(jù))
  3. Filebeat(搜集文件數(shù)據(jù))
  4. Winlogbeat(搜集 Windows 事件日志數(shù)據(jù))

官方文檔:

Filebeat:

https://www.elastic.co/cn/products/beats/filebeat
https://www.elastic.co/guide/en/beats/filebeat/5.6/index.html

Logstash:
https://www.elastic.co/cn/products/logstash
https://www.elastic.co/guide/en/logstash/5.6/index.html

Kibana:

https://www.elastic.co/cn/products/kibana

https://www.elastic.co/guide/en/kibana/5.5/index.html

Elasticsearch:
https://www.elastic.co/cn/products/elasticsearch
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

elasticsearch中文社區(qū):
https://elasticsearch.cn/

ELK架構(gòu)圖:

架構(gòu)圖一:

這是最簡(jiǎn)單的一種ELK架構(gòu)方式。優(yōu)點(diǎn)是搭建簡(jiǎn)單,易于上手。缺點(diǎn)是Logstash耗資源較大,運(yùn)行占用CPU和內(nèi)存高。另外沒(méi)有消息隊(duì)列緩存,存在數(shù)據(jù)丟失隱患。

此架構(gòu)由Logstash分布于各個(gè)節(jié)點(diǎn)上搜集相關(guān)日志、數(shù)據(jù),并經(jīng)過(guò)分析、過(guò)濾后發(fā)送給遠(yuǎn)端服務(wù)器上的Elasticsearch進(jìn)行存儲(chǔ)。Elasticsearch將數(shù)據(jù)以分片的形式壓縮存儲(chǔ)并提供多種API供用戶查詢,操作。用戶亦可以更直觀的通過(guò)配置Kibana Web方便的對(duì)日志查詢,并根據(jù)數(shù)據(jù)生成報(bào)表。

架構(gòu)圖二:

此種架構(gòu)引入了消息隊(duì)列機(jī)制,位于各個(gè)節(jié)點(diǎn)上的Logstash Agent先將數(shù)據(jù)/日志傳遞給Kafka(或者Redis),并將隊(duì)列中消息或數(shù)據(jù)間接傳遞給Logstash,Logstash過(guò)濾、分析后將數(shù)據(jù)傳遞給Elasticsearch存儲(chǔ)。最后由Kibana將日志和數(shù)據(jù)呈現(xiàn)給用戶。因?yàn)橐肓薑afka(或者Redis),所以即使遠(yuǎn)端Logstash server因故障停止運(yùn)行,數(shù)據(jù)將會(huì)先被存儲(chǔ)下來(lái),從而避免數(shù)據(jù)丟失。

架構(gòu)圖三:

此種架構(gòu)將收集端logstash替換為beats,更靈活,消耗資源更少,擴(kuò)展性更強(qiáng)。同時(shí)可配置Logstash 和Elasticsearch 集群用于支持大集群系統(tǒng)的運(yùn)維日志數(shù)據(jù)監(jiān)控和查詢。

Filebeat工作原理:

Filebeat由兩個(gè)主要組件組成:prospectors 和 harvesters。這兩個(gè)組件協(xié)同工作將文件變動(dòng)發(fā)送到指定的輸出中。

Harvester(收割機(jī)):負(fù)責(zé)讀取單個(gè)文件內(nèi)容。每個(gè)文件會(huì)啟動(dòng)一個(gè)Harvester,每個(gè)Harvester會(huì)逐行讀取各個(gè)文件,并將文件內(nèi)容發(fā)送到制定輸出中。Harvester負(fù)責(zé)打開(kāi)和關(guān)閉文件,意味在Harvester運(yùn)行的時(shí)候,文件描述符處于打開(kāi)狀態(tài),如果文件在收集中被重命名或者被刪除,F(xiàn)ilebeat會(huì)繼續(xù)讀取此文件。所以在Harvester關(guān)閉之前,磁盤不會(huì)被釋放。默認(rèn)情況filebeat會(huì)保持文件打開(kāi)的狀態(tài),直到達(dá)到close_inactive(如果此選項(xiàng)開(kāi)啟,filebeat會(huì)在指定時(shí)間內(nèi)將不再更新的文件句柄關(guān)閉,時(shí)間從harvester讀取最后一行的時(shí)間開(kāi)始計(jì)時(shí)。若文件句柄被關(guān)閉后,文件發(fā)生變化,則會(huì)啟動(dòng)一個(gè)新的harvester。關(guān)閉文件句柄的時(shí)間不取決于文件的修改時(shí)間,若此參數(shù)配置不當(dāng),則可能發(fā)生日志不實(shí)時(shí)的情況,由scan_frequency參數(shù)決定,默認(rèn)10s。Harvester使用內(nèi)部時(shí)間戳來(lái)記錄文件最后被收集的時(shí)間。例如:設(shè)置5m,則在Harvester讀取文件的最后一行之后,開(kāi)始倒計(jì)時(shí)5分鐘,若5分鐘內(nèi)文件無(wú)變化,則關(guān)閉文件句柄。默認(rèn)5m)。

Prospector(勘測(cè)者):負(fù)責(zé)管理Harvester并找到所有讀取源。

Prospector會(huì)找到/apps/logs/*目錄下的所有info.log文件,并為每個(gè)文件啟動(dòng)一個(gè)Harvester。Prospector會(huì)檢查每個(gè)文件,看Harvester是否已經(jīng)啟動(dòng),是否需要啟動(dòng),或者文件是否可以忽略。若Harvester關(guān)閉,只有在文件大小發(fā)生變化的時(shí)候Prospector才會(huì)執(zhí)行檢查。只能檢測(cè)本地的文件。

Filebeat如何記錄文件狀態(tài):

將文件狀態(tài)記錄在文件中(默認(rèn)在/var/lib/filebeat/registry)。此狀態(tài)可以記住Harvester收集文件的偏移量。若連接不上輸出設(shè)備,如ES等,filebeat會(huì)記錄發(fā)送前的最后一行,并再可以連接的時(shí)候繼續(xù)發(fā)送。Filebeat在運(yùn)行的時(shí)候,Prospector狀態(tài)會(huì)被記錄在內(nèi)存中。Filebeat重啟的時(shí)候,利用registry記錄的狀態(tài)來(lái)進(jìn)行重建,用來(lái)還原到重啟之前的狀態(tài)。每個(gè)Prospector會(huì)為每個(gè)找到的文件記錄一個(gè)狀態(tài),對(duì)于每個(gè)文件,F(xiàn)ilebeat存儲(chǔ)唯一標(biāo)識(shí)符以檢測(cè)文件是否先前被收集。

Filebeat如何保證事件至少被輸出一次:

Filebeat之所以能保證事件至少被傳遞到配置的輸出一次,沒(méi)有數(shù)據(jù)丟失,是因?yàn)閒ilebeat將每個(gè)事件的傳遞狀態(tài)保存在文件中。在未得到輸出方確認(rèn)時(shí),filebeat會(huì)嘗試一直發(fā)送,直到得到回應(yīng)。若filebeat在傳輸過(guò)程中被關(guān)閉,則不會(huì)再關(guān)閉之前確認(rèn)所有時(shí)事件。任何在filebeat關(guān)閉之前為確認(rèn)的時(shí)間,都會(huì)在filebeat重啟之后重新發(fā)送。這可確保至少發(fā)送一次,但有可能會(huì)重復(fù)。可通過(guò)設(shè)置shutdown_timeout 參數(shù)來(lái)設(shè)置關(guān)閉之前的等待事件回應(yīng)的時(shí)間(默認(rèn)禁用)。

Logstash工作原理:

Logstash事件處理有三個(gè)階段:inputs → filters → outputs。是一個(gè)接收,處理,轉(zhuǎn)發(fā)日志的工具。支持系統(tǒng)日志,webserver日志,錯(cuò)誤日志,應(yīng)用日志,總之包括所有可以拋出來(lái)的日志類型。

Input:輸入數(shù)據(jù)到logstash。

一些常用的輸入為:

file:從文件系統(tǒng)的文件中讀取,類似于tail -f命令

syslog:在514端口上監(jiān)聽(tīng)系統(tǒng)日志消息,并根據(jù)RFC3164標(biāo)準(zhǔn)進(jìn)行解析

redis:從redis service中讀取

beats:從filebeat中讀取

Filters:數(shù)據(jù)中間處理,對(duì)數(shù)據(jù)進(jìn)行操作。

一些常用的過(guò)濾器為:

grok:解析任意文本數(shù)據(jù),Grok 是 Logstash 最重要的插件。它的主要作用就是將文本格式的字符串,轉(zhuǎn)換成為具體的結(jié)構(gòu)化的數(shù)據(jù),配合正則表達(dá)式使用。內(nèi)置120多個(gè)解析語(yǔ)法。

官方提供的grok表達(dá)式:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
grok在線調(diào)試:https://grokdebug.herokuapp.com/

mutate:對(duì)字段進(jìn)行轉(zhuǎn)換。例如對(duì)字段進(jìn)行刪除、替換、修改、重命名等。

drop:丟棄一部分events不進(jìn)行處理。

clone:拷貝 event,這個(gè)過(guò)程中也可以添加或移除字段。

geoip:添加地理信息(為前臺(tái)kibana圖形化展示使用)

Outputs:outputs是logstash處理管道的最末端組件。一個(gè)event可以在處理過(guò)程中經(jīng)過(guò)多重輸出,但是一旦所有的outputs都執(zhí)行結(jié)束,這個(gè)event也就完成生命周期。

一些常見(jiàn)的outputs為:

elasticsearch:可以高效的保存數(shù)據(jù),并且能夠方便和簡(jiǎn)單的進(jìn)行查詢。

file:將event數(shù)據(jù)保存到文件中。

graphite:將event數(shù)據(jù)發(fā)送到圖形化組件中,一個(gè)很流行的開(kāi)源存儲(chǔ)圖形化展示的組件。

Codecs:codecs 是基于數(shù)據(jù)流的過(guò)濾器,它可以作為input,output的一部分配置。Codecs可以幫助你輕松的分割發(fā)送過(guò)來(lái)已經(jīng)被序列化的數(shù)據(jù)。

一些常見(jiàn)的codecs:

json:使用json格式對(duì)數(shù)據(jù)進(jìn)行編碼/解碼。

multiline:將匯多個(gè)事件中數(shù)據(jù)匯總為一個(gè)單一的行。比如:java異常信息和堆棧信息。

到此這篇關(guān)于ELK原理與介紹的文章就介紹到這了,更多相關(guān)ELK原理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • chatgpt?1020?錯(cuò)誤碼成功解決的三種方案(推薦)

    chatgpt?1020?錯(cuò)誤碼成功解決的三種方案(推薦)

    造成1020錯(cuò)誤的主要原因是代理問(wèn)題,當(dāng)打開(kāi)代理時(shí),登錄該網(wǎng)站會(huì)直接顯示上述錯(cuò)誤“Access?denied?Error?code?1020”,怎么解決這個(gè)問(wèn)題呢,下面小編給大家?guī)?lái)了chatgpt?1020?錯(cuò)誤碼成功解決的三種方案,感興趣的朋友一起看看吧
    2023-02-02
  • layabox2.0命令行在vscode中編譯打包問(wèn)題

    layabox2.0命令行在vscode中編譯打包問(wèn)題

    這篇文章主要介紹了layabox2.0命令行在vscode中編譯打包問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳細(xì)講解HDFS的高可用機(jī)制

    詳細(xì)講解HDFS的高可用機(jī)制

    本文詳細(xì)講解了HDFS的高可用機(jī)制。如果namenode出現(xiàn)問(wèn)題,整個(gè)HDFS集群將不能使用,HDFS高可用(HA)方案就是為了解決這個(gè)問(wèn)題而產(chǎn)生的,讓我們一起來(lái)了解了解吧
    2021-08-08
  • 在小程序中實(shí)現(xiàn)ChatGPT?聊天打字兼自動(dòng)滾動(dòng)效果

    在小程序中實(shí)現(xiàn)ChatGPT?聊天打字兼自動(dòng)滾動(dòng)效果

    ChatGPT已經(jīng)長(zhǎng)時(shí)間大火,未來(lái)將會(huì)是AI的天下,們需要更多地學(xué)習(xí)和掌握AI,而不是被AI所取代,在?ChatGPT?的背景下,我們今天來(lái)聊聊在小程序中怎么實(shí)現(xiàn)類似?chatGPT?的聊天打字效果,并且實(shí)現(xiàn)滾動(dòng)效果
    2023-06-06
  • IntelliJ IDEA 2020最新注冊(cè)碼(親測(cè)有效,可激活至 2089 年)

    IntelliJ IDEA 2020最新注冊(cè)碼(親測(cè)有效,可激活至 2089 年

    這篇文章主要介紹了IntelliJ IDEA 2020最新注冊(cè)碼,親測(cè)有效,可激活至 2089 年,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于chatgpt的微信自動(dòng)回復(fù)功能實(shí)現(xiàn)

    基于chatgpt的微信自動(dòng)回復(fù)功能實(shí)現(xiàn)

    這篇文章主要介紹了基于chatgpt的微信自動(dòng)回復(fù)功能實(shí)現(xiàn),微信自動(dòng)回復(fù)基于聊天api的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 全網(wǎng)最強(qiáng)下載神器IDM使用教程之利用IDM加速下載百度網(wǎng)盤大文件的方法

    全網(wǎng)最強(qiáng)下載神器IDM使用教程之利用IDM加速下載百度網(wǎng)盤大文件的方法

    自從不限速度盤下載工具Pandownload被封殺后,有些網(wǎng)友紛紛表示:幸好我們還有IDM,但是很多朋友對(duì)IDM不是多了解,下面小編給大家介紹下下載神器IDM使用教程之利用IDM加速下載百度網(wǎng)盤大文件的方法,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    php清空mysql asp情況access或mssql
    2008-12-12
  • 256種編程語(yǔ)言大匯總

    256種編程語(yǔ)言大匯總

    這篇文章主要介紹了256種編程語(yǔ)言大匯總,想學(xué)編程語(yǔ)言的同學(xué)可以看一下,需要的朋友可以參考下
    2014-09-09
  • Git 標(biāo)簽使用詳解

    Git 標(biāo)簽使用詳解

    這篇文章主要介紹了Git 標(biāo)簽使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論