色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分布式實時日志分析解決方案ELK部署架構

馬哥Linux運維 ? 來源:OSCHINA ? 2023-01-29 11:55 ? 次閱讀

一、概述

ELK 已經成為目前最流行的集中式日志解決方案,它主要是由 Beats、Logstash、Elasticsearch、Kibana 等組件組成,來共同完成實時日志的收集,存儲,展示等一站式的解決方案。本文將會介紹 ELK 常見的架構以及相關問題解決。

Filebeat:Filebeat 是一款輕量級,占用服務資源非常少的數據收集引擎,它是 ELK 家族的新成員,可以代替 Logstash 作為在應用服務器端的日志收集引擎,支持將收集到的數據輸出到 Kafka,Redis 等隊列。

Logstash:數據收集引擎,相較于 Filebeat 比較重量級,但它集成了大量的插件,支持豐富的數據源收集,對收集的數據可以過濾,分析,格式化日志格式。

Elasticsearch:分布式數據搜索引擎,基于 Apache Lucene 實現,可集群,提供數據的集中式存儲,分析,以及強大的數據搜索和聚合功能。

Kibana:數據的可視化平臺,通過該 web 平臺可以實時的查看 Elasticsearch 中的相關數據,并提供了豐富的圖表統計功能。

二、ELK 常見部署架構

2.1、Logstash 作為日志收集器

這種架構是比較原始的部署架構,在各應用服務器端分別部署一個 Logstash 組件,作為日志收集器,然后將 Logstash 收集到的數據過濾、分析、格式化處理后發送至 Elasticsearch 存儲,最后使用 Kibana 進行可視化展示,這種架構不足的是:Logstash 比較耗服務器資源,所以會增加應用服務器端的負載壓力。

e8208bb2-97ff-11ed-bfe3-dac502259ad0.png

2.2、Filebeat 作為日志收集器

該架構與第一種架構唯一不同的是:應用端日志收集器換成了 Filebeat,Filebeat 輕量,占用服務器資源少,所以使用 Filebeat 作為應用服務器端的日志收集器,一般 Filebeat 會配合 Logstash 一起使用,這種部署方式也是目前最常用的架構。

e83b99ca-97ff-11ed-bfe3-dac502259ad0.png

2.3、引入緩存隊列的部署架構

該架構在第二種架構的基礎上引入了 Kafka 消息隊列(還可以是其他消息隊列),將 Filebeat 收集到的數據發送至 Kafka,然后在通過 Logstasth 讀取 Kafka 中的數據,這種架構主要是解決大數據量下的日志收集方案,使用緩存隊列主要是解決數據安全與均衡 Logstash 與 Elasticsearch 負載壓力。

e8581104-97ff-11ed-bfe3-dac502259ad0.png

2.4、以上三種架構的總結

第一種部署架構由于資源占用問題,現已很少使用,目前使用最多的是第二種部署架構,至于第三種部署架構個人覺得沒有必要引入消息隊列,除非有其他需求,因為在數據量較大的情況下,Filebeat 使用壓力敏感協議向 Logstash 或 Elasticsearch 發送數據。如果 Logstash 正在繁忙地處理數據,它會告知 Filebeat 減慢讀取速度。擁塞解決后,Filebeat 將恢復初始速度并繼續發送數據。

三、問題及解決方案

問題:如何實現日志的多行合并功能?

系統應用中的日志一般都是以特定格式進行打印的,屬于同一條日志的數據可能分多行進行打印,那么在使用 ELK 收集日志的時候就需要將屬于同一條日志的多行數據進行合并。

解決方案:使用 Filebeat 或 Logstash 中的 multiline 多行合并插件來實現

在使用 multiline 多行合并插件的時候需要注意,不同的 ELK 部署架構可能 multiline 的使用方式也不同,如果是本文的第一種部署架構,那么 multiline 需要在 Logstash 中配置使用,如果是第二種部署架構,那么 multiline 需要在 Filebeat 中配置使用,無需再在 Logstash 中配置 multiline。

1、multiline 在 Filebeat 中的配置方式:

filebeat.prospectors:
-
paths:
-/home/project/elk/logs/test.log
input_type:log
multiline:
pattern:'^['
negate:true
match:after
output:
logstash:
hosts:["localhost:5044"]

