ELK入門及搭建使用

ELK入門及搭建使用

一、ELK是什么?

ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana

1、Elasticsearch

這是一個基于Lucene的分布式全文搜索框架疹吃,可以對logs進行分布式存儲艇肴。此為ELK的核心組件帮哈,日志的處理以及存儲全部由Elasticsearch 完成憾筏。

2、Logstash

主要是用來日志的搜集刨肃、分析古拴、過濾日志的工具真友,用來部署到各自的服務(wù)器上收集Log日志,通過內(nèi)置的ElasticSearch插件解析后輸出日志到ElasticSearch中。

3刻帚、kibana

可以多維度的展示Elasticsearch 中的數(shù)據(jù)幔睬。提供了豐富的UI組件麻顶,簡化了使用難度。

二辅肾、ELK為什么用以及解決什么問題矫钓?

項目初期的時候,服務(wù)器數(shù)量較少舍杜,一般來說對日志沒有過多的考慮新娜,隨著應(yīng)用的越來越多,日志散落在各個服務(wù)器的logs文件夾下既绩,想要查找日志需要在眾多服務(wù)器上去逐一查找概龄,效率非常低而且確實有很大的不方便。

當(dāng)線上出現(xiàn)問題我們需要日志分析的時候大概會這么做:直接在日志文件中 grep ‘xx’ order.log就可以獲得自己想要的信息饲握。

那你們想過這種方式的問題嗎私杜?

1.日志量太大文本搜索太慢怎么辦、如何多維度查詢

2.應(yīng)用太多互拾,面臨數(shù)十上百臺應(yīng)用時你該怎么辦(難道只能一臺一臺的去服務(wù)器上找歪今?)

3.隨意登錄服務(wù)器查詢log對系統(tǒng)的穩(wěn)定性及安全性肯定有影響

4.如果開發(fā)人員對Linux不太熟練,會造一定的困擾

ELK因此就應(yīng)運而生颜矿,那么為什么要用ELK呢寄猩?ELK又能給我們解決哪些問題呢?

1.日志統(tǒng)一收集骑疆,管理田篇,訪問。查找問題方便安全

2.使用簡單箍铭,可以大大提高定位問題的效率

3.可以對收集起來的log進行分析(建立日志可視化界面泊柬,使得日志分析更加便捷)

4.能夠提供錯誤報告,監(jiān)控機制(當(dāng)異常觸發(fā)時能夠及時通過短信诈火、郵件等方式通知相關(guān)負責(zé)人員)

三兽赁、ELK架構(gòu)

3.1 Logstash作為日志收集器

這種架構(gòu)是比較原始的部署架構(gòu),在各應(yīng)用服務(wù)器端分別部署一個Logstash組件,作為日志收集器刀崖,然后將Logstash收集到的數(shù)據(jù)過濾惊科、分析、格式化處理后發(fā)送至Elasticsearch存儲亮钦,最后使用Kibana進行可視化展示馆截,這種架構(gòu)不足的是:

Logstash比較耗服務(wù)器資源,所以會增加應(yīng)用服務(wù)器端的負載壓力蜂莉。

圖片4.png

3****.2 Filebeat作為日志收集器****(****目前使用最多的是****這****種部署架構(gòu)****,如果不需要logstash做過濾和監(jiān)控告警等特殊處理蜡娶,可以直接棄用logstash****)

該架構(gòu)與第一種架構(gòu)唯一不同的是:應(yīng)用端日志收集器換成了Filebeat,F(xiàn)ilebeat輕量映穗,占用服務(wù)器資源少窖张,將日志數(shù)據(jù)發(fā)送到Logstash或者Elasticsearch時,F(xiàn)ilebeat 使用背壓敏感協(xié)議蚁滋,以應(yīng)對更多的數(shù)據(jù)量荤堪。如果 Logstash 或者Elasticsearch正在忙于處理數(shù)據(jù),則會告訴 Filebeat 減慢讀取速度枢赔。一旦擁堵得到解決,F(xiàn)ilebeat 就會恢復(fù)到原來的步伐并繼續(xù)傳輸數(shù)據(jù)拥知,所以使用Filebeat作為應(yīng)用服務(wù)器端的日志收集器踏拜,一般Filebeat會配合Logstash一起使用(logstash主要是對日志消息進行過濾和傳輸及監(jiān)控告警),這種部署方式也是目前最常用的架構(gòu)低剔。

圖片3.png

3****.3 引入緩存隊列的部署架構(gòu)

