Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SysDig Metriken zentralisieren

200 views

Published on

Brownbag
Speaker: Alexander Köhler, inovex
18.11.2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

×