ELK能夠完成以下功能:php
l 根據關鍵字查詢日誌詳情linux
l 監控系統的運行情況web
l 統計分析,好比接口的調用次數、執行時間、成功率等vim
l 異常數據自動觸發消息通知安全
l 基於日誌的數據挖掘ruby
ELK能夠實現Splunk 基本功能服務器
Splunk 是機器數據的引擎。使用 Splunk 可收集、索引和利用全部應用程序、服務器和設備(物理、虛擬和雲中)生成的快速移動型計算機數據 。從一個位置搜索並分析全部實時和歷史數據。 使用 Splunking 處理計算機數據,可以讓您在幾分鐘內(而不是幾個小時或幾天)解決問題和調查安全事件。監視您的端對端基礎結構,避免服務性能下降或中斷。以較低成本知足合規性要求。關聯並分析跨越多個系統的復瑣事件。獲取新層次的運營可見性以及 IT 和業務智能。elasticsearch
1、準備工具:tcp
1、Elasticsearch:ElasticSearch是一個基於Lucene構建的開源,分佈式,RESTful搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。分佈式
elasticsearch 1.4.2下載地址:http://www.elasticsearch.org/download/
2、Logstash:是一個徹底開源的工具,他能夠對你的日誌進行收集、分析,並將其存儲供之後使用(如,搜索),您可使用它。說到搜索,logstash帶有一個web界面,搜索和展現全部日誌。
logstash-1.4.2.tar.gz下載地址http://www.elasticsearch.org/overview/logstash/download/
3:kibana: 是一個爲 ElasticSearch 提供日誌分析的 Web UI工具,可以使用它對日誌進行高效的搜索、可視化、分析等各類操做。
kibana 4 beta 3下載地址http://www.elasticsearch.org /overview/kibana/installation/
(注意:版本必定要一致,不然可能會有產生一些問題)
2、安裝
1、安裝Elasticsearch
①解壓elasticsearch-1.4.2.tar.gz
tar zxvf elasticsearch-1.4.2.tar.gz
②進入到elasticsearch-1.4.2文件夾
cd elasticsearch-1.4.2
③啓動Elasticsearch
Run bin/elasticsearch on Unix,or bin/elasticsearch.bat on Windows
2、安裝logstash
①解壓logstash-1.4.2.tar.gz
tar zxvf logstash-1.4.2.tar.gz
②進入到logstash-1.4.2
cd logstash-1.4.2
③建立採集系統日誌的配置文件logstash-syslog.conf
mkdir conf
vim conf/logstash-syslog.conf
監聽5000端口的消息,logstash-syslog.conf內容以下
input {
tcp {
port => 5000
type => syslog
}
udp {
port => 5000
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" ]
}
}
}
④啓動logstash採集系統日誌
./bin/logstash -f conf/logstash-syslog.conf
⑤向5000端口發送系統日誌
telnet localhost 5000
Dec 23 12:11:43 louis postfix/smtpd[31499]: connect from unknown[95.75.93.154] Dec 23 14:42:56 louis named[16000]: client 199.48.164.7#64817: query (cache) 'amsterdamboothuren.com/MX/IN' denied Dec 23 14:30:01 louis CRON[619]: (www-data) CMD (php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log) Dec 22 18:28:06 louis rsyslogd: [origin software="rsyslogd" swVersion="4.2.0" x-pid="2253" x-info="http://www.rsyslog.com.sixxs.org"] rsyslogd was HUPed, type 'lightweight'. |
⑥查看已啓動的logstash收集5000端口日誌的界面,會產生以下圖所示信息:
3.安裝Kibana
①解壓kibana-4.0.0-beta3.tar.gz
tar zxvf kibana-4.0.0-beta3.tar.gz
②進入kibana-4.0.0-beta3
cd kibana-4.0.0-beta3
③啓動Kibana
./bin/kibana
④打開Kibana前臺界面
http://192.168.14.136:5601或者http://localhost:5601
⑤搜索Mozi*
到目前爲止ELK已經搭建完成。
3、經過logstash收集Linux系統日誌
1、建立logstash-localsyslog.conf
vim conf/logstash-localsyslog.conf
將以下內容添加到logstash-localsyslog.conf中並保存:
input {
file{
type=>"syslog"
# 通配符在此適用:)
path=>["/var/log/messages","/var/log/syslog","/var/log/*.log"]
}
}
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 { host => localhost }
stdout { codec => rubydebug }
}
2、啓動收集linux本地系統日誌的logstash
./bin/logstash -f conf/logstash-localsyslog.conf
3、經過Kibana進行查詢
4、Kibana能夠選擇查詢某個時間段的數據
好比查詢過去30min的數據