該架構(gòu)在第二種架構(gòu)的基礎(chǔ)上引入了Redis緩存隊列(還可以是其他消息隊列例如Kafka)速梗,將Filebeat收集到的數(shù)據(jù)發(fā)送至Redis,然后在通過Logstasth讀取Redis中的數(shù)據(jù)襟齿,這種架構(gòu)主要是解決大數(shù)據(jù)量下的日志收集方案姻锁,使用緩存隊列主要是解決數(shù)據(jù)安全與均衡Logstash與Elasticsearch負載壓力。

圖片2.png

3****.4 以上三種架構(gòu)的總結(jié)

第一種部署架構(gòu)由于資源占用問題猜欺,現(xiàn)已很少使用位隶,目前使用最多的是第二種部署架構(gòu),至于第三種部署架構(gòu)除非是第二種架構(gòu)不能滿足性能要求或者有其他需求开皿,因為在數(shù)據(jù)量較大的情況下涧黄,F(xiàn)ilebeat 使用壓力敏感協(xié)議向 Logstash 或 Elasticsearch 發(fā)送數(shù)據(jù)。如果 Logstash 正在繁忙地處理數(shù)據(jù)赋荆,它會告知 Filebeat 減慢讀取速度笋妥。擁塞解決后,F(xiàn)ilebeat 將恢復(fù)初始速度并繼續(xù)發(fā)送數(shù)據(jù)窄潭。

四春宣、搭建ELK

  1. 官方下載 :<u>https://www.elastic.co/cn/products</u>

版本:elasticsearch 5.6.12,logstash5.6.9,kibana5.3.0月帝,filebeat5.6.3 四個版本(JDK需要1.8)

2躏惋、安裝filebeat

(1)解壓filebeat:tar zxvf filebeat-5.6.3-linux-x86_64

(2)filebeat-5.6.3-linux-x86_64目錄下編輯filebeat.yml文件

