SysDig Metriken zentralisieren

162 views

Published on

Brownbag
Speaker: Alexander Köhler, inovex
18.11.2016

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
162
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SysDig Metriken zentralisieren

  1. 1. SysDig Metriken zentralisieren Brownbag Alexander Köhler Karlsruhe, 18.11.16
  2. 2. 2 Sysdig http://www.sysdig.org/ • Sysdig = “strace + tcpdump + htop + iftop + lsof + transaction tracing + awesome sauce“ • Lokal auf einem System: csysdig • Es gibt Repos für viele Linux-Major-Distributionen: • Jeweils ab Rhel6 ff, Centos6 ff., Debian6 ff., Ubuntu 10.04 ff
  3. 3. 3 Sysdig http://www.sysdig.org/ • Auf mehren Systemen? A fake it is :-)
  4. 4. 4 Sysdig https://sysdig.com/ • Oder doch die On-Premise/Cloud Lösung? • Cloud: 20 $ Host/Monat (bei Jahresvertrag) oder 25 $ Host/Monat (Monatlicher Abrechnung) • 1 Host darf maximal 20 Container hosten • On-Premise: Preise nur auf Anfrage.
  5. 5. 5 Sysdig • Mit Sysdig mehrere Systeme analysieren? Also doch mit einem neuen Rudel Monitore?
  6. 6. 6 Sysdig Events zentralisieren Idee: Sysdig Events per ELK auswertbar machen
  7. 7. 7 Basics Demo > sysdig # Infinite scroll > sysdig –n 10 # Limitierung auf 10 Events > sysdig -n 10 "not (proc.name = sysdig)" # Capture Filter > sysdig -n 10 "not (proc.name = sysdig) and not (proc.name = java)“ # Capture Filter kombiniert
  8. 8. 8 Basics Sysdig-Events mit Logstash parsen # Über das STDIN Input Logstash Plugin > sysdig -n 10 | /opt/logstash/bin/logstash -f /etc/logstash/sysdig-logstash-plain.conf grok { match => { 'message' => "^%{NUMBER:num:int} %{NUMBER:time:float} %{INT:cpu:int} %{NOTSPACE:procname} %{NOTSPACE:tid} (?<direction>[<>]) %{WORD:event} %{DATA:args}$"} } # Geht das Aufbereiten der Events noch besser? > sysdig -n 10 –j "not (proc.name = sysdig)“ # Output Format JSON > sysdig -l # Verfügbare Felder > sysdig -p '{"proc_name":"%proc.name"}‘ # Eigenes JSON-Output Format
  9. 9. 9 Basics Sysdig-Events mit Logstash parsen # Das ganze Bild: input { stdin { codec => 'json_lines' } } output { stdout { codec => 'json_lines' } elasticsearch { hosts => [ ’elasticsearch:9200' ] index => "sysdig-%{+YYYY.MM.dd}" } } > sysdig -p '{"proc_name":"%proc.name", "evt_category": "%evt.category", "evt_time":"%evt.time","evt_type":"%evt.type","evt_cpu":"%evt.cpu", "evt_args": "%evt.args"}' "not(proc.name = sysdig) and not(proc.name = java)" | /opt/logstash/bin/logstash -f /etc/logstash/sysdig-logstash-json.conf
  10. 10. 10 Summary • Vorgehen einfach • ELK haben • Voraussetzung Sysdig + Logstash (+ JRE) installieren • Metriken erfassen • Nachteil: • sysdig ist gesprächig und Logstash (Java) braucht unter Last viele Ressourcen • Ohne Filter kommen viele Events: 270.000 in 10 Minuten auf einem idlenden System • Mögliche Optimierungen • Einsatz geeigneter Filter für Sysdig • Asynchrone Verarbeitung der Events: sysdig > Cache > Logstash • On-Demand Aktivierung für Deep-Dive Analysen
  11. 11. 11 More fancy Kleine Beispiel Auswertungen für Sysdig # Und was ist mit Container? > sysdig -c lscontainers > sysdig -pc -A -c echo_fds "fd.ip=172.17.0.2” # more fancy --> https://sysdig.com/blog/let-light-sysdig-adds-container-visibility/ # User Tracking > sysdig -pc -c spy_users
  12. 12. Vielen Dank Alexander Köhler DevOps Engineer Linux inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe alexander.koehler@inovex.de 0173 3181 034

×