一 方案背景
通常,日志被分散的儲存不同的設備上。如果你管理數十上百台服務器,你還在使用依次登錄每台機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。
開源實時日志分析
ELK
平台能夠完美的解決日志收集和日志檢索、分析的問題,
ELK就是指ElasticSearch
、
Logstash
和
Kiabana
三個開源工具。
因為ELK是可以跨平台部署,因此非常適用於多平台部署的應用。
二 環境准備
1. 安裝JDK1.8環境
2. 下載ELK軟件包
- logstash: https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.zip
- elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
- kibana: https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-windows-x86.zip
分別解壓下載的軟件,elasticsearch,logstash,kibana 可以放在一個統一文件夾下
三 部署
1.配置logstash
在logstash文件夾的下bin目錄創建配置文件logstash.conf ,內容如下:
input {
# 以文件作為來源
file {
# 日志文件路徑
path => "F:\test\dp.log"
}
}
filter {
#定義數據的格式,正則解析日志(根據實際需要對日志日志過濾、收集)
grok {
match => { "message" => "%{IPV4:clientIP}|%{GREEDYDATA:request}|%{NUMBER:duration}"}
}
#根據需要對數據的類型轉換
mutate { convert => { "duration" => "integer" }}
}
# 定義輸出
output {
elasticsearch {
hosts => ["localhost:9200"] #Elasticsearch 默認端口
}
}
在bin目錄下創建run.bat,寫入一下腳本:
logstash.bat -f logstash.conf
執行run.bat啟動logstash。
2. 配置Elasticsearch
Elasticsearch默認端口9200,執行bin/elasticsearch.bat即可啟動。
啟動后瀏覽器訪問 127.0.0.1:9200 ,出現以下的json表示成功。
3.配置kibana
Kibana啟動時從文件kibana.yml讀取屬性。默認設置配置Kibana運行localhost:5601
。要更改主機或端口號,或者連接到在其他機器上運行的Elasticsearch,需要更新kibana.yml
文件。
執行bin/kibana.bat啟動Kibana。
四 測試
1.創建Index
用瀏覽器打開http://localhost:5601/ 系統會提示創建Index,可以按時間創建Index。在Discover選項卡上你會看到你剛剛在dp
.log中輸入的內容。

2. 檢索日志
快速檢索定位。

3. 日志分析
新建Visualize,選擇Line(當然其他視圖都可以)。然后選擇數據源。

X軸選擇時間,Y軸分別為訪問接口的最大耗時和平均耗時。

創建Dashboard視圖,可以將相關圖標放在一個視圖,方便分析。
