ELK是Elasticsearch、Logstash、Kibana開源軟件的集合,對外是作為一個日志管理系統(tǒng)的開源方案,它可以從任何來源、任何格式進行日志搜索、分析與可視化展示。
基本組成軟件:
1、Filebeat:監(jiān)控日志文件,獲取服務器上指定路徑的日志文件,并將這些日志轉發(fā)到Logstash實例以進行處理。Filebeat的設計是為了可靠性和低延遲。Filebeat在主機上占用的資源很少,而Beats input插件將對Logstash實例的資源需求降到最低。
2、Logstash:它是一個服務端的數(shù)據(jù)處理管道,可以從多個源中提取數(shù)據(jù),對其進行轉換,然后將其存儲到Elasticsearch中。簡單來說就是日志的收集、分析、過濾工具。
3、Kibana:它是一個基于web的圖形界面,用于搜索、分析和可視化存儲在Elasticsearch中的日志數(shù)據(jù)。
4、Elasticsearch:它是一個開源分布式搜索引擎,提供收集、分析、存儲數(shù)據(jù)三大功能。
Filebeat安裝
1、從Filebeat官網選擇你所需的版本,本次安裝以Ubuntu為例。

2、右鍵選擇復制鏈接地址使用wget下載Filebeat.tar.gz壓縮包。

3、使用tar -zxf命令解壓。
hsl@iZ282hpfj1mZ:~$ tar -zxf filebeat-6.4.0-linux-x86_64.tar.gz
4、編輯filebeat.yml配置文件
配置文件中有各種輸入以及輸出,根據(jù)自己的需求正確配置。
Logstash安裝
logstash需要Java環(huán)境,JDK版本不低于1.8,檢查你的環(huán)Java環(huán)境:
java -vsersion
如果Java已經安裝,此命令將輸出類似于以下內容:
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
如果Logstash在包安裝期間無法找到JAVA_HOME環(huán)境變量,您可能會收到一個錯誤消息,軟件無法正常啟動。
1、從Logstash官網選擇你所需的版本,本次安裝以Ubuntu為例。

2、右鍵選擇復制鏈接地址使用wget下載tar.gz壓縮包。
hsl@iZ282hpfj1mZ:~$ wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz
3、使用tar -zxf命令解壓。
hsl@iZ282hpfj1mZ:~$ tar -zxf logstash-6.4.0.tar.gz
4、配置logstash,我們需要創(chuàng)建一個配置文件,并指定要使用的插件和每個插件的設置。我們創(chuàng)建名為logstash-simple.conf的文件并將其保存在與Logstash相同的目錄中。
hsl@iZ282hpfj1mZ:~$ cd logstash-6.4.0/
hsl@iZ282hpfj1mZ:~/logstash-6.4.0$ vi logstash-simple.conf
在logstash-simple.conf中輸入以下內容
input { stdin { } }
output {
stdout { codec => rubydebug }
}
5、啟動Logstash
hsl@iZ282hpfj1mZ:~/logstash-6.4.0$bin/logstash -f logstash-simple.conf
Elasticsearch安裝
1、從ELasticsearch官網選擇你所需的版本,本次安裝以Ubuntu為例。

2、右鍵選擇復制鏈接地址使用wget下載tar.gz壓縮包。
hsl@iZ282hpfj1mZ:~$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
3、使用tar -zxf命令解壓。
hsl@iZ282hpfj1mZ:~$ tar -zxf elasticsearch-6.4.0.tar.gz
4、啟動
hsl@iZ282hpfj1mZ:~$ cd elasticsearch-6.4.0/
hsl@iZ282hpfj1mZ:~/elasticsearch-6.4.0$ bin/elasticsearch
5、檢驗是否啟動
hsl@iZ282hpfj1mZ:~/elasticsearch-6.4.0$ curl http://localhost:9200/

上圖表示Elasticsearch正常啟動。
6、注意,正式服務器上需要更改配置文件elasticsearch.yml,具體配置項可以對照官網。
Kibana安裝
Filebeat + Logstash + Elasticsearch 簡單使用示例
1、下載示例數(shù)據(jù)
wget https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
gunzip logstash-tutorial.log.gz # 解壓
2、配置filebeat.yml文件
hsl@iZ282hpfj1mZ:~$ cd filebeat-6.4.0-linux-x86_64/
hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$ cp filebeat.yml filebeat.yml.bck # 備份配置文件
hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$vi filebeat.yml
將以下內容輸入到filebeat.yml文件中
filebeat.prospectors:
- type: log
paths:
- /path/to/file/logstash-tutorial.log # 下載的示例數(shù)據(jù)的文件位置絕對路徑
output.elasticsearch:
hosts: ["localhost:9200"]
3、啟動Filebeat
./filebeat -e -c filebeat.yml -d "publish"
4、配置Logstash配置文件,first-pipeline.conf
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
}
}
5、啟動Logstash
bin/logstash -f first-pipeline.conf --config.reload.automatic
# 自動重載配置文件
6、我們重新啟動一下filebeat
rm data/registry # 首先刪掉上次的注冊數(shù)據(jù)
./filebeat -e -c filebeat.yml -d "publish"
7、等程序完成,檢查數(shù)據(jù)
curl 'localhost:9200/logstash-2018.09.17/_search?pretty'
logstash-2018.09.17是自動生成的索引,具體的生成配置還不清楚。pretty是為了友好展示
curl 'localhost:9200/_cat/indices?v'
