ELK(Elasticsearch,Logstash和Kibana)日誌分析平臺,是目前比較流行的技術架構了。出於好奇心的驅使在自己的mac電腦上安裝了一下,探探究竟。先介紹一下Elasticsearch,Elasticsearch是目前全文搜索引擎的首選。它可以快速地儲存、搜索和分析海量數據。維基百科、Stack Overflow、Github 都採用它。Elastic 的底層是開源庫 Lucene。但是,你沒法直接用 Lucene,必須自己寫代碼去調用它的接口。Elastic是Lucene的封裝,提供了REST API的操作接口,開箱即用。
安裝前準備
1.mac下安裝最方便的就是Homebrew了。首先安裝Homebrew。
2.elk需要java8的環境,java -version看是否當前java環境是java8。
安裝elasticsearch
brew install elasticsearch && brew info elasticsearch
啓動/關閉/重啓elasticsearch:
brew service start elasticsearch
brew service stop elasticsearch
brew service restart elasticsearch
啓動之後使用您喜歡的瀏覽器檢查它是否在localhost和默認端口上正確運行:http:// localhost:9200
輸出應該如下所示:
安裝Logstash:
brew install logstash
啓動/關閉/重啓logstash
brew services start logstash
brew services stop logstash
brew services restart logstash
由於我們尚未配置Logstash管道,因此啓動Logstash不會產生任何有意義的結果。我們將在下面的另一個步驟中返回配置Logstash。
安裝Kibana
brew install kibana
啓動Kibana並檢查所有ELK服務是否正在運行:
brew services start kibana
brew services list
Kibana需要進行一些配置更改才能正常工作,打開Kibana配置文件:kibana.yml
sudo vi /usr/local/etc/kibana/kibana.yml
取消註釋用於定義Kibana端口和Elasticsearch實例的指令:
server.port: 5601
elasticsearch.url: "http://localhost:9200”
如果一切順利,請在localhost:5601/status打開Kibana。你應該看到這樣的東西:
恭喜,您已經在Mac上成功安裝了ELK!
發送一些數據
您已準備好開始向Elasticsearch發送數據並享受堆棧提供的所有優點。下面是一個Logstash管道將syslog日誌發送到堆棧的示例。 首先,您需要創建一個新的Logstash配置文件:
sudo vim /etc/logstash/conf.d/syslog.conf
輸入以下配置:
input {
file {
path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
type => "syslog"
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "syslog-demo"
}
stdout { codec => rubydebug }
}
然後重啓logstash.
在Kibana的Management選項卡中,您應該看到由新的Logstash管道創建的新創建的“syslog-demo”索引。
將其作爲index pattern輸入,然後在下一步中選擇@timestamp字段作爲時間過濾器字段名稱。
我們都準備好了!打開Discover頁面,您將在Kibana中看到syslog數據。