前言
ELK log整合系統
ELK一般介紹
- ELK:
- Elasticsearch
- Logstash
- Kibana
操作須知
- ELK 6.5.4
- Beats: (Filebeat, Winlogbeat, packetbeat, healthcheck )
- nssm
- Cmder
- Cerebro (kopf)
操作想法
很多專案,對應的就是很多Log,需要查看每台機器的Log,難道一台一台進去看嗎?該怎麼做呢? 登嘞: ELK,以前我只使用ElasticSearch跟Logstash。但時日一久後,發現還有推出Beats系列產品。如果你有10個不同專案,每個專案有3台機器要部屬,以前做法是開一個共同的環境來接手所有的Log檔案。但這樣很麻煩,而且要麻煩管機器的同事。真的很麻煩XD。
透過Elasticsearch去存log資料,透過Logstash去接收log資料,透過Kibana介面去查看log資料。Filebeat就是client端做扒log資料到發送log資料到Server端給Logstash。優點就是解決跟其他單位溝通時間。
步驟
- 下載JDK
- 下載ELK,Beats
-
透過Cmder安裝 (Default as Powershell)。
- 設定Java環境變數,要指定到jdk的folder不是jre
- 安裝Elasticsearch,開啟Service
Invoke-Expression -command "D:\elk\elasticsearch\bin\elasticsearch-service install" Invoke-Expression -command "D:\elk\elasticsearch\bin\elasticsearch-service manager"
- 查看:
curl http://127.0.0.1:9200/
- 建立logstash 的config檔案
- 主要設定config值:
-
安裝logstash
Invoke-Expression –command "D:\ELK\nssm\win64\nssm install Logstash"
Dependency設定:
elasticsearch-service-x64
Invoke-Expression –command "D:\ELK\logstash\bin\logstash-plugin install logstash-input-beats"
- 安裝Kibana:
Invoke-Expression –command "D:\ELK\nssm\win64\nssm install Kibana"
Dependency:
elasticsearch-service-x64
Logstash
-
查看:
curl http://localhost:5601
-
接著安裝Beats:
PowerShell.exe -ExecutionPolicy UnRestricted -File D:\ELK\filebeat\install-service-filebeat.ps1 PowerShell.exe -ExecutionPolicy UnRestricted -File D:\ELK\heartbeat\install-service-heartbeat.ps1 PowerShell.exe -ExecutionPolicy UnRestricted -File D:\ELK\packetbeat\install-service-packetbeat.ps1 PowerShell.exe -ExecutionPolicy UnRestricted -File D:\ELK\winlogbeat\.\install-service-winlogbeat.ps1
-
去filebeat\filebeat.yml
- 不填上這些就是送不到我的logstash。而且不是公司的exception結構也是,我拿家裡的log也是沒填這個送不出去 送上去的index
-
安裝cerebro
- 這個是kopf的前生,以前用來觀察elaasticsearch index的。但是建議加密碼,別給外人用,不然他給你全刪了,你就GG。
實戰:遇到的一些問題
Q: Filebeat 讀取Log,傳不到Logstash?
A: 可以直接傳給Elasticsearch,但就是打不到Logstash,後來加了上圖參數就可行了
閒言閒語
- 要懂Cmder
- 目前只是單一node,需要改成cluster架構
- 提供另一個Gigi81大大製作的一鍵安裝版本
來源