Elasticsearch之分布式日志ELK Stack

@[TOC](Elasticsearch之分布式日志ELK Stack)

Elasticsearch之分布式日志ELK Stack:https://blog.csdn.net/weixin_42526326/article/details/121302809

Elasticsearch官方用戶手冊:https://www.elastic.co/guide/en/elasticsearch/reference/7.15/index.html

Kibana官方用戶手冊:https://www.elastic.co/guide/cn/kibana/current/index.html

基本介紹

  • 什么是分布式日志

在分布式應(yīng)用中,日志被分散在儲存不同的設(shè)備上。如果你管理數(shù)十上百臺服務(wù)器,你還在使用依次登錄每臺機器的傳統(tǒng)方法查閱日志。這樣是不是感覺很繁瑣和效率低下亏镰。所以我們使用集中化的日志管理汉矿,分布式日志就是對大規(guī)模日志數(shù)據(jù)進行采集、追蹤、處理公荧。

  • 為什么要使用分布式日志

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

  • ELK 分布式日志

實際上ELK是三款軟件的簡稱,分別是Elasticsearch缕碎、 Logstash褥影、Kibana組成。

Elasticsearch 基于java咏雌,是個開源分布式搜索引擎凡怎,它的特點有:分布式校焦,零配置,自動發(fā)現(xiàn)统倒,索引自動分片寨典,索引副本機制,restful風(fēng)格接口房匆,多數(shù)據(jù)源耸成,自動搜索負載等。

Kibana 基于nodejs浴鸿,也是一個開源和免費的工具井氢,Kibana可以為LogstashElasticSearch提供的日志分析友好的Web 界面,可以匯總岳链、分析和搜索重要數(shù)據(jù)日志花竞。

Logstash 基于java,是一個開源的用于收集,分析和存儲日志的工具宠页。

下面是ELK的工作原理:

elk

ElasticSearch

簡介

ElasticSearch是一個基于Lucene的搜索服務(wù)器左胞。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口举户。Elasticsearch是用Java開發(fā)的烤宙,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎俭嘁。設(shè)計用于云計算中躺枕,能夠達到實時搜索,穩(wěn)定供填,可靠拐云,快速,安裝使用方便近她。

我們建立一個網(wǎng)站或應(yīng)用程序叉瘩,并要添加搜索功能,但是想要完成搜索工作的創(chuàng)建是非常困難的粘捎。我們希望搜索解決方案要運行速度快薇缅,我們希望能有一個零配置和一個完全免費的搜索模式,我們希望能夠簡單地使用JSON通過HTTP來索引數(shù)據(jù)攒磨,我們希望我們的搜索服務(wù)器始終可用泳桦,我們希望能夠從一臺開始并擴展到數(shù)百臺,我們要實時搜索娩缰,我們要簡單的多租戶灸撰,我們希望建立一個云的解決方案。因此我們利用Elasticsearch來解決所有這些問題及可能出現(xiàn)的更多其它問題。

ElasticSearch是Elastic Stack的核心浮毯,同時Elasticsearch 是一個分布式完疫、RESTful風(fēng)格的搜索和數(shù)據(jù)分析引擎,能夠解決不斷涌現(xiàn)出的各種用例亲轨。作為Elastic Stack的核心趋惨,它集中存儲您的數(shù)據(jù),幫助您發(fā)現(xiàn)意料之中以及意料之外的情況惦蚊。

下載

選擇需要的版本器虾,目前高版本的已經(jīng)需要JDK11支持

我本地和服務(wù)器上都是使用7.13 + JDK 1.8 , 試了7.15版本不支持

官方下載地址

在這里插入圖片描述

安裝

Windows

/elasticsearch 
或者
bin/elasticsearch.bat

Linux

  • 解壓到相應(yīng)目錄
tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz -C /usr/local
  • 修改配置
cd /usr/local/elasticsearch-7.10.2/config/
vim elasticsearch.yml
node.name: node-1
path.data: /usr/local/elasticsearch-7.10.2/data
path.logs: /usr/local/elasticsearch-7.10.2/logs
network.host: 127.0.0.1
http.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
  • 創(chuàng)建es用戶 因為ElasticSearch不支持Root用戶直接操作,因此我們需要創(chuàng)建一個es用戶
useradd es
chown -R es:es /usr/local/elasticsearch-7.10.2

啟動

  • 切換用戶成es用戶進行操作
su - es
/usr/local/elasticsearch-7.10.2/bin/elasticsearch
  • 后臺啟動
/usr/local/elasticsearch-7.10.2/bin/elasticsearch -d 

在瀏覽器打開9200端口地址: (http://120.78.129.95:9200/ (opens new window))蹦锋,如果出現(xiàn)了下面的信息兆沙,就表示已經(jīng)成功啟動了

Elasticsearch

安全設(shè)置

修改配置文件

修改config目錄下面的elasticsearch.yml文件,在里面添加如下內(nèi)容,并重啟

關(guān)閉安全設(shè)置

xpack.security.enabled: false

開啟安全設(shè)置

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

設(shè)置用戶名和密碼

這里需要為4個用戶分別設(shè)置密碼莉掂,elastic, kibana, logstash_system,beats_system

elastic 賬號:擁有 superuser 角色葛圃,是內(nèi)置的超級用戶。
kibana 賬號:擁有 kibana_system 角色憎妙,用戶 kibana 用來連接 elasticsearch 并與之通信库正。Kibana 服務(wù)器以該用戶身份提交請求以訪問集群監(jiān)視 API 和 .kibana 索引。不能訪問 index厘唾。
logstash_system 賬號:擁有 logstash_system 角色褥符。用戶 Logstash 在 Elasticsearch 中存儲監(jiān)控信息時使用。

cmd 命令行進入ES安裝目錄抚垃,運行下面的命令行

這里在設(shè)置用戶名和密碼的時候都是隱式的設(shè)置喷楣,并非鍵盤有問題

bin/elasticsearch-setup-passwords interactive
在這里插入圖片描述

修改用戶名和密碼

Linux服務(wù)器

-- 創(chuàng)建超級用戶 TestSuper
elasticsearch-users useradd TestSuper -r superuser
-- 通過接口更改密碼
 curl -H "Content-Type:application/json" -XPOST -u elastic:now_password 'http://10.10.17.19:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

windows

重裝大法

未完成,已崩潰鹤树,重啟中铣焊。。罕伯。

Logstash

簡介

Logstash是一個開源的服務(wù)器端數(shù)據(jù)處理管道曲伊,能夠同時從多個來源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)追他,然后將數(shù)據(jù)發(fā)送到最喜歡的存儲庫中(我們的存儲庫當然是ElasticSearch)

