open source monitoring tools

59
The State of Open Source Monitoring Tools Michael Richardson (@m_richo) Energized Work

Upload: mrichardson

Post on 26-Jan-2015

142 views

Category:

Technology


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Open Source Monitoring Tools

The State of Open Source Monitoring

ToolsMichael Richardson (@m_richo)

Energized Work

Page 2: Open Source Monitoring Tools

What tools are we currently using to monitor and troubleshoot our systems?

Page 3: Open Source Monitoring Tools

What tools are we currently using to monitor and troubleshoot our systems?

• Nagios• ssh + grep <something_bad>

/some/random/log/file.log• tail –f /some/random/log/file.log• Others?

Page 4: Open Source Monitoring Tools

Nagios

Page 5: Open Source Monitoring Tools

Nagios – The lovers

Page 6: Open Source Monitoring Tools

Nagios – The lovers

Page 7: Open Source Monitoring Tools

Nagios – The lovers

Page 8: Open Source Monitoring Tools

Nagios – The lovers

Page 9: Open Source Monitoring Tools

Nagios Love-meter

0 10

Page 10: Open Source Monitoring Tools

Nagios Love-meter

0 10

Where are you on the Scale?

Page 11: Open Source Monitoring Tools

Nagios Love-meter

0 10

Nagios shits me to tears

Sign me up to Nagios World Conference

2013!!!!

Where are you on the Scale?

Page 12: Open Source Monitoring Tools

Alternatives ?

Page 13: Open Source Monitoring Tools

Alternatives ?

Yep, there’s lots

Page 14: Open Source Monitoring Tools

Alternatives ?

Yep, there’s lots

some are better andsome are worse

Page 15: Open Source Monitoring Tools

•Graphite•Statsd•Logstash•Sensu

Today let’s check out

Page 16: Open Source Monitoring Tools

Graphite

Page 17: Open Source Monitoring Tools

Graphite

• Metric storage• Complex graph creation• http://graphite.wikidot.com• Apache 2.0 license• Send time-series data that you are interested in

graphing

Page 18: Open Source Monitoring Tools

Graphite

Components1. Web2. Whisper3. Carbon

Page 19: Open Source Monitoring Tools

Graphite

• Everything stored in graphite has a path with components delimited by dots. Eg

servers.HOSTNAME.METRIC applications.APPNAME.METRIC

servers.database01.memfreeapplications.trading.loginattempts

Page 20: Open Source Monitoring Tools

Graphite

• No need to pre-define metric end-points• Determine granularity of data upfront.

/opt/graphite/conf/storage-schemas.conf[stats]pattern = ^stats.*retentions = 10:2160,60:10080,600:262974

[catchall]priority = 0pattern = ^.*retentions = 30:86400,300:525600

Page 21: Open Source Monitoring Tools

GraphiteWhat should I graph/trend?1. Application Profiling Data2. Operational Profiling Data3. Regression Testing (releases)

Why should I Graph/trend?4. Trends can tell you when something is about to

break.5. …instead of hearing from your customers that it’s

broken6. Data can tell you when something is already

broken but you don’t yet know it (regression).

Source: Jason Dixon (@obfuscurity)

Page 22: Open Source Monitoring Tools

GraphiteDemo

Image source - http://joemiller.me/2011/11/05/correlating-puppet-changes-to-events-in-your-infrastructure/

Page 23: Open Source Monitoring Tools

StatsD

Page 24: Open Source Monitoring Tools

StatsD

• Measure Anything, Measure Everything

• Created and released by Etsy• Aggregate counters and timers• http://github.com/etsy/statsd

Page 25: Open Source Monitoring Tools

StatsD

• Written in node.js• ~400 lines of javascript• Listens to statistics (counters &

timers), and sends aggregates to backend services (like graphite).

• simple

Page 26: Open Source Monitoring Tools

StatsD

Don’t like Javascript or Node.js??

Page 27: Open Source Monitoring Tools

StatsD

Don’t like Javascript or Node.js??

Google “statsd alternatives”…..

Page 28: Open Source Monitoring Tools

StatsD

Don’t like Javascript or Node.js??

Google “statsd alternatives”…..

20+ rewrites/clones for you including..Ruby, python, scala, python+twisted, erlang, clojure, C, groovy

Page 29: Open Source Monitoring Tools

StatsD

Concepts• Buckets (a name that translates to graphite end-

point)• Values• Flush (default 10 seconds)

Counter metricssuccessfullogins:1|c|@0.1

Timing metricsapitimer:320|ms

Page 30: Open Source Monitoring Tools

StatsD

Counter examples• Successful customer login attempts• Failed customer login attempts• Register a new customer• Hit 3rd party API

Page 31: Open Source Monitoring Tools

StatsD

Timer examples• How fast is our function blah()• How fast is a database query• How fast is our 3rd party API service• How fast is our internet access• How fast are our page response

times.

Page 32: Open Source Monitoring Tools

