Zum Log-Management gehört alles von der Log-Erstellung bis hin zu deren Archivierung und Löschung, aber in der Regel kommt uns bei diesem Thema als Erstes die Aggregation von Logs zur Fehlerdiagnose in den Sinn. Beim erfolgreichen Log-Management werden Ihre Logdaten an eine zentrale Stelle gesendet, wo alle Beteiligten sie bei Bedarf aufrufen, visualisieren und im Kontext zusammen mit Daten anderer Services analysieren können. Denn „Logs in Context“ bedeutet, dass Sie zur logbasierten Fehlerermittlung auch Kontext aus Ihren Anwendungen und Ihrer Infrastruktur einbringen können.

Die Log-Erstellung sowie das Auffinden der benötigten Logs stellen im Log-Management für verteilte Software-Anwendungen wahrscheinlich die größten Herausforderungen dar. Auch das Management der Alerts sowie das Verhindern unzähliger falsch-positiver Alerts ist oft problematisch. Tools, die kontextbezogen arbeiten, erleichtern das Log-Management daher ungemein.

In diesem Blog-Post geht es um folgende Themen: 

  • Was bedeutet Logs in Context und was ist kontextbezogenes Logging?
  • Use Cases für Logs in Context
  • Vorteile von Logs in Context
  • Verwenden von Logs in Context zur Verbesserung von Alerts 
  • Implementieren von Logs in Context in New Relic

Was sind Logs in Context?

Das Konzept der Logs in Context oder des kontextbezogenen Logging bezieht sich auf die Darstellung von Logs im Kontext von Problemen in Ihren Anwendungen bzw. Ihrer Infrastruktur. Durch Verknüpfen hilfreicher App- und Infrastrukturdaten mit Log-Events und deren Verbreitung in dazugehörigen Events treten Muster und Trends in verschiedenen Bereichen Ihres Systems eher zutage. 

Anstatt zahlreiche separate Logs durchforsten zu müssen, sehen Sie sofort und im Kontext, wo genau ein Problem seinen Ursprung hat, und können ohne großen Aufwand detailliertere Informationen dazu aufrufen. Und wenn Sie einen Fehler oder einen Distributed Trace als Ausgangspunkt nehmen, können Sie von dort zu dem Log gelangen, das in dieser Transaktion erstellt wurde.

Am folgenden Beispiel sehen Sie, wie Logs in Context in New Relic eingesetzt werden können: 

  • Der New Relic APM Agent liefert dem Logging-Framework Monitoring-Daten zur Anwendungs-Performance und fügt diese Daten auch in Ihre Anwendungslogs ein. 
     
  • New Relic empfängt automatisch die Daten, die von Ihren Anwendungen eingehen. Wenn Sie auf die APM Übersichtsseite für einen Service gehen, sehen Sie rechts unter „Related data“ die Anzahl der Fehlerlogs sowie ein Logdiagramm mit grafischer Darstellung des Schweregrads für den ausgewählten Zeitraum.
  • In New Relic werden Nachrichten und Daten korreliert, sodass relevante Muster und Trends zum Vorschein kommen. Von Ihren APM-Seiten in New Relic können Sie weitere Details zu Logs, Traces und Fehlern aufrufen. Dazu gehören Ihre Errors Inbox sowie Daten aus Ihrer Infrastruktur und aus Kubernetes.

    Da New Relic die Logdaten mit Events und Traces aus den entsprechenden Anwendungen korreliert, werden APM-Fehler und Distributed Traces direkt mit den Logs verlinkt, die während derselben Transaktion erstellt wurden, in der auch der Fehler oder Trace entstand. Die Host- bzw. Infrastruktur-Ansicht verlinkt dabei direkt zu allen verfügbaren Logs.

