參考來自:Linux日志分析ELK環境搭建
0 版本說明
因為ELK從5.0開始只支持jdk 1.8,但是項目中使用的是JDK 1.7,所以采用的是5.0前的最新版本。
1 Elasticsearch : 2.4.4 2 Logstash:2.4.1 3 kibana:4.6.4
操作環境:
1 新建用戶和用戶組
注意:elasticsearch不能以root運行的問題 ,所以建議單獨建立一個用戶來運行elasticsearch。
主要步驟:
1 創建新用戶組和新用戶 2 將新用戶添加到新組 3 創建用戶主目錄 4 讓新用戶獲得其主目錄有文件的擁有權限 5 設置新用戶的密碼
這里詳細步驟寫在: 2017.7.18 linux下用戶和組的操作
操作完成后,創建了組elkgroup和用戶elkuser,主目錄為elkuser。
2 下載與解壓
2.1 下載
下載地址:https://www.elastic.co/downloads
將下載好的安裝包,通過ftp工具上傳到elkuser的主目錄下,並且解壓。
2.2 解壓
解壓的命令為:
解壓后,查看當前elkuser是否擁有文件的操作權限。(如果沒有操作權限會使得后面啟動elastic的時候無法解析路徑,導致啟動失敗)
3 啟動Elasticsearch服務
3.1 修改配置文件elasticsearch.yaml
為了能通過瀏覽器訪問elasticsearch,需要修改配置文件elasticsearch.yaml的host和port。
注意,yaml文件最前方縮進表示層級,所以千萬不要多打空格。否則報錯如下:
3.2 啟動elasticsearch
3.3 訪問localhost:9200來驗證
另外開一個終端,訪問localhost:9200,出現如下頁面則安裝並啟動服務成功。
3.4 安裝head插件
下載並安裝完成后,查看elasticsearch所擁有的插件:
訪問localhost:9200/_plugin/head/,出現如下頁面,表示安裝head插件成功。這里已經有一些建好的索引了。
4 啟動logstash服務
4.1 在bin目錄下,新建配置文件logstash.conf
簡單的配置如下:input和output為必填,filter可以根據需求來寫或者不寫。因為這里處理的數據為json,所以在codec里設置了json。
更詳細的配置參看官網。
1 input{ 2 file{ 3 path => "E:/lyh/software/ELK/sample/data/accounts.json" 4 start_position => "beginning" 5 type => "testdata" 6 codec => json{ 7 charset => "UTF-8" 8 } 9 } 10 } 11 12 filter{ 13 } 14 15 output{ 16 elasticsearch{ 17 hosts => "localhost:9200" 18 index => "logstash-%{type}" 19 } 20 }
4.2 啟動logstash服務
啟動前可以先檢查一下配置文件的正確性。
5 啟動kibana服務
5.1 啟動kibana服務
5.2 訪問localhost:5601來驗證
6 使用ELK處理數據
上面訪問localhost:5601的時候,可以看到有一個提示:unable to fetch mapping,do you have indices matching the pattern?
而訪問localhost:9200的時候,也可以看到索引里沒有剛剛logstash.conf配置里的:logstash-testdata。
這就說明logstash沒有把日志寫入到elasticsearch。
打開account.json,隨意修改(內容可以不變但是要有操作)然后點擊保存。重啟服務后,再刷新這兩個頁面就有新數據了。
刷新頁面后可以看到elasticsearch中已經有了新的索引和數據:
這個時候再去kibana中創建對應的索引,就可以查看相應的數據了。此時的提示已經不見,變成了create。
點擊創建后,訪問kibana的discover頁,就可以看到數據了。
經過一些處理后,可以看到一些更直觀的畫面信息。