StatsD

demo

Page 33: Open Source Monitoring Tools

LogStash

Page 34: Open Source Monitoring Tools

LogStash

• Tool for managing Events and logs• http://logstash.net• https://github.com/logstash/

logstash• Apache 2.0 license• Created by Jordan Sissel

(@jordansissel)

Page 35: Open Source Monitoring Tools

LogStash

• Written in ruby.• Built with jruby and ships as a jar

file.

Page 36: Open Source Monitoring Tools

LogStash

LogStash agent is an Event pipeline with 3 parts.

1. Inputs2. Filters3. Outputs

Page 37: Open Source Monitoring Tools

LogStash

1. Inputs – generate events

2. Filters – modify them

3. Outputs – ship them somewhere

Page 38: Open Source Monitoring Tools

LogStash

Inputs include :

amqp, drupal_dblog, eventlog, exec, file, ganglia, gelf, gemfire, generator, heroku, irc, log4j, lumberjack, pipe, redis, relp, sqs, stdin, stomp, syslog, tcp, twitter, udp, xmpp, zenoss, zeromq

Page 39: Open Source Monitoring Tools

LogStash

Filters include :

alter, anonymize, checksum, csv, date, dns, environment, gelfify, geoip, grep, grok, grokdiscovery, json, kv, metrics, multiline, mutate, noop, split, syslog_pri, urldecode, xml, zeromq

Page 40: Open Source Monitoring Tools

LogStashOutputs include :

amqp, boundary, circonus, cloudwatch, datadog, elasticsearch, elasticsearch_http, elasticsearch_river, email, exec, file, ganglia, gelf, gemfire, graphite, graphtastic, http, internal, irc, juggernaut, librato, loggly, lumberjack, metriccatcher, mongodb, nagios, nagios_nsca, null, opentsdb, pagerduty, pipe, redis, riak, riemann, sns, sqs, statsd, stdout, stomp, syslog, tcp, websocket, xmpp, zabbix, zeromq

Page 41: Open Source Monitoring Tools

LogStash

Typical setup

Page 42: Open Source Monitoring Tools

LogStash

Shipper alternatives?

Page 43: Open Source Monitoring Tools

LogStash

Shipper alternatives?• Syslog (rsyslog, syslog-ng,)• Lumberjack https://github.com/jordansissel/lumberjack

• Beaverhttps://github.com/josegonzalez/beaver

• Woodchuckhttps://github.com/danryan/woodchuck

Page 44: Open Source Monitoring Tools

LogStash

Kibana• Web interface for viewing logstash

records stored in elastic search• http://kibana.org/• http://github.com/rashidkpc/Kibana• Search for records• Stream records (near realtime)• Create RSS feeds based on search

results• Score, trend data

Page 45: Open Source Monitoring Tools

LogStash

Kibana – search data

Image source - http://kibana.org/

Page 46: Open Source Monitoring Tools

LogStash

Kibana – trend data

Image source - http://kibana.org/

Page 47: Open Source Monitoring Tools

LogStash

Demo(Syslog & Apache access logs)

Page 48: Open Source Monitoring Tools

LogStash

TIP – Go buy the Logstash Book – http://logstashbook.com/James Turnbull (@kartar)

It’s a great introduction to how to use Logstash.

Page 49: Open Source Monitoring Tools
Page 50: Open Source Monitoring Tools

Sensu

• https://github.com/sensu/sensu• Creator – Sean Porter (@portertech)• Ruby, RabbitMQ, Redis• <1200 lines of code• Omnibus installation packages

Page 51: Open Source Monitoring Tools

Sensu

Components• Sensu-server• Sensu-client• Sensu-api• Sensu-dashboard

Page 52: Open Source Monitoring Tools

Sensu

• Message oriented architecture (messages are JSON objects)

• Described as a monitoring router• Connects “check” scripts on Sensu

Clients to “handler” scripts on Sensu Servers

Page 53: Open Source Monitoring Tools

Sensu

Checks can• Determine if a service like apache

up and running? (check exit code)• Collect metrics like page views or

database cache usage.

Page 54: Open Source Monitoring Tools

Sensu

Output of checks are router to 1 or more handlers who determine what to do.

Page 55: Open Source Monitoring Tools

Sensu

Output of checks are router to 1 or more handlers who determine what to do.

• Send alerts via email, pagerduty, IRC, twitter, basecamp, xmpp, hipchat, campfire, etc, etc

Page 56: Open Source Monitoring Tools

Sensu

Output of checks are router to 1 or more handlers who determine what to do.

• Send alerts via email, pagerduty, IRC, twitter, basecamp, xmpp, hipchat, campfire, etc, etc

• Feed metrics to backend services like graphite, librato, opentsdb, etc, etc

Page 57: Open Source Monitoring Tools

Sensu

demo

Page 58: Open Source Monitoring Tools

Questions??

Page 59: Open Source Monitoring Tools

Thank you