Der Blog

Uneinigkeit bei den Daten: Argumente für Warnmeldungen basierend auf dem, was Sie sehen

von Vivian Au 21. August 2014 | 6 min Lesezeit

Gastbeitrag von Dave Josephsen, Entwickler-Evangelist bei Waage . Librato bietet eine Komplettlösung zur Überwachung und zum Verständnis der Kennzahlen, die sich auf allen Ebenen Ihres Unternehmens auswirken.

Allen Überwachungssystemen liegt die Annahme zugrunde, dass es etwas gibt, das wir nicht vollständig kontrollieren können. Etwas, das wir geschaffen haben, wie ein Flugzeug, oder auch etwas, das einfach nur durch wundersame Biologie existiert, wie der menschliche Körper. Etwas, das perfekt wäre, wenn es nicht mit der schmutzigen, analogen Realität des Fleischraums interagieren würde; dem Spielplatz der Entropie und des Chaos, wo die beste Technik, die wir erreichen können, durch Alter, menschliches Versagen und Zufall irgendwann aus dem Ruder läuft.

Überwachen Sie, was Sie nicht kontrollieren können

Flugzeuge und Körper sind Systeme. Wir erwarten nicht nur, dass sie auf eine bestimmte Weise funktionieren, sondern wir haben auch klar definierte mentale Modelle, die ihre eigentlichen Betriebseigenschaften beschreiben – einfache Annahmen darüber, wie sie funktionieren sollten, die sich in messbare Werte umsetzen lassen, die es uns ermöglichen, diese Systeme als „gut“ oder „schlecht“ zu beschreiben. Flugzeugreifen sollten einen Druck von 60 PSI aushalten, menschliche Herzen sollten zwischen 40 und 100 Mal pro Minute schlagen. Der JDBC-Client sollte nie mehr als einen Pool von 150 DB-Verbindungen benötigen.

Das ist Warum Wir überwachen: um ein geschlossenes Feedback zu den Betriebseigenschaften von Systemen zu erhalten, die wir nicht vollständig kontrollieren können, um sicherzustellen, dass sie innerhalb der von uns erwarteten Grenzen arbeiten. Im Grunde ist Überwachung ein Signalverarbeitungsproblem, und daher sind alle Überwachungssysteme Signalverarbeitungssysteme. Einige Überwachungssysteme erfassen und generieren Signale auf der Grundlage realer Messungen, und andere sammeln und verarbeiten Signale, um beispielsweise Visualisierungen, die Erkennung abweichenden Verhaltens sowie Warn- und Benachrichtigungsfunktionen bereitzustellen.

Unten sehen Sie ein zugegebenermaßen stark vereinfachtes Diagramm, das die Funktionsweise von Überwachungssystemen für Dinge wie das menschliche Herz oder den Öldruck von Flugzeugen beschreibt (wobei natürlich die esoterischeren inneren Vorgänge des menschlichen Herzens außer Acht gelassen werden, die nicht überwacht werden können). Darin sehen wir Sensoren, die ein Signal erzeugen, das die verschiedenen Komponenten versorgt, die den menschlichen Bedienern operatives Feedback über das System geben.

signal_monitoring_notification

Allzu oft sehen wir jedoch beim Entwurf von IT-Überwachungssystemen ein Muster wie in der folgenden Abbildung: Es werden mehrere Sensoren eingesetzt, um für jede Komponente doppelte Signale zu erzeugen, die eine andere Art von Feedback generieren.

visualization_notification_monitoring

Es gibt viele Gründe, warum dieses Antimuster auftreten kann, aber die meisten davon laufen auf eine kognitive Dissonanz zwischen verschiedenen IT-Gruppen hinaus, wobei jede Gruppe glaubt, dass sie aus einem anderen Grund überwacht und daher unterschiedliche Analysetools benötigt. Die Betriebs- und Entwicklungsteams könnten beispielsweise glauben, dass die Überwachung von Betriebssystemmetriken sich grundlegend von der Überwachung von Anwendungsmetriken unterscheidet, und daher jeweils ihre eigene Suite von Überwachungstools implementieren, um die ihrer Meinung nach exklusiven Anforderungen zu erfüllen. Bei Betriebssystemmetriken könnte das Betriebsteam glauben, dass es Statusdaten mit Minutenauflösung benötigt, um Warnmeldungen auszugeben, während sich die Entwicklung auf Leistungsmetriken mit Sekundenauflösung konzentriert, um die Anwendungsleistung zu visualisieren.

In Wirklichkeit haben beide Teams dieselbe Anforderung: ein Telemetriesignal, das ein Closed-Loop-Feedback von den Systemen liefert, an denen sie interessiert sind. Da jedoch jedes Team eine andere Toolchain implementiert, um diese Anforderung zu erfüllen, erzeugen sie letztendlich redundante Signale, um unterschiedliche Tools zu versorgen.

