原作者:http://www.cnblogs.com/snidget/p/6269383.html
ELK
ELK是什么?
Elasticsearch
LogStash
Kibana
1,簡單的安裝
我采用的是本地window環境;
下載的包如下:
首先安裝的是jdk8,安裝完成之后,設置路徑,
增加一個系統變量 JAVA_HOME 值為安裝的jdk目錄;
編輯系統變量 PATH 在值的末尾添加 ;%JAVA_HOME%/bin
打開命令行窗口,輸入 java -version; 看看是否安裝成功;
輸入輸出的版本號是1.8開頭的,則jdk8環境安裝完成;
elk的最新版本都是依賴的jdk1.8
然后安裝的是elasticResearch;
直接解壓到某個目錄
elasticSearch 是一個分布式的,支持REST風格的搜索和分析工具。
這次什么配置都不用更改,使用它的默認配置,
打開命令行窗口,把bin目錄下的 elasticsearch.bat 拖拽到命令行窗口,即可啟動;
從命令行輸出可以看到,已經成功的啟動了,開啟了兩個端口 9200,9300
9200是 httpserver,可以通過瀏覽器直接訪問到。
9300是 TransportService, clusterService ,是交換服務和集群服務,集群節點編號0;
可以看到這個 elasticSearch的集群信息;
先不去詳細研究,把基礎環境搭建起來再看。
接下來,安裝kibana;
這是一個把數據邊的可視化,並且提供一個導航查詢的工具。看里面的文檔結構,基於nodejs寫得;
配置kibana;英文注釋寫的很清楚;
打開命令行窗口,把bin下面的 kibana.bat 的拽到命令行窗口下,即可運行kibana;並且鏈接上了elastic;
打開 127.0.0.1:5601之后會要先配置索引,選擇默認的即可;
然后即可查詢;
最后安裝的是logstash
這是一個日志收集工具, 分成四步,收集,過濾,轉換,輸出;
首先需要配置好 logstash
input { stdin { } }
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
主要配置了一個message的格式,和時間戳的格式;
使用腳本啟動 D:\logstash-5.1.1\bin\logstash.bat -f D:\logstash-5.1.1\config\l
ogstash.conf
即可把在命令行中輸入的數據,傳輸到 elasticSearch ;
然后在kibana中展示出來;
最后一個簡單的應用,把tomcat的異常日志和錯誤日志使用logstash,傳輸到 elasticSearch
配置文件:
input { file { path => "D:/tomcat/apache-tomcat-7.0.62/logs/localhost_access_log*.txt" type => "apache_access_log" add_field => {"tomcatip" => "172.27.42.22"} } } filter{ if [type] == "apache_access_log" { grok{ match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:httpversion})?|-)\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{NUMBER:responsetime} \"(?:%{URI:referrer}|-)\" %{QS:agent}" } } date{ match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] target => ["writetime"] } mutate { convert => { "response" => "integer" "bytes" => "integer" "responsetime" => "integer" } } } } output { if [type] == "apache_access_log" { elasticsearch { hosts => "127.0.0.1:9200" index => "logstash-apacheaccesslog-%{+YYYY.MM.dd}" } } } |
然后在kibana中可以看到tomcat的訪問日志數據,並可以對它的訪問情況定制儀表盤,得到BI報表;
直接使用filebeat抓取tomcat的日志
修改配置文件:
使用命令啟動:
然后可以在kibana中查找到收集過來的數據;