pattern:正則表達式

negate:默認為 false,表示匹配 pattern 的行合并到上一行;true 表示不匹配 pattern 的行合并到上一行

match:after 表示合并到上一行的末尾,before 表示合并到上一行的行首

如:

pattern:'['
negate:true
match:after

該配置表示將不匹配 pattern 模式的行合并到上一行的末尾

2、multiline 在 Logstash 中的配置方式

input{
beats{
port=>5044
}
}

filter{
multiline{
pattern=>"%{LOGLEVEL}s*]"
negate=>true
what=>"previous"
}
}

output{
elasticsearch{
hosts=>"localhost:9200"
}
}

(1)Logstash 中配置的 what 屬性值為 previous,相當于 Filebeat 中的 after,Logstash 中配置的 what 屬性值為 next,相當于 Filebeat 中的 before。(2)pattern => "%{LOGLEVEL}s*]" 中的 LOGLEVEL 是 Logstash 預制的正則匹配模式,預制的還有好多常用的正則匹配模式,詳細請看:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

問題:如何將 Kibana 中顯示日志的時間字段替換為日志信息中的時間?

默認情況下,我們在 Kibana 中查看的時間字段與日志信息中的時間不一致,因為默認的時間字段值是日志收集時的當前時間,所以需要將該字段的時間替換為日志信息中的時間。

解決方案:使用 grok 分詞插件與 date 時間格式化插件來實現

在 Logstash 的配置文件的過濾器中配置 grok 分詞插件與 date 時間格式化插件,如:

input{
beats{
port=>5044
}
}

filter{
multiline{
pattern=>"%{LOGLEVEL}s*][%{YEAR}%{MONTHNUM}%{MONTHDAY}s+%{TIME}]"
negate=>true
what=>"previous"
}

grok{
match=>["message","(?%{YEAR}%{MONTHNUM}%{MONTHDAY}s+%{TIME})"]
}

date{
match=>["customer_time","yyyyMMddHHss,SSS"]//格式化時間
target=>"@timestamp"http://替換默認的時間字段
}
}

output{
elasticsearch{
hosts=>"localhost:9200"
}
}

如,要匹配的日志格式為:“[DEBUG][20170811 1031,359][DefaultBeanDefinitionDocumentReader:106] Loading bean definitions”,解析出該日志的時間字段的方式有:

通過引入寫好的表達式文件,如表達式文件為 customer_patterns,內容為:CUSTOMER_TIME %{YEAR}%{MONTHNUM}%{MONTHDAY}s+%{TIME} 注:內容格式為:[自定義表達式名稱] [正則表達式] 然后 logstash 中就可以這樣引用:

filter{
grok{
patterns_dir=>["./customer-patterms/mypatterns"]//引用表達式文件路徑
match=>["message","%{CUSTOMER_TIME:customer_time}"]//使用自定義的grok表達式
}
}

以配置項的方式,規則為:(?< 自定義表達式名稱> 正則匹配規則),如:

filter{
grok{
match=>["message","(?%{YEAR}%{MONTHNUM}%{MONTHDAY}s+%{TIME})"]
}
}

問題:如何在 Kibana 中通過選擇不同的系統日志模塊來查看數據

一般在 Kibana 中顯示的日志數據混合了來自不同系統模塊的數據,那么如何來選擇或者過濾只查看指定的系統模塊的日志數據?

解決方案:新增標識不同系統模塊的字段或根據不同系統模塊建 ES 索引

1、新增標識不同系統模塊的字段,然后在 Kibana 中可以根據該字段來過濾查詢不同模塊的數據 這里以第二種部署架構講解,在 Filebeat 中的配置內容為:

filebeat.prospectors:
-
paths:
-/home/project/elk/logs/account.log
input_type:log
multiline:
pattern:'^['
negate:true
match:after
fields://新增log_from字段
log_from:account

-
paths:
-/home/project/elk/logs/customer.log
input_type:log
multiline:
pattern:'^['
negate:true
match:after
fields:
log_from:customer
output:
logstash:
hosts:["localhost:5044"]