Unterschiedliche Signale führen zu unvorhersehbaren Ergebnissen

Wenn unterschiedliche Datenquellen für Warnmeldungen und grafische Darstellungen verwendet werden, kann die eine oder andere Quelle falsche positive oder negative Ergebnisse erzeugen. Jede Quelle kann unter dem Deckmantel desselben Namens leicht unterschiedliche Metriken überwachen oder dieselbe Metrik auf leicht unterschiedliche Weise. Wenn ein Ingenieur mitten in der Nacht durch eine Warnung eines solchen Systems geweckt wird und das Visualisierungsfeedback nicht mit dem Ereignisbenachrichtigungsfeedback übereinstimmt, ist ein bereits prekär,   stressig Die verwirrende Situation wird noch schlimmer und es wird wertvolle Zeit mit der Überprüfung des einen oder anderen Überwachungssystems vergeudet.

Letztendlich ist es irrelevant, welche Quelle richtig war. Selbst wenn jemand erfolgreich die beträchtlichen forensischen Anstrengungen unternimmt, die erforderlich sind, um das herauszufinden, ist es unwahrscheinlich, dass in Zukunft eine sinnvolle Korrekturmaßnahme ergriffen werden kann, um das Verhalten der Quellen zu synchronisieren. Das unvermeidliche Ergebnis ist, dass Ingenieure beginnen werden, beide Überwachungssysteme zu ignorieren, weil keinem von beiden vertraut werden kann.

Bei der Behebung von Falschmeldungen, die durch unterschiedliche Datenquellen verursacht werden, geht es nicht darum, ein unzuverlässiges Überwachungssystem zu verbessern, sondern vielmehr darum, zwei unzuverlässige Überwachungssysteme in jedem Fall miteinander in Einklang zu bringen. Wenn wir bei demselben Patienten zwei verschiedene EKGs verwenden würden – eines zur Visualisierung und eines zur Benachrichtigung – und das Ergebnis unzuverlässig wäre, würden wir das System höchstwahrscheinlich so umgestalten, dass es mit einem gemeinsamen Signal arbeitet, und uns darauf konzentrieren, dieses Signal so genau wie möglich zu machen. Das heißt, der einfachste Weg, dieses Problem zu lösen, besteht darin, einfach Warnen Sie, was Sie sehen .

Synchronisieren Sie Ihre Alarmierung und Visualisierung auf ein gemeinsames Signal  

Um Warnmeldungen zu erhalten, müssen nicht alle in der Organisation dasselbe Überwachungstool verwenden, um die für sie interessanten Messdaten zu erfassen. Erforderlich ist lediglich, dass die Verarbeitungs- und Benachrichtigungssysteme ein gemeinsames Eingabesignal verwenden.
Die spezifischen Mittel, mit denen Sie eine Gemeinsamkeit der Eingangssignale erreichen, hängen von den Tools ab, die derzeit in Ihrem Unternehmen verwendet werden. Wenn Sie beispielsweise ein Nagios/Ganglia-Shop sind, können Sie Nagios so ändern, dass es auf von Ganglia erfasste Daten hinweist, anstatt einen Stream von Metrikdaten von Ganglia zur Visualisierung und ein anderes Signal von Nagios zur Benachrichtigung zu sammeln.

Waage und PagerDuty sind eine ausgezeichnete Wahl für die zentrale Verarbeitung der Telemetriesignale aller derzeit in Ihrem Unternehmen verwendeten Datensammler. Dank der schlüsselfertigen Integration in AWS und Heroku und der Unterstützung für fast 100 Open-Source-Überwachungstools, Log-Sinks, Instrumentierungsbibliotheken und Daemons ist es ein Kinderspiel, Ihre aktuellen Tools so zu konfigurieren, dass sie Metriken an Librato senden.

librato_pagerduty

Durch die Kombination von Librato und PagerDuty können alle Ingenieure aus jedem Team Ereignisse in Ihren Telemetriesignalen problemlos verarbeiten, visualisieren und korrelieren sowie Benachrichtigungen und Eskalationen senden, die garantiert die Daten in diesen Visualisierungen widerspiegeln. Ihre Ingenieure können die gewünschten Tools verwenden und gleichzeitig sicherstellen, dass die von diesen Tools gesendeten Signale verwendet werden können, um allen Mitarbeitern in der Organisation effektives und zeitnahes Feedback zu geben. Melden Sie sich für einen Kostenlose Testversion von Librato heute und erfahren Sie, wie Sie PagerDuty mit Librato integrieren .