atmosphere 2014: centralized log management based on logstash and kibana - case study - dariusz...

31
Centralized log management based on Logstash and Kibana - case study Dariusz Eliasz 20.05.2014 Atmosphere Conference

Upload: proidea

Post on 08-May-2015

1.332 views

Category:

Presentations & Public Speaking


2 download

DESCRIPTION

Nowadays cloud enviroments are primary platform for applications. We no longer have multipurpose machines, rather multiple smaller virtual servers with dedicated roles. Therefore there is a need to have one place where we can manage applications and system logs. I wish to share my experience gained while building centralized log managment system using Nxlog, Logstash and Kibana. With that tools we are building cost effective and scalable log managment platform. Dariusz Eliasz - Works in Allegro Group as a Solution Architect and is responsible for organizing cooperation with infrastructure teams, also leads some of the infrastructure projects. Earlier as an Expert System Administratorhe was related with building and maintaining the infrastructure shared services (i.e. image hosting platform) within Allegro Group.

TRANSCRIPT

Page 1: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Centralized log management based on

Logstash and Kibana - case study

Dariusz Eliasz

20.05.2014 Atmosphere Conference

Page 2: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

• What’s the problem ?

• Solutons

• Transport format

• Architecture

– Sender

– Log router

– Log collector

– Full text search engine

– GUI

• Use case

Agenda

Page 3: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

What’s the problem ??

Page 4: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 5: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 6: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Solutons ??

Page 7: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 8: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 9: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 10: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 11: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Transport format - syslog

• RFC3164 (BSD syslog )

• limited size - 1kB

• format of a syslog message:

– PRIORITY (calculated from severity and facility)

– HEADER (tmestamp + hostname or IP)

– MSG (tag + content)

<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick on /dev/pts/8

Page 12: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Transport format - json

• JavaScript Object Notaton

• lightweight text-data interchange format

• language independent

• self-describing

Page 13: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Transport format - json

{

"LogType": "access_log",

"Vhost": "atmosphere-conference.com",

"HtpsOn": "false",

"Xrealip": "1.2.3.5",

"Clientp": "91.17.13.28",

"UserAgent": "Mozilla/4.0 (compatble; MSIE 6.0; Windows NT 5.1)",

}

Page 14: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Architecture

Page 15: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Sender

Page 16: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Sender

• nxlog (htp://nxlog-ce.sourceforge.net/)

• multple input types:

– tcp socket

– udp socket

– fle input

– unx socket

• multple parser types:

– bsd syslog

– json

Page 17: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Sender

Good practce:

• make as much as possible processing on sender site, eg: apache access logs in

json format

• automate confguraton management

Page 18: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log router

Page 19: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log router

nxlog

nxlog logstash

logstash

redis

redissyslog-ng

syslog-ng redis

Page 20: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log router

### JSON PARSER

parser p_json {

json-parser (prefx("_json."));

};

### FILTERS

flter f_someflter {

("${_json.SomeJsonField}” == ”abc.com”)

};

### INPUTS & OUTPUTS

### LOG PATHS

log {

source(s_network_json);

destnaton(d_udp_logstash);

destnaton(d_tcp_hadoop);

#fags(fow-control); # disabled to separate destnatons

};

Page 21: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log router

Good practce:

• good separaton of destnatons

• calculate enough redis size – it’s yor bufer

• batch events writes to redis

Page 22: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log collector

Page 23: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log collector

• Logstash htp://logstash.net/

• collectng, parsing and storing logs tool

• plugins:

Inputs

• fle

• gelf

• tcp

• log4j

• redis

• varnishlog

Codecs

• json

• line

• msgpack

• netlow

• multline

Filters

• grok

• alter

• cidr

• geoip

• grep

• mutate

Outputs

• elastcsearch

• graphite

• jira

• tcp

• zeromq

• zabbix

Page 24: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Log collector

Good practce:

• keep up2date version of java & logstash

• use batch & multthread read from redis

• read logs

• bulk writes to elastcsearch

Page 25: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Full text search engine

• Elastcsearch htp://www.elastcsearch.org/

• distributed, real-tme search and analytcs engine

• store documents as a JSON

• high availability

• schema free

• index mult-tenancy

• on top of Lucene

Page 26: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Full text search engine

• every index is replicated

• every index sharded

• index parttoning – tme based

• data retenton – tme based

Page 27: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Full text search engine

Good practce:

• half memory for ES (<30GB), half for system cache

• bootstrap.mlockall: true

• gateway.recover_afer_nodes

• indices.felddata.cache.size

• authorizaton via proxy

• curator

• Marvel plugin

Page 28: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

GUI

• Kibana 3 htp://www.elastcsearch.org/overview/kibana/

• search, graph & analyze logs

• JavaScript based (AngularJS)

• only simple htp server needed

Page 29: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz
Page 30: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Q&A

Page 31: Atmosphere 2014: Centralized log management based on Logstash and Kibana - case study - Dariusz Eliasz

Sources

Images:

htp://www.datalife7.com/2014/01/einsteins-secret-to-problem-solving-and.html

htp://www.formengifs.com/victorinox-swiss-army-swiss-champ-multtool-knife/

htp://www.slashgear.com/google-data-center-hd-photos-hit-where-the-internet-lives-gallery-17252451/