filebeat.prospectors:

  • type: log

    enabled: true

    Paths that should be crawled and fetched. Glob based paths.

    paths:

    • /var/log/*.log

----------------------------- Logstash output --------------------------------

output.logstash:

The Logstash hosts

hosts: ["192.168.97.3:5044"] #logstash服務(wù)iP和端口,如果有多個logstash嫁赏,可以寫多個其掂。

bin目錄下啟動filebeat,啟動命令:./filebeat -e -c filebeat.yml

3.安裝logstash

(1)解壓logstash:tar zxvf logstash-5.6.9.tar.gz

(2)在config目錄創(chuàng)建配置文件:logstash.conf

(3)logstash.conf 做好input 潦蝇,filter款熬,output三大塊, 其中input是吸取logs文件下的所有l(wèi)og后綴的日志文件攘乒,filter是一個過濾函數(shù)贤牛,這里不用配置,output配置了導(dǎo)入到

hosts為192.168.97.3:9200的elasticsearch中则酝,每天建一個索引殉簸。

input {

 #file {

 #   type => "log"

 #   path => "/logs/*.log"

 #   start_position => "beginning"

 #}

 beats {

    port => 5044

 }

}

output {

stdout {

codec => rubydebug { }

}

elasticsearch {

hosts => "192.168.97.3:9200"

index => "log-%{+YYYY.MM.dd}"

}

}

(4)bin目錄下啟動logstash,啟動命令:./logstash -f ../config/logstash.conf沽讹,如果想要后臺運行啟動:./logstash -f ../config/logstash.conf &

4般卑、安裝elasticSearch

elasticSearch啟動的時候需要注意,elasticSearch不能以root賬號啟動爽雄,所以還需要添加一個新賬戶蝠检。

4.1 解壓:tar zxvf elasticsearch-5.6.4.tar.gz

4.2 添加新賬戶:useradd es,

對新賬戶授權(quán):chown -R es:es /usr/local/soft/elasticsearch-5.6.4

4.3安裝過程中可能會遇到如下幾個問題:

(1)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解決方法:vi /etc/security/limits.conf

user hard nofile 65536

user soft nofile 65536

(2)max number of threads [1024] for user [apps] is too low, increase to at least [2048]

解決辦法:vi /etc/security/limits.d/90-nproc.conf

修改如下內(nèi)容:

  • soft nproc 1024

修改為

  • soft nproc 2048

(3)max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解決辦法:vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并執(zhí)行命令:

sysctl -p

4.4 切換用戶角色:su es ,在bin 目錄下啟動elasticSearch挚瘟,啟動命令:./elasticsearch 叹谁,如果需要后臺啟動:./elasticsearch -d

以上elasticsearch只是單機安裝,集群安裝如下:

4.5 同一臺機器安裝三臺elasticsearch集群:cp -r elasticsearch-5.6.12 elasticsearch-n1乘盖、cp -r elasticsearch-5.6.12 elasticsearch-n2焰檩、cp -r elasticsearch-5.6.12 elasticsearch-n3。

elasticsearch-n1 目錄的config目錄下elasticsearch.yml文件編輯

cluster.name: my-es #集群名稱

node.name: node-01 # 節(jié)點名稱

node.master: true #主節(jié)點(候選)

node.data: true #存儲數(shù)據(jù)

network.host: 192.168.97.3

http.port: 9200 #es對外提供訪問的端口

transport.tcp.port: 9300 #es集群之間通信的端口

單播(unicast)協(xié)議订框,指定要發(fā)現(xiàn)的節(jié)點信息了析苫,可以不指定端口[默認(rèn)9300]

discovery.zen.ping.unicast.hosts: ["192.168.97.3","192.168.97.3:8300","192.168.97.3:7300"]

默認(rèn)是1看到的具有master節(jié)點資格的最小數(shù)量,然后才能在集群中做操作穿扳。官方的推薦值是(N/2)+1藤违,如果只有2個節(jié)點設(shè)為1

discovery.zen.minimum_master_nodes: 2

====================================================================

elasticsearch-n2 目錄的config目錄下elasticsearch.yml文件編輯

cluster.name: my-es

node.name: node-02

node.master: false

node.data: true

network.host: 192.168.97.3

http.port: 8200

transport.tcp.port: 8300

discovery.zen.ping.unicast.hosts: ["192.168.97.3","192.168.97.3:8300","192.168.97.3:7300"]

discovery.zen.minimum_master_nodes: 2

======================================================================

elasticsearch-n3 目錄的config目錄下elasticsearch.yml文件編輯

cluster.name: my-es

node.name: node-03

node.master: true

node.data: true

network.host: 192.168.97.3

http.port: 7200

transport.tcp.port: 7300

discovery.zen.ping.unicast.hosts: ["192.168.97.3","192.168.97.3:8300","192.168.97.3:7300"]

discovery.zen.minimum_master_nodes: 2

5.安裝kibana

(1)解壓:tar zxvf kibana-5.3.0-linux-x86_64.tar.gz

(2)在config目錄下的kibana.yml文件中指定一下你需要讀取的elasticSearch地址和可供外網(wǎng)訪問的bind地址就可以了

elasticsearch.url: "http://192.168.97.3:9200"

server.host: 0.0.0.0

(3)bin目錄下啟動kibana,啟動命令:./kibana 纵揍,如果想要后臺啟動 :./kibana &

注意:

在es和logstash都安裝成功后顿乒,一定要先往logstash里面寫入日志,直到es的索引創(chuàng)建成功再來啟動kibana泽谨。訪問:<u>http://localhost:5601</u> 此時會進入配置界面璧榄,如下所示:其中紅框的內(nèi)容是es的索引名字正則表達式特漩,和logstash里面(index => "log-%{+YYYY.MM.dd}")的一致。這里用log-*就可以匹配

圖片1.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骨杂,一起剝皮案震驚了整個濱河市涂身,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搓蚪,老刑警劉巖蛤售,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妒潭,居然都是意外死亡悴能,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門雳灾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漠酿,“玉大人,你說我怎么就攤上這事谎亩〕闯埃” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵匈庭,是天一觀的道長夫凸。 經(jīng)常有香客問我,道長阱持,這世上最難降的妖魔是什么寸痢? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮紊选,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘道逗。我一直安慰自己兵罢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布滓窍。 她就那樣靜靜地躺著卖词,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吏夯。 梳的紋絲不亂的頭發(fā)上此蜈,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音噪生,去河邊找鬼裆赵。 笑死,一個胖子當(dāng)著我的面吹牛跺嗽,可吹牛的內(nèi)容都是我干的战授。 我是一名探鬼主播页藻,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼植兰!你這毒婦竟也來了份帐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤楣导,失蹤者是張志新(化名)和其女友劉穎废境,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筒繁,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡噩凹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了膝晾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栓始。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖血当,靈堂內(nèi)的尸體忽然破棺而出幻赚,到底是詐尸還是另有隱情,我是刑警寧澤臊旭,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布落恼,位于F島的核電站,受9級特大地震影響离熏,放射性物質(zhì)發(fā)生泄漏佳谦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一滋戳、第九天 我趴在偏房一處隱蔽的房頂上張望钻蔑。 院中可真熱鬧,春花似錦奸鸯、人聲如沸咪笑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窗怒。三九已至,卻和暖如春蓄拣,著一層夾襖步出監(jiān)牢的瞬間扬虚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工球恤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辜昵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓咽斧,卻偏偏與公主長得像路鹰,于是被迫代替她去往敵國和親贷洲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

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