共計 3095 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章主要為大家展示了“什么是 ELK”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“什么是 ELK”這篇文章吧。
一、什么是 ELK
ELK 其實是 Elasticsearch,Logstash 和 Kibana 三個產品的首字母縮寫,這三款都是開源產品。
ElasticSearch(簡稱 ES),是一個實時的分布式搜索和分析引擎,它可以用于全文搜索,結構化搜索以及分析。
Logstash,是一個數據收集引擎,主要用于進行數據收集、解析,并將數據發送給 ES。支持的數據源包括本地文件、ElasticSearch、MySQL、Kafka 等等。
Kibana,為 Elasticsearch 提供了分析和 Web 可視化界面,并生成各種維度表格、圖形。
二、搭建 ELK
環境依賴:CentOS7.5,JDK1.8,ElasticSearch7.9.3,Logstash 7.9.3,Kibana7.9.3。
2.1 安裝 ElasticSearch
首先,到官網下載安裝包,然后使用 tar -zxvf 命令解壓。
找到 config 目錄下的 elasticsearch.yml 文件,修改配置:
cluster.name: es-application
node.name: node-1
# 對所有 IP 開放
network.host: 0.0.0.0
#HTTP 端口號
http.port: 9200
#elasticsearch 數據文件存放目錄
path.data: /usr/elasticsearch-7.9.3/data
#elasticsearch 日志文件存放目錄
path.logs: /usr/elasticsearch-7.9.3/logs
配置完之后,因為 ElasticSearch 使用非 root 用戶啟動,所以創建一個用戶。
# 創建用戶
useradd yehongzhi
# 設置密碼
passwd yehongzhi
# 賦予用戶權限
chown -R yehongzhi:yehongzhi /usr/elasticsearch-7.9.3/
然后切換用戶,啟動:
# 切換用戶
su yehongzhi
# 啟動 - d 表示后臺啟動
./bin/elasticsearch -d
使用命令 netstat -nltp 查看端口號:
訪問 http://192.168.0.109:9200/ 可以看到如下信息,表示安裝成功。
2.2 安裝 Logstash
首先在官網下載安裝壓縮包,然后解壓,找到 /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 過濾,架構如下:
配置完之后,要有數據源,也就是日志文件,準備一個 user.jar 應用程序,然后后臺啟動,并且輸出到日志文件 user.log 中,命令如下:
nohup java -jar user.jar /usr/local/user/user.log
接著再后臺啟動 Logstash,命令如下:
nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf
啟動完之后,使用 jps 命令,可以看到兩個進程在運行:
2.3 安裝 Kibana
首先還是到官網下載壓縮包,然后解壓,找到 /config 目錄下的 kibana.yml 文件,修改配置:
server.port: 5601
server.host: 192.168.0.111
elasticsearch.hosts: [http://192.168.0.109:9200]
和 elasticSearch 一樣,不能使用 root 用戶啟動,需要創建一個用戶:
# 創建用戶
useradd kibana
# 設置密碼
passwd kibana
# 賦予用戶權限
chown -R kibana:kibana /usr/kibana/
然后使用命令啟動:
#切換用戶
su kibana
#非后臺啟動,關閉 shell 窗口即退出
./bin/kibana
# 后臺啟動
nohup ./bin/kibana
啟動后在瀏覽器打開 http://192.168.0.111:5601,可以看到 kibana 的 web 交互界面:
2.4 效果展示
全部啟動成功后,整個過程應該是這樣,我們看一下:
瀏覽器打開 http://192.168.0.111:5601,到管理界面,點擊“Index Management”可以看到,有一個 user-2020.10.31 的索引。
點擊 Index Patterns 菜單欄,然后創建,命名為 user-*。
最后,就可以到 Discover 欄進行選擇,選擇 user-* 的 Index Pattern,然后搜索關鍵字,就找到相關的日志了!
三、改進優化
上面只是用到了核心的三個組件簡單搭建的 ELK,實際上是有缺陷的。如果 Logstash 需要添加插件,那就全部服務器的 Logstash 都要添加插件,擴展性差。所以就有了 FileBeat,占用資源少,只負責采集日志,不做其他的事情,這樣就輕量級,把 Logstash 抽出來,做一些濾處理之類的工作。
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 的服務器地址
output.logstash:
hosts: [192.168.0.110:5044]
# 輸出,如果直接輸出到 ElasticSearch 則填寫這個
#output.elasticsearch:
#hosts: [localhost:9200]
#protocol: https
然后 Logstash 的配置文件 logstash-sample.conf,也要改一下:
# 輸入源改成 beats
input {
beats {
port = 5044
codec = json
}
}
然后啟動 FileBeat:
# 后臺啟動命令
nohup ./filebeat -e -c filebeat.yml /dev/null 2 1
再啟動 Logstash:
# 后臺啟動命令nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf
怎么判斷啟動成功呢,看 Logstash 應用的 /logs 目錄下的 logstash-plain.log 日志文件:
以上是“什么是 ELK”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!