ELK學(xué)習(xí)筆記

ELK 官方網(wǎng)站:https://www.elastic.co/products
相關(guān)概念:
  • Elasticsearch :分布式搜索引擎赎线。具有高可伸縮郭赐、高可靠、易管理等特點(diǎn)毅舆±舳觯可以用于全文檢索、結(jié)構(gòu)化檢索和分析笆怠,并能將這三者結(jié)合起來(lái)铝耻。Elasticsearch 基于 Lucene 開(kāi)發(fā),現(xiàn)在使用最廣的開(kāi)源搜索引擎之一蹬刷,Wikipedia 瓢捉、StackOverflow、Github 等都基于它來(lái)構(gòu)建自己的搜索引擎办成。

  • Logstash :數(shù)據(jù)收集處理引擎泡态。支持動(dòng)態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過(guò)濾诈火、分析兽赁、豐富、統(tǒng)一格式等操作冷守,然后存儲(chǔ)以供后續(xù)使用。

  • Kibana :可視化化平臺(tái)惊科。它能夠搜索拍摇、展示存儲(chǔ)在 Elasticsearch 中索引數(shù)據(jù)。使用它可以很方便的用圖表馆截、表格充活、地圖展示和分析數(shù)據(jù)。

  1. 項(xiàng)目中l(wèi)og4j2配置文件
     <?xml version="1.0" encoding="UTF-8"?>
     <configuration status="WARN" monitorInterval="30">
         <Properties>
             <Property name="LOG_HOME">logs</Property>
         </Properties>
         <appenders>
             <Console name="CONSOLE_OUT" target="SYSTEM_OUT">
                 <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY" />
                 <PatternLayout charset="utf-8" pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%pid] [%thread] %-5level %logger{36}.%M - %msg%n"/>
             </Console>
             <Console name="CONSOLE_ERROR" target="SYSTEM_ERR">
                 <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
                 <PatternLayout charset="utf-8" pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%pid] [%thread] %-5level %logger{36}.%M - %msg%n" />
             </Console>
             <Socket name="logStash" host="localhost" port="4567" protocol="TCP">
                 <PatternLayout charset="utf-8">
                     <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{36}.%M - %msg%n</pattern>
                 </PatternLayout>
             </Socket>
         </appenders>
         <loggers>
             <root level="INFO">
                 <appender-ref ref="CONSOLE_OUT"/>
                 <appender-ref ref="CONSOLE_ERROR"/>
                 <appender-ref ref="logStash"/>
             </root>
         </loggers>
     </configuration>
    
  2. 搭建ElasticSearch
    • 解壓
    • 修改配置文件 config/elasticsearch.yml
     cluster.name=es_cluster
     node.name=node0
     path.data=/tmp/elasticsearch/data
     path.logs=/tmp/elasticsearch/logs
     network.host=localhost
     network.port=9200
    
    • 運(yùn)行: 點(diǎn)擊elasticsearch.bat
    • 瀏覽器打開(kāi)localhost:9200蜡娶,看到有配置相關(guān)的信息就表示安裝成功
  3. 搭建Logstash
    • 解壓
    • 添加配置文件 config/test.conf
     input {
         tcp {
             host => "localhost"
             port => "4567"  # 與springBoot中的log4j的配置端口一致
         }
     }
     output {
         stdout {
             codec => rubydebug
         }
         elasticsearch {
             hosts => ["127.0.0.1:9200"]
             index => "analysis"
         }
     }
    
    • 安裝plugins-inputs-tcp混卵,默認(rèn)識(shí)別log4j,為了識(shí)別log4j2窖张,必須要安裝插件
    bin/logstash-plugin list --verbose // 先查看是否安裝過(guò)
    ./bin/logstash-plugin install logstash-input-tcp // 安裝命令
    
    • 啟動(dòng)SpringBoot應(yīng)用程序
    • 運(yùn)行: ./bin/logstash -f ./config/test.conf
    • 瀏覽器打開(kāi)localhost:9200/analysis/_search
