溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是ELK

發(fā)布時(shí)間:2021-12-24 10:00:52 來源:億速云 閱讀:193 作者:小新 欄目:云計(jì)算

這篇文章主要為大家展示了“什么是ELK”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“什么是ELK”這篇文章吧。

一、什么是ELK

ELK其實(shí)是Elasticsearch,Logstash 和 Kibana三個(gè)產(chǎn)品的首字母縮寫,這三款都是開源產(chǎn)品。

ElasticSearch(簡(jiǎn)稱ES),是一個(gè)實(shí)時(shí)的分布式搜索和分析引擎,它可以用于全文搜索,結(jié)構(gòu)化搜索以及分析。

Logstash,是一個(gè)數(shù)據(jù)收集引擎,主要用于進(jìn)行數(shù)據(jù)收集、解析,并將數(shù)據(jù)發(fā)送給ES。支持的數(shù)據(jù)源包括本地文件、ElasticSearch、MySQL、Kafka等等。

Kibana,為 Elasticsearch 提供了分析和 Web 可視化界面,并生成各種維度表格、圖形。

什么是ELK  
 

二、搭建ELK

環(huán)境依賴:CentOS7.5,JDK1.8,ElasticSearch7.9.3,Logstash 7.9.3,Kibana7.9.3。

 

2.1 安裝ElasticSearch

首先,到官網(wǎng)下載安裝包,然后使用tar -zxvf命令解壓。

什么是ELK  

找到config目錄下的elasticsearch.yml文件,修改配置:

cluster.name: es-application
node.name: node-1
#對(duì)所有IP開放
network.host: 0.0.0.0
#HTTP端口號(hào)
http.port: 9200
#elasticsearch數(shù)據(jù)文件存放目錄
path.data: /usr/elasticsearch-7.9.3/data
#elasticsearch日志文件存放目錄
path.logs: /usr/elasticsearch-7.9.3/logs
 

配置完之后,因?yàn)镋lasticSearch使用非root用戶啟動(dòng),所以創(chuàng)建一個(gè)用戶。

# 創(chuàng)建用戶
useradd yehongzhi
# 設(shè)置密碼
passwd yehongzhi
# 賦予用戶權(quán)限
chown -R yehongzhi:yehongzhi /usr/elasticsearch-7.9.3/
 

然后切換用戶,啟動(dòng):

# 切換用戶
su yehongzhi
# 啟動(dòng) -d表示后臺(tái)啟動(dòng)
./bin/elasticsearch -d
 

使用命令netstat -nltp查看端口號(hào):

什么是ELK  

訪問http://192.168.0.109:9200/可以看到如下信息,表示安裝成功。

什么是ELK  
 

2.2 安裝Logstash

首先在官網(wǎng)下載安裝壓縮包,然后解壓,找到/config目錄下的logstash-sample.conf文件,修改配置:

input {
  file{
    path => ['/usr/local/user/*.log']
    type => 'user_log'
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.0.109:9200"]
    index => "user-%{+YYYY.MM.dd}"
  }
}
 

input表示輸入源,output表示輸出,還可以配置filter過濾,架構(gòu)如下:

什么是ELK  

配置完之后,要有數(shù)據(jù)源,也就是日志文件,準(zhǔn)備一個(gè)user.jar應(yīng)用程序,然后后臺(tái)啟動(dòng),并且輸出到日志文件user.log中,命令如下:

nohup java -jar user.jar >/usr/local/user/user.log &
 

接著再后臺(tái)啟動(dòng)Logstash,命令如下:

nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf &
 

啟動(dòng)完之后,使用jps命令,可以看到兩個(gè)進(jìn)程在運(yùn)行:

什么是ELK  
 

2.3 安裝Kibana

首先還是到官網(wǎng)下載壓縮包,然后解壓,找到/config目錄下的kibana.yml文件,修改配置:

server.port: 5601
server.host: "192.168.0.111"
elasticsearch.hosts: ["http://192.168.0.109:9200"]
 

和elasticSearch一樣,不能使用root用戶啟動(dòng),需要?jiǎng)?chuàng)建一個(gè)用戶:

# 創(chuàng)建用戶
useradd kibana
# 設(shè)置密碼
passwd kibana
# 賦予用戶權(quán)限
chown -R kibana:kibana /usr/kibana/
 

然后使用命令啟動(dòng):

#切換用戶
su kibana
#非后臺(tái)啟動(dòng),關(guān)閉shell窗口即退出
./bin/kibana
#后臺(tái)啟動(dòng)
nohup ./bin/kibana &
 

啟動(dòng)后在瀏覽器打開http://192.168.0.111:5601,可以看到kibana的web交互界面:

什么是ELK  
 

2.4 效果展示

全部啟動(dòng)成功后,整個(gè)過程應(yīng)該是這樣,我們看一下:

什么是ELK  

瀏覽器打開http://192.168.0.111:5601,到管理界面,點(diǎn)擊“Index Management”可以看到,有一個(gè)user-2020.10.31的索引。

什么是ELK  

點(diǎn)擊Index Patterns菜單欄,然后創(chuàng)建,命名為user-*。

什么是ELK  

最后,就可以到Discover欄進(jìn)行選擇,選擇user-*的Index Pattern,然后搜索關(guān)鍵字,就找到相關(guān)的日志了!

什么是ELK  
 

三、改進(jìn)優(yōu)化

上面只是用到了核心的三個(gè)組件簡(jiǎn)單搭建的ELK,實(shí)際上是有缺陷的。如果Logstash需要添加插件,那就全部服務(wù)器的Logstash都要添加插件,擴(kuò)展性差。所以就有了FileBeat,占用資源少,只負(fù)責(zé)采集日志,不做其他的事情,這樣就輕量級(jí),把Logstash抽出來,做一些濾處理之類的工作。

什么是ELK  

FileBeat也是官方推薦用的日志采集器,首先下載Linux安裝壓縮包:

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz
 

下載完成后,解壓。然后修改filebeat.yml配置文件:

#輸入源
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/user/*.log
#輸出,Logstash的服務(wù)器地址
output.logstash:
  hosts: ["192.168.0.110:5044"]
#輸出,如果直接輸出到ElasticSearch則填寫這個(gè)
#output.elasticsearch:
  #hosts: ["localhost:9200"]
  #protocol: "https"
 

然后Logstash的配置文件logstash-sample.conf,也要改一下:

#輸入源改成beats
input {
  beats {
    port => 5044
    codec => "json"
  }
}
 

然后啟動(dòng)FileBeat:

#后臺(tái)啟動(dòng)命令
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
 

再啟動(dòng)Logstash:

#后臺(tái)啟動(dòng)命令
nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf &
 

怎么判斷啟動(dòng)成功呢,看Logstash應(yīng)用的/logs目錄下的logstash-plain.log日志文件:

什么是ELK  
 

以上是“什么是ELK”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

elk
AI