前言
ELK已經是一套成熟的日誌解決方案,雖然出現了好久,今日才終於研究了一下,不過是在windows平臺上安裝的。
搭建步驟
- 下載軟體
- 安裝軟體
- 修改配置檔案
- 啟動軟體
- 整合測試
下載軟體
首先從官網下載三個軟體。我下載的是 6.2.3版本的,最好都統一,否則會出現小問題。官網地址:https://www.elastic.co/
安裝軟體
分別將上文中的ELK三個壓縮包解壓到相應的資料夾下。(我的電腦資料夾是C:/elk/)
由於logstash和kibana都需要配置elasticsearch的server url,所以先配置了elasticsearch。
開啟 elasticsearch-6.2.3/config 資料夾,開啟elasticsearch.yml,配置一下基本資訊:
cluster.name: <叢集名稱> node.name: <當前節點名稱> network.host: <本機IP或者localhost> http.port: 9200
使用cmd命令安裝elasticsearch service
安裝完成之後啟動es服務。開啟 host:9200 測試一下es是否安裝成功。
下面安裝logstash。
進入到 C:\elk\logstash-6.2.3\config 資料夾下新建log.config檔案。這裡我選擇的輸入源是file,然後filter處理日誌中的json,output到elasticsearch和控制檯。log.config檔案配置如下:
input { file { type => "log" path => "C:/logs/*.log" codec => plain{ charset => "UTF-8" } start_position => "beginning" } } filter { ruby { 將@timestamp轉換為伺服器時間,否則會是UTC時間(慢8個小時) code => "event.timestamp.time.localtime" } json{ 解析日誌中的json格式到log欄位,移除message欄位和host source => "message" target => "log" remove_field => ["message"] remove_field => ["host"] } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["127.0.0.1:9200"] index => "logs" } }
下面開啟cmd執行命令:
等待啟動即可,如果報錯了,看一下報錯資訊即可。logstash能正常解析日誌。
最後安裝kibana。
同樣進入 config資料夾。配置kibana.yml 配置elasticsearch.url和host.name即可。埠預設是5601。
cmd bin/kibana 啟動
開啟瀏覽器,正常出現kibana介面。
到目前為止,ELK已經基本配置完了。
整合測試
因為 logstash 配置的是採集 C:/logs資料夾下的日誌檔案。寫一個簡單的程式寫入日誌,日誌內容如下:
正如上文中logstash輸出一樣,logstash正常採集到了日誌,並且解析了日誌中的json串。下面開啟elasticsearch看一下是否有資料
如上圖所示,是有資料的,最後使用kibana配置一下index即可。(由於kibana我也不太會用,所以不做詳細介紹了)
總結
總體而言安裝過程中的配置過程還不是很難,但是要做到很複雜的日誌處理或者其他的功能那麼就需要下功夫了。這裡我只是簡單的做了一個搭建工作。想要深入瞭解ELK體系的使用還是需要下功夫的!!
另外,logstash的 input output filter 配置還是有很多門道的,相當複雜,本來我試了用filebeat作為input,但是老是報 Invalid Frame Type 後來我就沒在理他了,大概日誌檔案的編碼不對吧(我也不清楚)。
以上就是windows下搭建簡單的ELK的具體過程了。如有問題或者不當之處,歡迎留言諮詢。