Logstash補(bǔ)充:
  • Input:輸入幕随,輸入數(shù)據(jù)可以是 File 、 Stdin(直接從控制臺(tái)輸入) 宿接、TCP赘淮、Syslog 辕录、Redis 、Collectd 等梢卸。

  • Filter:過(guò)濾走诞,將日志輸出成我們想要的格式。Logstash 存在豐富的過(guò)濾插件:Grok 正則捕獲蛤高、時(shí)間處理蚣旱、JSON 編解碼、數(shù)據(jù)修改 Mutate 戴陡。

  • Output:輸出塞绿,輸出目標(biāo)可以是 Stdout (直接從控制臺(tái)輸出)、Elasticsearch 猜欺、Redis 位隶、TCP 、File 等开皿。

  1. 搭建Kibana
  • 解壓
  • 修改配置文件 config/kibana.yml
 server.port: 5601
 server.host: "127.0.0.1"
 elasticsearch.hosts: ["http://localhost:9200"]
  • 運(yùn)行: ./bin/logstash -f ./config/test.conf
  • 瀏覽器打開(kāi)localhost:5601
  • 新建索引 analysis (索引名不能有大寫(xiě)和特殊字符)
  • 根據(jù)索引篩選日志內(nèi)容
補(bǔ)充:

當(dāng)遇到 Logstash 接收數(shù)據(jù)的能力超過(guò) Elasticsearch 集群處理能力的時(shí)候涧黄,就可以通過(guò)隊(duì)列就能起到削峰填谷的作用, Elasticsearch 集群就不存在丟失數(shù)據(jù)的問(wèn)題赋荆。使用比較多的兩種消息隊(duì)列為Kafka和Redis笋妥。主要從下面兩個(gè)方面考慮:

  • 數(shù)據(jù)丟失:Redis 隊(duì)列多用于實(shí)時(shí)性較高的消息推送,并不保證可靠窄潭。Kafka保證可靠但有點(diǎn)延時(shí)
  • 數(shù)據(jù)堆積:Redis 隊(duì)列容量取決于機(jī)器內(nèi)存大小春宣,如果超過(guò)設(shè)置的Max memory,數(shù)據(jù)就會(huì)拋棄嫉你。Kafka 的堆積能力取決于機(jī)器硬盤(pán)大小月帝。
EFK
  • Filebeat :輕量級(jí)數(shù)據(jù)收集引擎∮奈郏基于原先 Logstash-fowarder 的源碼改造出來(lái)嚷辅。用 Golang 編寫(xiě),無(wú)需依賴(lài) Java 環(huán)境距误,效率高簸搞,占用內(nèi)存和 CPU 比較少,非常適合作為 Agent 跑在服務(wù)器上准潭。

如果日志的量很大趁俊,Logstash 會(huì)遇到資源占用高的問(wèn)題,為解決這個(gè)問(wèn)題就可以引入了Filebeat刑然。

Filebeat的基本用法寺擂。編寫(xiě)配置文件,從 Nginx access.log 中解析日志數(shù)據(jù):

# filebeat.yml
filebeat.prospectors:
- input_type: log
  paths: /var/log/nginx/access.log
  json.message_key:

output.elasticsearch:
  hosts: ["localhost"]
  index: "filebeat-nginx-%{+yyyy.MM.dd}"

通過(guò)應(yīng)用實(shí)踐發(fā)現(xiàn),F(xiàn)ilebeat 所消耗的CPU只有 Logstash 的70%沽讹,但收集速度為 Logstash 的7倍般卑。從我們的應(yīng)用實(shí)踐來(lái)看,F(xiàn)ilebeat 確實(shí)用較低的成本和穩(wěn)定的服務(wù)質(zhì)量蝠检,解決了 Logstash 的資源消耗問(wèn)題叹谁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末析苫,一起剝皮案震驚了整個(gè)濱河市衩侥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峦萎,老刑警劉巖爱榔,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異揣钦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)匈庭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)魔熏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鼎姊,你說(shuō)我怎么就攤上這事●烧裕” “怎么了战授?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵璃吧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我毡咏,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任纹安,我火速辦了婚禮,結(jié)果婚禮上滋戳,老公的妹妹穿的比我還像新娘钻蔑。我一直安慰自己,他們只是感情好奸鸯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布咪笑。 她就那樣靜靜地躺著,像睡著了一般娄涩。 火紅的嫁衣襯著肌膚如雪窗怒。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天蓄拣,我揣著相機(jī)與錄音扬虚,去河邊找鬼。 笑死球恤,一個(gè)胖子當(dāng)著我的面吹牛辜昵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咽斧,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼堪置,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了张惹?” 一聲冷哼從身側(cè)響起舀锨,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宛逗,沒(méi)想到半個(gè)月后坎匿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雷激,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年替蔬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屎暇。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡进栽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恭垦,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布番挺,位于F島的核電站唠帝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏玄柏。R本人自食惡果不足惜襟衰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粪摘。 院中可真熱鬧瀑晒,春花似錦、人聲如沸徘意。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)椎咧。三九已至玖详,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勤讽,已是汗流浹背蟋座。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脚牍,地道東北人向臀。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像诸狭,于是被迫代替她去往敵國(guó)和親券膀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容