Ninefold's Logging System Technology Stack

27
ELASTICSEARCH, LOGGING, AND NINEFOLD

description

These are the slides from a talk I gave at the San Francisco Rails meetup at Crowdflower on June 19, 2014. I talked about Elasticsearch(a little), logstash, load balancing, high availability,processing millions of logs for multiple large-scale productoin environments, and lessons we learned implementing this system.

Transcript of Ninefold's Logging System Technology Stack

Page 1: Ninefold's Logging System Technology Stack

ELASTICSEARCH,LOGGING,ANDNINEFOLD

Page 2: Ninefold's Logging System Technology Stack

Hi,I'mRyan

LeadRailsSupportEngineeratNinefold

Page 3: Ninefold's Logging System Technology Stack

WHATWE'LLCOVER

Ninefold'sstack(ELK,sorta)ArchitectingthesystemGettingthelogsoutLessonslearned

Page 4: Ninefold's Logging System Technology Stack

LOGGING:

Page 5: Ninefold's Logging System Technology Stack

UNTILIT'SNOT!

Page 6: Ninefold's Logging System Technology Stack

WHATISELASTICSEARCH?

HighlyscalableAuto-clusteringAuto-shardingAuto-indexingAuto-magical!

ApacheLuceneunderthecovers

Page 7: Ninefold's Logging System Technology Stack

WHYELASTICSEARCH?

SeepreviousslideEasytosetupEasytoscale

ReadilyavailableresourcesonthewebSupersimpletounderstandwhat'sgoingon

Lotsoftools/integrations/plugins

Page 8: Ninefold's Logging System Technology Stack

INSTALLINGANDRUNNING

$curl-L-Ohttp://download.elasticsearch.org/PATH/TO/LATEST/$VERSION.zip$unzipelasticsearch-$VERSION.zip

$cdelasticsearch-$VERSION

$bin/elasticsearch#-dtodaemonize$curl'http://localhost:9200/?pretty'

Page 9: Ninefold's Logging System Technology Stack

OURSUPPORTINGROLES:

Beaver(https://github.com/josegonzalez/beaver)LogstashRabbitMQ

Page 10: Ninefold's Logging System Technology Stack

ALITTLEBITABOUTBEAVER:

WritteninPythonRunsasadaemonontheclient

Canlistentoandsendasmany/fewlogsasyouwantCandosomeoralllogformatting

FormatsandtransmitslogsonelineatatimetothequeueinJSON

Attachesmetadataforlater

Page 11: Ninefold's Logging System Technology Stack

MOREONLOGSTASH:

PullslogsfromthequeueFormatslogsagainandpushesthemtoElasticsearch

Groktoeasilyformatmessages

Page 12: Ninefold's Logging System Technology Stack

LOGSTASHGROK:

...{#findcheckpoint,turnitintoafieldandadditasatag:grok=>{:tags=>['cheflog'],:pattern=>"#{node[:ninefold_logger][:checkpoint_tag]}:%{WORD:checkpoint_type}",:tag_on_failure=>false,:add_tag=>"#{node[:ninefold_logger][:checkpoint_tag]}%{checkpoint_type}",:singles=>true},...

Page 13: Ninefold's Logging System Technology Stack

ABOUTRABBITMQ:

FastAMQPMessagingHighAvailability

Abilitytoaddnodestoexistingcluster

Page 14: Ninefold's Logging System Technology Stack

THEIDEA:

Page 15: Ninefold's Logging System Technology Stack

THEIMPLEMENTATION:

Page 16: Ninefold's Logging System Technology Stack
Page 17: Ninefold's Logging System Technology Stack

Uhh..

Page 18: Ninefold's Logging System Technology Stack

OK...

Page 19: Ninefold's Logging System Technology Stack

GIMMEMYLOGS!

Page 20: Ninefold's Logging System Technology Stack
Page 21: Ninefold's Logging System Technology Stack

LogEntryModel:

Page 22: Ninefold's Logging System Technology Stack

Findandsortthem:

Page 23: Ninefold's Logging System Technology Stack

DEMOTIME!!

Page 24: Ninefold's Logging System Technology Stack
Page 25: Ninefold's Logging System Technology Stack
Page 26: Ninefold's Logging System Technology Stack

WHATWE'VELEARNEDMulti-linelogsareachallengeMultipleinstancesofLogstashcancomplicatethingsLocalstorage>networkstorageDon'tuseglobs-bespecific.Elasticsearchisawesome!

Page 27: Ninefold's Logging System Technology Stack

[email protected]

@I_am_Ryo

github:IAMRYO