Die Host- bzw. Infrastruktur-Ansicht verlinkt jetzt zu allen verfügbaren Logs.

  • New Relic versieht Ihre Logdaten mit Kontextattributen: Eine Span-ID, eine Trace-ID sowie ein Anwendungsname werden in die Lognachrichten eingefügt. So wird Teams die Fehlersuche erleichtert, denn sie können die Daten analysieren und sofort Zusammenhänge mit anderen Bereichen erkennen, in denen Ihre Anwendung durch Fehler beeinträchtigt sein könnte. Auf der Hauptseite Ihrer Logs-UI sehen Sie all Ihre Logs und können per Texteingabe und nach Attributen filtern.

Mit einer Lösung fürs kontextbezogene Logging müssen Sie nicht mehr mühsam nach problemrelevanten Logs suchen, sondern Sie sehen alles an einem Ort.

Logs in Context funktionieren richtungsunabhängig: Sie können entweder ein bestimmtes Log prüfen und dann den Server aufrufen. Oder Sie sehen sich die Daten eines Servers an und rufen dann die entsprechenden Logdaten auf. Beispielsweise werden in der Logübersicht in New Relic alle Logs bis hin zur Anwendungsebene aufgeführt und Sie können eventuelle Muster in Ihren Logs für diese Anwendung sehen. Und wenn Sie z. B. einen Distributed Trace betrachten, der mehrere Anwendungen und Hosts umfasst, sehen Sie auch dort die Logs in Context.

Bessere Alerts mit Logs in Context

Unabhängig vom Observability- oder Monitoring-Tool konzentrieren sich Alert-Ziele meist auf die automatische Benachrichtigung der jeweils relevanten Mitarbeiter:innen und Teams, wenn bei Ihrer Anwendung entweder ein Problem auftritt oder ein geschäftskritischer Vorgang stattfindet. Eine Schwierigkeit beim Alert-Management ist das Festlegen der richtigen Schwellenwerte für Alerts. Werden zu viele Alerts generiert, kommt es zur Alert-Schwemme im Tool. Unabhängig davon, ob es am Tool selbst liegt oder an der Konfiguration der Alerts im Tool – wenn man ständig von falschen Alerts bombardiert wird, wird man irgendwann „alert-müde“ und ignoriert sie schließlich.

Sie können Alerts auch mit anderen Telemetriedatentypen erstellen. Die folgenden Tipps gelten allerdings speziell für Logs in New Relic:

Use Cases für Logs in Context

Hier sehen Sie ein paar Beispiele für den Praxiseinsatz von Logs in Context:

  • Analysieren Sie Logdaten, um Einblicke in das Nutzerverhalten, in Sicherheitsprobleme und in die System-Performance zu erhalten. Suchen Sie dazu als Erstes nach Mustern und analysieren Sie die Logs über mehrere Zeiträume.
  • Grenzen Sie Ihre Suche ein, indem Sie die Logs nach Fehlertyp oder Schweregrad filtern oder indem Sie nach Logs suchen, die zu bestimmten Services oder Benutzer:innen gehören. Diese Logdetails können Sie dann eingehend prüfen.
  • Um zu sehen, was im Host vor sich ging, als in Ihrer Anwendung ein Fehler auftrat, können Sie die Fehlerdiagnose von der Errors Inbox aus durchführen, oder indem Sie APM > Events > Error analytics auswählen.
  • Verschaffen Sie sich durch Korrelation der Logs mit anderen Datenquellen einen besseren Überblick. Beispielsweise können Sie eine bestimmte Benutzertransaktion in Logs nachverfolgen, um zu sehen, wie sie sich über mehrere Services hinweg verhält. Oder Sie verwenden Distributed Traces zum Latenz-Troubleshooting, um eine bessere Vorstellung davon zu bekommen, was in Ihrem System vor sich ging, als die Performance nachließ. 
  • Erstellen Sie einen Alert, der ausgelöst wird, wenn eine bestimmte Fehlermeldung in Ihren Logs erscheint oder wenn eine bestimmte Anzahl fehlgeschlagener Anmeldeversuche überschritten wird.
  • Was Sie mithilfe Ihrer Logs herausgefunden haben, können Sie zudem mit anderen teilen, indem Sie die Logdiagramme in einem Dashboard darstellen