通過新增:log_from 字段來標識不同的系統模塊日志

2、根據不同的系統模塊配置對應的 ES 索引,然后在 Kibana 中創建對應的索引模式匹配,即可在頁面通過索引模式下拉框選擇不同的系統模塊數據。這里以第二種部署架構講解,分為兩步:① 在 Filebeat 中的配置內容為:

filebeat.prospectors:
-
paths:
-/home/project/elk/logs/account.log
input_type:log
multiline:
pattern:'^['
negate:true
match:after
document_type:account

-
paths:
-/home/project/elk/logs/customer.log
input_type:log
multiline:
pattern:'^['
negate:true
match:after
document_type:customer
output:
logstash:
hosts:["localhost:5044"]

通過 document_type 來標識不同系統模塊

② 修改 Logstash 中 output 的配置內容為:

output{
elasticsearch{
hosts=>"localhost:9200"
index=>"%{type}"
}
}

在 output 中增加 index 屬性,%{type} 表示按不同的 document_type 值建 ES 索引

四、總結

本文主要介紹了 ELK 實時日志分析的三種部署架構,以及不同架構所能解決的問題,這三種架構中第二種部署方式是時下最流行也是最常用的部署方式,最后介紹了 ELK 作在日志分析中的一些問題與解決方案,說在最后,ELK 不僅僅可以用來作為分布式日志數據集中式查詢和管理,還可以用來作為項目應用以及服務器資源監控等場景,更多內容請看官網。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4413

    瀏覽量

    86469
  • 服務器
    +關注

    關注

    12

    文章

    9437

    瀏覽量

    86512
  • 數據源
    +關注

    關注

    1

    文章

    64

    瀏覽量

    9773
  • 日志
    +關注

    關注

    0

    文章

    139

    瀏覽量

    10714
  • 收集器
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3217

