27
Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g

Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Performance Management with Packetbeat & ElasticsearchTudor Golubenco

@tudor_g

Page 2: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

$ whoami

Page 3: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Intro

• Romanian living in Berlin

• Student @FOKUS in 2006, diploma project about handover in IMS networks

• Joined Iptego, a young VoIP company

• CTO starting from 2009ish

Page 4: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 5: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Palladion

• Monitoring and troubleshooting for SIP (also RTP, RTCP, H.248, ENUM, Diameter, etc.)

• Iptego acquired by Acme Packet (2012)

• Acme Packet acquired by Oracle (2013)

Page 6: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 7: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Got complex with metrics

• Each new metric added complexity to the application (written C)

• Large number of metrics (~500K metrics)

• Each new feature and protocol needed to support all metrics

Page 8: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Got really complex with scalability

• We needed to show the global state (i.e. total number of active calls, end-to-end calls)

• Difficult when the data is distributed

Page 9: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

It would be nice to have a system just like Palladion to

monitor Palladion itself

Page 10: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Packetbeat

• Started by Monica Sarbu, first public version in 05.2014

• I joined full time 11.2014

Page 11: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

monitoring and troubleshooting for

distributed applications

Page 12: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Start from the communication

• The communication between components gets you the big picture

• Protocols are universal

• It’s objective

• No latency overhead

Page 13: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

How it works

• Captures the wire traffic (libpcap, pfring, af_packet)

• Follows TCP streams, decodes HTTP, MySQL, PgSQL, Redis, Thrift-RPC

• Looks for requests, waits for the matching response

• Records response time, URLs, response codes, etc

Page 14: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

$ packetbeat -e -d “publish”

Page 15: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

{ "client_ip": "127.0.0.1", "client_port": 46981, "ip": “127.0.0.1", "query": "select * from test", "method": "SELECT", "pgsql": { "error_code": "", "error_message": "", "error_severity": "", "iserror": false, "num_fields": 2, "num_rows": 2 }, "port": 5432, "responsetime": 12, "bytes_out": 95, "status": "OK", "timestamp": "2015-05-27T22:27:57.409Z", "type": "pgsql" }

Page 16: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Packetbeat + ELK

Page 17: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Why ELK?

• Already proven to scale and perform for logs

• Clear and simple flow for the data

• “Send the code where the data is, not the other way around”

• Powerful features that become simple:

• Drilling down to the transactions related to a peak

• Top N features are trivial

• Slicing by different dimensions is easy

Page 18: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 19: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 20: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 21: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 22: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common
Page 23: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Future plans

• Packet data is just the beginning

• Other sources of operational data:

• OS readings: CPU, memory, IO stats

• Code instrumentation

• API gateways

• Common servers internal stats (Nginx, Elasticsearch, Kamailio)

Page 24: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Joining Elastic

Page 25: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

from __future__ import beats

Page 26: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

The Beats

• Packetbeat - data from the wire

• Filebeat (Logstash-Forwarder) - data from log files

• Future:

• Topbeat - CPU, mem, IO stats

• Metricsbeat - arbitrary metrics from nagios/sensu like scripts

• RUMbeat - data from the browser

• Kamiliobeat (?)

Page 27: Performance Management with Packetbeat & Elasticsearch · 2015-06-23 · Performance Management with Packetbeat & Elasticsearch Tudor Golubenco @tudor_g $ whoami. Intro ... • Common

Stay in touch

• @tudor_g / @packetbeat

• https://discuss.elastic.co/c/beats

• Sign up for the webinar:

• https://www.elastic.co/webinars/beats-platform-for-leveraging-operational-data