Vorteile von Logs in Context

Das kontextbezogene Logging mit Logs in Context erleichtert Ihnen vier wichtige Aspekte des Log-Managements erheblich.

Incident Response verbessern

Da Sie sehen können, welche Services oder Komponenten betroffen sind, welche Fehler- oder Warnmeldungen generiert werden und wann ein Problem zum ersten Mal auftrat, haben Sie die Möglichkeit, anhand fundierter Informationen die richtigen Prioritäten zu setzen und schneller zur Fehlerursache und letztendlich zur Lösung zu gelangen.

Mit Logs als gemeinsam genutzter Informationsquelle sind alle im Bilde und können an einem Strang ziehen. Logs helfen Ihnen auch zu ermitteln, wer an der Problembehebung beteiligt sein sollte, und sorgen dafür, dass allen Beteiligten alle dazu notwendigen Informationen zur Verfügung stehen.

Teamübergreifende Zusammenarbeit verbessern

Logs in Context sind eine gemeinsame Informationsquelle, auf die alle Beteiligten Zugriff haben, sodass alle am selben Strang ziehen können. Mit Logs können Teams Informationen und Einblicke teilen, Fragen stellen und einander Feedback geben. So lassen sich gemeinsam bessere Entscheidungen treffen.

Alert-Rauschen reduzieren und die Effizienz Ihres Teams steigern

Logs liefern zusätzlichen Kontext für Alerts, sodass die Anzahl falsch-positiver Alerts zurückgeht. Und bei den verbleibenden Alerts hilft der Kontext Ihren Teams bei der Priorisierung. 

Zuverlässigkeit und Genauigkeit der Alerts verbessern

Durch die kontextbezogene Analyse der Logs verschaffen Sie sich einen besseren Überblick über den Systembetrieb unter Normalbedingungen. Auf dieser Grundlage können Sie wiederum Alerts erstellen, die genau auf Ihr System zugeschnitten sind. Damit sinkt die Falsch-Positiv-Rate und durch Erstellen präziserer Alert-Trigger kommen Sie tatsächlichen Problemen schneller auf die Spur.

Implementierung von Logs in Context

So implementieren Sie die New Relic Logs in Context in Ihrer Umgebung:

  1. Richten Sie Logs in Context für APM oder Infrastruktur-Monitoring ein. Zur Weiterleitung Ihrer Logdaten an New Relic stehen Ihnen mehrere Optionen zur Wahl.
     
  2. Vergewissern Sie sich, dass Sie Logs in Context mit dem zu Ihrer Anwendungssprache passenden APM Agent implementieren, denn für jeden Agent sind unterschiedliche Schritte zu befolgen: 
  1. Wählen Sie im Navigationsbereich von New Relic die Option Logs aus, um die Logdaten für Ihre gesamte Plattform zu erkunden.
     
  2. Sehen Sie sich die anderen Stellen in New Relic an, von denen Sie auf Ihre Logs zugreifen können, um die Log-Inhalte direkt mit der Anwendungs-Performance zu korrelieren.
     
  3. Richten Sie Alerts ein.
     
  4. Um Ihre Logdaten in New Relic voll auszuschöpfen, erstellen Sie am besten auch Datenabfragen und Dashboards.

Weitere Best Practices und Hinweise zum Log-Management finden Sie hier. Sie benötigen Troubleshooting-Tipps speziell für Logs in Context? Sehen Sie sich im New Relic Community-Forum um.

Fazit

In diesem Blog-Post wurde beschrieben, inwieweit Logs in Context Ihnen die Fehlerbehebung erleichtern und Ihr Log-Management, Ihre Alerts, Ihre Incident Response und die Zusammenarbeit insgesamt verbessern können.

Wir haben Ihnen ein paar Use Cases für New Relic Logs in Context vorgestellt und Sie wissen jetzt, wie Sie das kontextbezogene Logging mit Ihren eigenen Daten implementieren können.