Logstash + Elasticsearch + Kibana Presentation on Startit Tech Meetup
- 11. 1. collect data
2. parse/filter
3. send data
Logstash
written in JRuby
Author: Jordan Sissel
- 24. `$=`;$_=%!;($_)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$_++;$_++;($_,$,$,)=($~.$"."$;$/$%[$?]$_$$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";`$_$$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$$"$^$~$*.>&$=`
- 25. `$=`;$_=%!;($_)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$_++;$_++;($_,$,$,)=($~.$"."$;$/$%[$?]$_$$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";`$_$$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$$"$^$~$*.>&$=`
Just another Perl hacker.
- 28. Grok filter
2.10.146.54 - 2013-12-01T13:37:57Z - some really boring message
%{IP:client} - %{TIMESTAMP_ISO8601:time} - %{GREEDYDATA:message}
- 29. Grok filter
client => 2.10.146.54
time => 2013-12-01T13:37:57Z
message = > some really boring message
- 30. Grok filter
input {
tcp {
type => “server1"
host => "192.168.1.1"
port => "5555"
}
filter {
if [type] == “server1" {
grok {
match => { "message" => "%{IP:client} - %{TIMESTAMP_ISO8601:time} - %{GREEDYDATA:message} "}
}
}
- 33. 1. RESTful api
2. JSON-oriented
3. Horizontal scale
4. HA
5. Full Text search
6. Based on Lucene
Elasticsearch
Distributed RESTful
search server
- 34. Logstash => elasticsearch
input {
tcp {
type => “server1"
host => "192.168.1.1"
port => "5555"
}
filter {
if [type] == “server1" {
grok {
match => { "message" => "%{IP:client} - %{TIMESTAMP_ISO8601:time} - %{GREEDYDATA:message} "}
}
}
output {
elasticsearch {}
}
- 35. 1. Clean and simple UI
2. Fully customizable
3. Bootstrap based
4. Old version running on Ruby
5. Milestone 3 fully rewritten in
HTML/Angular.js
Kibana
Awesome Elasticsearch
Web Frontend to
search/graph
- 37. Scenario 1
L2 switch
Cisco ASA
L3 switch
UDP
UDP
Elasticsearch
Syslog broker
(lightweight shipper)
UDP
Logstash
(main log server)
Kibana