下載

到官網(wǎng)下載: (https://www.elastic.co/cn/downloads/logstash (opens new window))

Logstash

安裝

  • 解壓到相應(yīng)目錄
tar -zxvf logstash-7.10.2.tar.gz -C /usr/local
  • 新增配置文件
cd /usr/local/logstash-7.10.2/bin
vim logstash-elasticsearch.conf
input {
    stdin {}
}
output {
    elasticsearch {
        hosts => '120.78.129.95:9200'
    }
    stdout {
        codec => rubydebug
    }
}

啟動

./logstash -f logstash-elasticsearch.conf

Kibana

簡介

Kibana 是一款開源的數(shù)據(jù)分析和可視化平臺熊昌,它是 Elastic Stack 成員之一,設(shè)計用于和 Elasticsearch 協(xié)作湿酸。您可以使用 Kibana 對 Elasticsearch 索引中的數(shù)據(jù)進行搜索、查看灭美、交互操作推溃。您可以很方便的利用圖表、表格及地圖對數(shù)據(jù)進行多元化的分析和呈現(xiàn)届腐。

下載

需要和es 同一個版本

到官網(wǎng)下載: (https://www.elastic.co/cn/downloads/kibana (opens new window))

kibana

安裝

  • 解壓到相應(yīng)目錄
tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz -C /usr/local
mv /usr/local/kibana-7.10.2-linux-x86_64 /usr/local/kibana-7.10.2
  • 修改配置
cd /usr/local/kibana-7.10.2/config
vim kibana.yml
server.port: 5601 
server.host: "0.0.0.0" 
elasticsearch.hosts: ["http://120.78.129.95:9200"] 
kibana.index: ".kibana"
  • 授權(quán)es用戶
chown -R es:es /usr/local/kibana-7.10.2/

啟動

  • 切換用戶成es用戶進行操作
su - es
/usr/local/kibana-7.10.2/bin/kibana 
  • 后臺啟動
/usr/local/kibana-7.10.2/bin/kibana &

在瀏覽器打開5601端口地址: (http://120.78.129.95:5601/ (opens new window))铁坎,如果出現(xiàn)了下面的信息蜂奸,就表示已經(jīng)成功啟動了

kibana

切換中文

config/kibana.yml添加

i18n.locale: "zh-CN"

日志收集

對應(yīng)服務(wù)器安裝logstash,配置規(guī)則硬萍,例如新建logstash-apache.conf

input {
  file {
    path => "/home/ruoyi/logs/sys-*.log"
    start_position => beginning
    sincedb_path => "/dev/null"
    codec => multiline {
      pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"
      negate => true
      auto_flush_interval => 3
      what => previous
    }
  }
}

filter {
  if [path] =~ "info" {
    mutate { replace => { type => "sys-info" } }
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
    date {
      match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    }
  } else if [path] =~ "error" {
    mutate { replace => { type => "sys-error" } }
  } else {
    mutate { replace => { type => "random_logs" } }
  }
}

output {
  elasticsearch {
    hosts => '120.78.129.95:9200'
  }
  stdout { codec => rubydebug }
}
  • 啟動logstash
./logstash -f logstash-apache.conf
  • 通過kibana可視化檢索各個服務(wù)日志數(shù)據(jù)
    kibana

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扩所,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子朴乖,更是在濱河造成了極大的恐慌祖屏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件买羞,死亡現(xiàn)場離奇詭異袁勺,居然都是意外死亡,警方通過查閱死者的電腦和手機畜普,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門期丰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吃挑,你說我怎么就攤上這事钝荡。” “怎么了舶衬?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵埠通,是天一觀的道長。 經(jīng)常有香客問我约炎,道長植阴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任圾浅,我火速辦了婚禮掠手,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狸捕。我一直安慰自己喷鸽,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布灸拍。 她就那樣靜靜地躺著做祝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸡岗。 梳的紋絲不亂的頭發(fā)上混槐,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音轩性,去河邊找鬼声登。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的悯嗓。 我是一名探鬼主播件舵,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脯厨!你這毒婦竟也來了铅祸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤合武,失蹤者是張志新(化名)和其女友劉穎临梗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眯杏,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡夜焦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岂贩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茫经。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萎津,靈堂內(nèi)的尸體忽然破棺而出卸伞,到底是詐尸還是另有隱情,我是刑警寧澤锉屈,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布荤傲,位于F島的核電站,受9級特大地震影響颈渊,放射性物質(zhì)發(fā)生泄漏遂黍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一俊嗽、第九天 我趴在偏房一處隱蔽的房頂上張望雾家。 院中可真熱鬧,春花似錦绍豁、人聲如沸芯咧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敬飒。三九已至,卻和暖如春芬位,著一層夾襖步出監(jiān)牢的瞬間无拗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工昧碉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蓝纲,地道東北人阴孟。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像税迷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锹漱,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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