Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SysDig Metriken zentralisieren
Brownbag
Alexander Köhler Karlsruhe, 18.11.16
2
Sysdighttp://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
Sysdighttp://www.sysdig.org/
• Auf mehren Systemen?
Afakeit is :-)
4
Sysdighttps://sysdig.com/
• Oder doch die On-Premise/Cloud Lösung?• Cloud: 20 $ Host/Monat (bei Jahresvertrag) oder 25 $ Host/Monat (Monatlicher
Abrechnung)
• 1Hostdarfmaximal20Containerhosten• On-Premise: Preise nur auf Anfrage.
5
Sysdig
• Mit Sysdig mehrere Systeme analysieren? Also doch mit einem neuen Rudel Monitore?
6
Sysdig Events zentralisierenIdee: Sysdig Events per ELK auswertbar machen
7
BasicsDemo
> 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
BasicsSysdig-Events mit Logstash parsen
# Über das STDIN Input Logstash Plugin
> sysdig -n 10 | /opt/logstash/bin/logstash -f /etc/logstash/sysdig-logstash-plain.confgrok { 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
BasicsSysdig-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
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
More fancyKleine 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
Vielen Dank
Alexander Köhler
DevOps Engineer Linux
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
0173 3181 034