原文標題:分布式實時日志分析解決方案 ELK 部署架構

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分布式日志追蹤ID實戰

    作者:京東物流 張小龍 本文通過介紹分布式應用下各個場景的全局日志ID透傳思路,以及介紹分布式日志追蹤ID簡單實現原理和實戰效果,從而達到通過提高
    的頭像 發表于 01-20 10:16 ?414次閱讀

    使用分布式I/O進行實時部署系統的設計

    的8插槽機箱,與LabVIEW Real-Time的強大功能相結合,為確定性分布式I/O提供了便捷的解決方案。介紹當你需要在實時控制系統中設計分布式I/O時,你將怎么辦?首要問題就是如
    發表于 03-12 17:47

    開放分布式追蹤(OpenTracing)入門與 Jaeger 實現

    摘要: 分布式系統的運維挑戰 容器、Serverless 編程方式的誕生極大提升了軟件交付與部署的效率。在架構的演化過程中,可以看到兩個變化: 應用架構開始從單體系統逐步轉變為微服務,
    發表于 03-07 16:27

    微服務架構分布式事務解決方案 —— 阿里GTS

    摘要: 本文將深入和大家探討微服務架構下,分布式事務的各種解決方案,并重點為大家解讀阿里巴巴提出的分布式事務解決方案----GTS。該
    發表于 03-16 11:14

    一行代碼,保障分布式事務一致性—GTS:微服務架構分布式事務解決方案

    務產生的事務問題。分布式事務已經成為微服務落地最大的阻礙,也是最具挑戰性的一個技術難題。 為此,本文將深入和大家探討微服務架構下,分布式事務的各種解決方案,并重點為大家解讀阿里巴巴提出
    發表于 06-05 19:14

    Qorvo分布式Wi-Fi網格解決方案

    實現互聯世界的創新RF解決方案提供商Qorvo宣布,正使用 802.11ax 產品組合擴大分布式 Wi-Fi 解決方案在住宅中的適用范圍。該產品組合可改善 Wi-Fi 覆蓋范圍,幫助實現更小的器件
    發表于 11-02 07:01

    分布式KVM坐席拼控系統解決方案

    ,形成一個信息共享的云管理平臺。 視通科技經過多年來對技術的深入研究和對用戶使用習慣的積累,推出了AS-ADS 4K分布式KVM坐席拼控解決方案,本系統是一套技術先進、功能完善、性能穩定、安全可靠、操作
    發表于 02-26 15:15

    HDC技術分論壇:分布式調試、調優能力解決方案

    HarmonyOS致力于提供1+8+N智慧全場景解決方案,打造設備流轉、多端協同的分布式體驗,實現一次開發、多端部署,讓分布式應用的開發更加簡單。針對
    發表于 10-28 16:20

    HDC2021技術分論壇:分布式調試、調優能力解決方案

    作者:yangjianwei 華為高級工程師HarmonyOS致力于提供1+8+N智慧全場景解決方案,打造設備流轉、多端協同的分布式體驗,實現一次開發、多端部署,讓分布式應用的開發更加
    發表于 11-22 17:17

    基于Windows平臺的分布式實時仿真系統

    提出了解決Windows下分布式仿真的兩種方案:基于RTX的反射內存網分布式仿真和基于以太網的令牌環分布式仿真架構。并比較了兩種
    發表于 03-22 17:30 ?83次下載
    基于Windows平臺的<b class='flag-5'>分布式</b><b class='flag-5'>實時</b>仿真系統

    基于DOCKER容器的ELK日志收集系統分析

    分布式消息隊列redis部署實時消息自動化系統,能夠快速、實時地收集應用日志,提高運維人員的工作效率。詳細介紹了Docker、
    發表于 11-06 14:15 ?3次下載
    基于DOCKER容器的<b class='flag-5'>ELK</b><b class='flag-5'>日志</b>收集系統<b class='flag-5'>分析</b>

    基于分布式仿真系統的實時通訊架構

    基于分布式仿真系統的實時通訊架構
    發表于 06-19 14:55 ?11次下載

    什么是分布式系統 分布式架構有哪些

    什么是分布式系統? 1.分布式系統一定是由多個節點組成的系統。 2.這些連通的節點上部署了我們的節點,并且相互的操作會有協同。 隨著應用架構演進,
    的頭像 發表于 07-31 09:54 ?7645次閱讀

    分布式實時日志ELK部署架構方案

    架構與第一種架構唯一不同的是:應用端日志收集器換成了Filebeat,Filebeat輕量,占用服務器資源少,所以使用Filebeat作為應用服務器端的日志收集器,一般Filebea
    的頭像 發表于 01-08 09:56 ?989次閱讀

    分布式光纖測溫解決方案

    分布式光纖測溫解決方案
    的頭像 發表于 11-12 01:02 ?308次閱讀
    <b class='flag-5'>分布式</b>光纖測溫<b class='flag-5'>解決方案</b>
    主站蜘蛛池模板: 综合激情区视频一区视频二区 | 日日夜夜噜噜 | 91热久久免费频精品动漫99 | 毛片免费观看视频 | 国产人妻人伦精品A区 | 国产精品无码视频一区二区 | 欧美男男网站免费观看videos | 国产成人综合在线观看网站 | 首页_亚洲AV色老汉影院 | 欧美成人3d动漫专区 | jzz大全18| 国内自拍 在线 亚洲 欧美 | 99精品视频一区在线视频免费观看 | 嫩交18xxxx | 99久久免费看国产精品 | 青草影院天堂男人久久 | 在线看片成人免费视频 | 中文字幕在线观看网站 | 97久久无码精品AV | 久久免费看少妇高潮A片JA | 亚洲在线成色综合网站 | 朝鲜女人性猛交 | 办公室里做好紧好爽H | 久久九九精品国产自在现线拍 | 99视频精品全部免费免费观 | 亚洲精品久久久久久蜜臀 | 亚洲欧美日韩高清专区 | 欧美一级久久久久久久久大 | 亚洲精品国产高清不卡在线 | 日韩一本道无码v | 亚洲午夜精品A片久久WWW软件 | 国产在线精品一区二区网站免费 | 久久精品亚洲精品国产欧美 | 男女牲交大战免费播放 | 亚洲福利精品电影在线观看 | 久久国产精品无码视欧美 | 真实处破女全过程完免费观看 | 国产乱人视频在线观看 | 云南14学生真实初次破初视频 | 老熟风间由美AV在线一区二区 | 香蕉eeww99国产精选播放 |