2020-07-27
ELK+filebeat部署過(guò)程(Windows版本)
author:perin_qin
date:2020.7.23
ELK是基于java的開源項(xiàng)目,所以需要先安裝jdk和配置環(huán)境變量
安裝配置jdk參考:https://blog.csdn.net/weixin_37601546/article/details/88623530 (Windows7)
1.安裝配置 jdk1.8.0_221
安裝目錄:C:\Java\jdk1.8.0_221
配置環(huán)境變量:計(jì)算機(jī)---屬性---高級(jí)系統(tǒng)設(shè)置---高級(jí)---環(huán)境變量---administrator的用戶變量---新建---變量名:JAVA_HOME,變量值:C:\Java\jdk1.8.0_221---新建---變量名:PATH,變量值:%JAVA_HOME%\bin;---系統(tǒng)變量---新建---變量名:CLASSPATH,變量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar---確定---確定
測(cè)試:cmd---java -version,出現(xiàn)1.8.0_221說(shuō)明成功,或者輸入java,有中文輸出
2.安裝配置ElasticSearch(ES)
官網(wǎng)下載地址:https://www.elastic.co/downloads (賊慢)
推薦下載地址:https://mirrors.huaweicloud.com/elasticsearch/ (華為云的倉(cāng)庫(kù))
版本:elasticsearch-7.8.0
解壓路徑:D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0 (最好不要有中文或空格)

修改es配置文件(notepad++編輯)
D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\config\elasticsearch.yml
cluster.name: my-application #集群的名稱,所有節(jié)點(diǎn)統(tǒng)一集群名稱
node.name: node1 #節(jié)點(diǎn)名稱,必須是唯一的
path.data: D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\data #數(shù)據(jù)存儲(chǔ)路徑(源文件夾里沒(méi)有data目錄,自己建一個(gè))
path.logs: D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\logs #日志存儲(chǔ)路徑
bootstrap.memory_lock: true #鎖住內(nèi)存,不被使用到交換分區(qū)去
network.host: 0.0.0.0 #監(jiān)聽的地址
http.port: 9200 #監(jiān)聽的端口
#跨越配置,(新增這四行是為了后面安裝elasticsearch用到)
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
雙擊D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\bin\下的elasticsearch.bat,重啟es
(啟動(dòng)服務(wù)所打開的powershell窗口不能關(guān)閉,否則服務(wù)停止)

3.安裝Elasticsearch-head插件
elasticsearch-head是用于瀏覽Elasticsearch集群并與其進(jìn)行交互的Web前端,即用于顯示集群節(jié)點(diǎn)和數(shù)據(jù)信息
Elasticsearch 5及以上版本均無(wú)法通過(guò)elasticsearch-plugin 進(jìn)行安裝,可以下載node(npm下載head)和grunt(運(yùn)行head)來(lái)安裝head插件
1.安裝nodejs
下載地址:https://nodejs.org/en/download/

選擇相應(yīng)版本的.msi,雙擊安裝(路徑:C:\Program Files\nodejs\,注意配置環(huán)境變量)
安裝完成可在cmd輸入node -v 查看到版本
cmd輸入npm install -g grunt-cli安裝grunt
安裝完成cmd輸入grunt -version查到版本信息(如果查不到也沒(méi)關(guān)系,只要在安裝結(jié)束后出現(xiàn)grunt的版本就算安裝成功了)
2.安裝elasticsearch-head
下載地址:https://github.com/mobz/elasticsearch-head

修改配置文件D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master\Gruntfile.js
在如下位置添加hostname: '*',

修改配置文件D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master_site\app.js
在圖中這個(gè)位置把es服務(wù)器的ip和端口寫上去

3.啟動(dòng)elasticsearch-head服務(wù)
powershell進(jìn)入D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master目錄
npm install #初始化依賴
npm run start #啟動(dòng)服務(wù)


看到這個(gè)畫面說(shuō)明啟動(dòng)成功,目前集群中只有一個(gè)節(jié)點(diǎn)
4.安裝logstash
下載地址:https://mirrors.huaweicloud.com/logstash/
版本:logstash-7.8.0
解壓路徑:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0
新建配置文件:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0\config\logstash.conf
input {
beats {
port => 5044
}
}
output {
stdout{ codec => rubydebug { metadata => true }}
elasticsearch {
hosts => ["http://172.10.0.108:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
#正式的配置文件中不能注釋和多余空格,否則logstash啟動(dòng)失敗
input {
#使用 Filebeat 收集日志
beats {
port => 5044 #提供給 Filebeat 傳入日志的端口,即 logstash 的服務(wù)務(wù)端口
}
}
output {
#輸出到控制臺(tái)方便調(diào)試
stdout{ codec => rubydebug { metadata => true }}
#輸出到 elasticsearch
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
啟動(dòng)logstash
powershell進(jìn)入logstash的bin目錄:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0\bin
.\logstash.bat -f ../config/logstash.conf #啟動(dòng)logstash
5.安裝Kibana
下載地址:https://mirrors.huaweicloud.com/kibana/
版本:kibana-7.8.0
解壓路徑:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64
修改配置文件:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64\config\kibana.yml
server.port: 5601 #本機(jī)(kibana)端口
server.host: "172.10.0.108" #本機(jī)(kibana)的ip
elasticsearch.hosts: ["http://172.10.0.108:9200"] #es的ip+端口
i18n.locale: "zh-CN" #i18n.locale: "zh-CN" #中文版(看個(gè)人習(xí)慣選用語(yǔ)言)
啟動(dòng)kibana
powershell進(jìn)入kibana的bin目錄:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64\bin
.\kibana.bat
啟動(dòng)成功可看到ip+端口
6.測(cè)試
第一次登錄,點(diǎn)擊Explore on my own(使用的我的樣例數(shù)據(jù))

7.安裝Filebeat
下載地址:https://mirrors.huaweicloud.com/filebeat/7.8.0/
版本:7.8.0
解壓路徑:D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64
修改配置文件:
D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64\filebeat.yml
filebeat.inputs:
- type: log #指定文件的輸入類型log(默認(rèn))或者stdin
enabled: true
paths:
- D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\logs\* #收集指定文件夾下所有(后綴為.log)的日志文件
fields:
log_tag: erp #自己增加到fields里的字段(這行和上一行可加可不加)
multiline: #用于日志中每一條日志占據(jù)多行的情況,比如各種語(yǔ)言的報(bào)錯(cuò)信息調(diào)用棧
pattern: '^\d{4}-\d{1,2}-\d{1,2}' #匹配以日期格式(yyyy-MM-dd) 開頭為另起一行
negate: true
match: after #匹配pattern后與后面(前面:before)的內(nèi)容合并為一條日志
output.logstash: #發(fā)送數(shù)據(jù)到logstash
# Logstash 主機(jī)地址
hosts: ["172.10.0.108:5044"]
#如果數(shù)據(jù)要求從filebeat-->logstash-->es-->kibana,需要將output.elasticsearch:這部書注釋掉,根據(jù)實(shí)際情況配置
啟動(dòng)Filebeat
powershell進(jìn)入Filebeat的目錄:D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64
.\filebeat.exe -e -c .\filebeat.yml
8.kibana建索引查數(shù)據(jù)





這一步輸入索引后若“下一步”這個(gè)按鈕沒(méi)有變藍(lán),有可能所以已經(jīng)存在或者ELK數(shù)據(jù)傳輸不通

創(chuàng)建完索引后,點(diǎn)擊左側(cè)欄Discover能看到默認(rèn)索引的數(shù)據(jù)

選擇新建的索引

添加選定字段后,查到的數(shù)據(jù)將按照字段要求顯示
