Zentraler Logserver

Splunk, Graylog und ElasticSearch/Kibana

Umgebung

  • Webshop
  • 120k Besucher
  • Java/Tomcat
  • Reverse Proxy Stack
  • VMs
  • Getrenntes Dev-System

Probleme/Anforderungen

  • 2 Proxy Stacks (NGinx, Varnish, Apache)
  • 5 Applikationsserver (Backend + 4 Frontend)
  • Isolierte Produktionssysteme

 

  • Proxy Stack
  • 3 Applikationsserver
  • NAS (NFS)

Logdaten

  • Accesslog NGinx
  • Accesslog Apache
  • App Log (Log4J)
  • VarnishNCSA Log*

Datenraten

  • NGinx ~100 /s
  • Apache ~ 60 /s
  • App Logs ~ 20 /s

Übertragung

  • Produktiv System zum Dev-System
  • Über Firewalls
  • TLS notwendig
  • Verluste nicht akzeptabel
  • Blocking nicht akzeptabel (Syslog)
  • Mehrzeilenlogs (Log4J)
  • Kaum bis keine Eingriffe in das Logging der Apps

POC

  • Nur Dev-System
  • Geringe Ressourcen
  • Graylog/Logstash
  • Kaum Konfig

Versuch 1

  • Syslog UDP von Proxys
  • Logstash auf den App-Nodes Fileinput/Graylog
  • Graylog-Radio
  • RabbitMQ
  • Graylog-Indexer

Ergebnisse 1

  • Kein TLS
  • Syslog UDP und
  • GELF UDP > Firewall + Verlust
  • Radio+MQ+Indexer > Speicher
  • Datenverlust

Versuch 2

  • Logstash-Forwarder
  • Logstash
  • Graylog

Ergebnisse 2

  • TLS
  • TCP
  • Logstash Forwarder: Klein, Logrotate, ACK, "neue Dateien"
  • Logstash 1.4 Bug: Speicherleck
  • Graylog zu langsam

Versuch 3

  • Logstash Forwarder
  • Logstash
  • Elasticsearch direkt
  • Kibana3/4

Ergebnisse 3

  • TLS
  • TCP
  • Logstash 1.5 Beta (Bug weg)
  • Im Maximum 600 Events/s
  • Teils 300MB/s

Ergebnisse 3

  • Logstash modifiziert Einträge
    • Datentypen
    • Plugin UserAgent
    • Plugin GeoIP
    • Metrics
    • Multiline
    • Grok

Ergebnisse 3

  • Seit 22.12.2014
    • 320 Mio Einträge
    • 280GB
    • 242 Shards
  • Access-Log Dashboard
  • App-Log Dashboard
  • GeoIP Filter
  • UserAgent Filter

Ergebnis ElasticSearch

  • Aufwand eher hoch
  • Ergebnis fast gut
  • Beta Software
  • Antworten aus Logs aufwändig

Splunk

POC

  • Lizenz für 20GB Tag
  • Splunk-Forwarder
    • Userspace
    • CLI: add, remove Dateien/Pfade
  • Splunk Server
    • Web GUI
    • Dashboards
    • Konfig
    • Userverwaltung
    • Mails

POC

  • Setup mit TLS (zwingend)
  • Pro Server 15 Minuten
  • Indexer Setup 30 Minuten

Splunk Features

  • Archivierung der Daten
  • Log Typen Erkennung
  • Auto Felder pro Typ
  • Extrahieren von Daten und Events / Nachträglich
  • Verkettete Suchen
    • type=access | geoip=ip | top 10 countrys by sum(count)
  • Grafische Darstellung in der Suche
  • Mobile Access

Splunk Features

  • Inputs TCP, UDP, Dateien, Scripte
  • Typen in großer Menge (accesslogs, log4j, mysqld,...)
  • Forwarder
  • Cluster
  • Remote Management der Indexer und Forwarder

Splunk für Admins

  • Suche
  • Zeitfenster
  • Event Mail
  • Pro Aktiv
  • Zentrale Ablage für Logs

Splunk für Bosse

  • Apps
  • Einfach eigene Felder
  • Grafiken/Mobile
  • Executive Dashboards ohne Suche 
  • Excel Export

Splunk Preise

  • Verhandlungssache :)
  • 40k / 5GB
  • 12k / 20GB
  • Kostenlos bis 500MB

Lohnt sich das?

  • Ja, wenn man Wissen aus Logs generieren muss
  • Ja, wenn man Support und SLA braucht
  • Ja, wenn man unter 500m ist :)
  • Nicht, wenn man nur in Logs suchen will oder Graylog es auch tut

Fragen?

Zentraler Logserver

By Thoms Be

Zentraler Logserver

  • 1,717