面向微服務開發時會涉及到多系統的日志跟蹤,一旦出現問題過濾起來系統間切換非常麻煩,所以需要采用特定工具將日志統一歸類處理,方便查詢排查錯誤,下面將介紹一種開源的工具ELK.
ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方下載地址:https://www.elastic.co/cn/downloads/
准備環境
客戶機:win10
Java環境: jdk1.8(必須1.7以上版本!!!)
組件信息:
logstash: 日志收集過濾工具, 下載 https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.zip
kibana: 提供搜索、查看和與存儲在 Elasticsearch 索引中的數據進行交互的功能,下載 https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-windows-x86_64.zip
elasticsearch: 開源分布式搜索引擎, 下載 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-windows-x86_64.zip
elasticsearch-head:es插件, 一個界面化的集群操作和管理工具, 下載https://github.com/mobz/elasticsearch-head/releases
第一步
下載組件並解壓到本地磁盤(注意不要解壓到帶有空格的路徑,否則后續的安裝可能出錯),如下圖:
第二步
安裝jdk1.8,並配置環境變量
第三步
安裝logstash,在powershell中執行下面的命令:
logstash.conf: 在logstash文件夾的bin目錄里新建logstash.conf配置文件
具體內容如下,
input {
file {
path => "D:/ELK/logs/*" ## 日志存放目錄
start_position => "beginning"
codec => plain { charset => "GBK" }
}
}
filter {
mutate {
add_field => [ "[fields][path]", "%{[path]}"]
add_field => [ "message]", "%{[message]}"]
}
}
output {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
template_overwrite => true
}
}
* 可以將運行logstash的命令"logstash.bat -f logstash.conf"保存到run.bat文件,方便下次啟動
第四步
安裝elasticsearch,為簡化操作可以將把elasticsearch-7.3.0/bin路徑加入到環境變量,那樣就可以在powershell中的任意位置直接輸入elasticsearch命令,用默認配置啟動(默認傳輸端口為9300,接受HTTP請求的端口為9200),然后使用瀏覽器打開http://localhost:9200/,看到下圖表示啟動安裝成功
1. 啟用elasticsearch外網訪問,修改config/elasticsearch.yml文件內容:
network.host: 0.0.0.0 #不限IP,須避免公網使用
2. 禁用X-Pack機器學習功能,僅限Windows
xpack.ml.enabled: false
3. 注冊elasticsearch為windows系統服務,進入bin目錄執行如下命令:
elasticsearch-service.bat install
elasticsearch-service.bat 可執行參數 :
install: 安裝Elasticsearch服務
remove: 刪除已安裝的Elasticsearch服務
start: 啟動Elasticsearch服務
stop: 停止服務
manager:啟動GUI來管理已安裝的服務
4. 重啟elasticsearch服務
第五步
安裝elasticsearch-head,此處需要提前安裝nodejs url: https://nodejs.org/en/download/,然后依次執行下面的命令:
npm install -g grunt-cli #編譯源碼
npm install #安裝服務
grunt server #啟動服務
第六步
安裝Kibana,為簡化操作可以將把ibana-7.3.0-windows-x86_64/bin路徑加入到環境變量,那樣就可以在powershell中的任意位置直接輸入Kibana命令啟動
注意:連接遠程elasticsearch時,需修改文件/config/kibana.yml內容 elasticsearch.hosts
啟動成功后,在瀏覽器中輸入:http://localhost:5601/,出現下面的界面
然后我們回到前面第三步中logstash.conf文件中指定的日志目錄,新建日志txt文件,文件內容如圖:
日志文件保存之后,在瀏覽器訪問Url:http://localhost:5601/app/kibana#/management/kibana/index_pattern,就可以看到可以新建日志索引了
索引創建完成后就可以在下面的鏈接看到日志數據了,http://localhost:5601/app/kibana#/discover