Was sind gute Möglichkeiten, einen Live-Shop zu überwachen?

41

Vorwort: Wir möchten die Überwachung eines unserer Webshops ausweiten, da der Anbieter Probleme mit der PHP-Konfiguration hatte und Teile des Live-Webshops abgestürzt sind (Backend & Checkout funktionieren nicht). Ich möchte hier nicht über den Wechsel zu einem anderen Anbieter sprechen.

Da wir jetzt über Möglichkeiten nachdenken, den Webshop selbst und die Verfügbarkeit bestimmter Teile (wie "Funktioniert die Kasse?") Zu überwachen, lautet die Frage:

Welche Tools und Strategien schlagen Sie vor, um eine Live-Website zu überwachen?

Einige Ideen:

  • Prüfen Sie automatisch, ob der Checkout noch auf einer Live-Website funktioniert?
  • Welche Parameter sollten überwacht werden, um Fehler zu erkennen? Letzte Bestellung vor <1 Tag, letzte Benutzeranmeldung, ...
  • Verwenden von Cronjobs: Zum Beispiel nach dem Datum und der Uhrzeit der letzten Bestellung suchen und wenn es zu lange her ist, eine E-Mail senden und / oder manuell prüfen, ob die Kaufabwicklung noch funktioniert?
  • Mit Software / Tools wie Icinga, Uptime Robot, ...
  • Versenden von Warn-E-Mails an Administratoren, ...

Freue mich auf eure Antworten :)

Anna Völkl
quelle
1
Auch wenn dies ein bisschen "meinungsbasiert" aussieht, bin ich sehr gespannt auf ein paar Antworten :).
Marius
Danke @Marius, ich weiß, es ist irgendwie subjektiv, aber es könnte trotzdem interessant sein zu teilen :)
Anna Völkl
Tolle Frage, ich habe mich das Gleiche gefragt! Vielen Dank!
Wessel

Antworten:

30

Es gibt ein paar Dinge, die Sie automatisieren könnten.

  1. Wenn Teile des Shops nicht mehr funktionieren Mit Unit-Tests können Sie feststellen, ob bestimmte Funktionen noch funktionieren.
  2. Um das Frontend zu testen, benutze ich phpQuery auf einem entfernten Server, um regelmäßig nach bestimmten DOM - Elementen auf bestimmten Schlüsselseiten zu suchen, wie " Sind noch Produkte in der Kategorieliste", "Gibt es eine Fußzeile * auf der Homepage" usw
  3. Richten Sie einen einfachen Cronjob ein, der Ihren Host anpingt, um festzustellen, ob er noch verfügbar ist
  4. Verwenden Sie den nativen Magento-Bestell-RSS-Feed, um zu prüfen, ob noch Bestellungen eingehen. In stark frequentierten Geschäften ist eine Bestellung von einer Stunde an einem Freitagabend ein guter Indikator dafür, dass etwas nicht in Ordnung ist :)
  5. Überwachen Sie Ihren Zahlungsdienstleister. In den Niederlanden verwenden wir iDeal zur Abwicklung von Zahlungen. Auf dieser Website wird die Verfügbarkeit angezeigt. Möglicherweise bietet Ihre PSP einen ähnlichen Dienst an

* wenn es keine Fußzeile auf einer Seite gibt, die auf einen PHP-Fehler hinweisen könnte, der das Rendern anhält.

Dies sind einige Lösungen, die wir verwenden. Sie brauchen nur etwas Einrichtungszeit und können frei ausgeführt werden.

Tolle Frage übrigens, ich freue mich sehr auf alle Antworten!

Sander Mangel
quelle
25

Ich werde auf Sanders fantastische Antwort im Folgenden eingehen. Dabei wird davon ausgegangen, dass Sie einen Überwachungsdienst wie Pingdom * eingerichtet und verwendet haben:

  • Achten Sie auf den Inhalt der Seite. in der Regel das schließende </html>Tag. Ich habe gesehen, dass so viele before_body_endSkripte mit Drittanbietern fehlgeschlagen sind (nicht erfasste Ausnahmen usw.), die für Endbenutzer unsichtbar sind, aber den Status 500 zurückgeben - sehr schlecht für SEO / Google / Webmaster-Tools
  • Richten Sie die Webmaster-Tools ein, um Sie zu benachrichtigen, wenn Fehler einen bestimmten Schwellenwert überschreiten
  • Richten Sie auf der Seite Warnungen für ungültiges SSL ein
  • Richten Sie Warnungen für Javascript-Fehler auf der Seite ein
  • Verwenden Sie email groups / bcc für die Zahlung fehlgeschlagener Emails und für Fehlermeldungen.
  • Setzen Sie sich mit Ihren Call-Center-Mitarbeitern in Verbindung und vergewissern Sie sich, dass sie wissen, wie man Probleme mit Screenshots überprüft. In der Regel sind sie die Ersten, die darauf hinweisen, wenn Probleme auftreten.
  • Eine langsame Site ist genauso schlecht wie eine nicht funktionierende Site. Vergewissern Sie sich, dass Ihre Warnungen sensibel sind, wenn das Laden Ihrer Website länger dauert als gewöhnlich.
  • Abonnieren Sie Twitter-Feeds für alle wichtigen Drittanbieter- / gehosteten Dienste. Größere Hosts haben normalerweise Twitter-Trigger, wenn es Probleme gibt. Sie können Twitter so konfigurieren, dass E-Mails / SMS gesendet werden, wenn bestimmte Konten Beiträge verfassen.

Devops:

  • Richten Sie Nagios zur Überwachung kritischer Systeme und zum Senden von Warnungen ein
  • Richten Sie ein Syslog oder einen Splunk ein (bis zu einer bestimmten Anzahl von Abfragen pro Tag kostenlos), um Protokolle zu aggregieren und Warnungen basierend auf Protokolldaten auszugeben
  • Konfigurieren Sie eine skriptgesteuerte Routineüberprüfung Ihrer Netzwerkgeräte. Ich habe gesehen, dass (bei mehr als einer Gelegenheit) NICs ohne unser Wissen von 1 GB auf 10 MB zurückgingen.

Für größere Teams:

  • Richten Sie einen CI-Server (Travis, Jenkins / Hudson, Capistrano) ein, um Sie vor möglichen fehlgeschlagenen Tests nach einem Commit zu warnen.
  • Richten Sie in Ihrer Quellcodeverwaltung Pre-Commit-Hooks ein, um Codestandards durchzusetzen oder auf offensichtliche Probleme wie fehlerhaften Code zu prüfen
  • Wie Sander sagte, richten Sie etwas ein, um die RSS-Feeds auf Bestellungen und Volumen nach Tageszeit zu überwachen - ein Vorteil ist, dass sie nicht zwischengespeichert sind. Wenn Sie den Benachrichtigungsschwellenwert niedrig genug einstellen, wird dies in der Regel sofort durch ein potenzielles Problem ausgelöst
  • Verwenden Sie Selen. VIEL. Lassen Sie Tests mit Skripten erstellen, die alle ein oder zwei Stunden durch den Checkout-Prozess laufen.
  • Richten Sie Kalendererinnerungen und bestimmte Warnungen für den SSL-Ablauf ein

Sie werden eine Menge Daten und potenziell falsche Positive generieren. Werden Sie nicht immun gegen Warnungen.


Ich bin nicht mit Pingdom verbunden. Ich liebe einfach ihr (kostenloses) Produkt.

Philwinkle
quelle
8

Wenn Sie nur Probleme mit Ihrem Hoster und nicht mit der Bezahlung haben, können Sie überlegen, ob Sie ein verstecktes Produkt einrichten, einen Selentest schreiben, es in den Warenkorb legen, einen Gutschein hinzufügen, um es kostenlos zu machen und dann die Kasse durchlaufen.

Fabian Blechschmidt
quelle
1
schön, ich mag die versteckte kostenlose Produktidee :-)
Anna Völkl
5

Abhängig von Ihrem Setup gibt es hier bereits einige gute Antworten. Ich verwende NewRelic, um Server- und Transaktionsstatistiken zu überwachen und wichtige Transaktionen für jeden Schritt des Checkout-Prozesses einzurichten. Auf diese Weise kann ich auf einem einzelnen Bildschirm meines Telefons feststellen, ob der gesamte Prozess noch von einer angemessenen Anzahl von Personen ausgecheckt wird und ob sie angemessene Antwortzeiten erhalten. Wenn ich eine Menge Durchsatz bis zum letzten Schritt sehe, weiß ich, dass PayPal wahrscheinlich kaputt ist, da niemand in der Lage ist, ihre Karten zu verarbeiten. Ich erhalte auch Warnungen, wenn es viele Fehler gibt, die Antwortzeiten aus sind usw. Sie benötigen dazu nicht unbedingt NewRelic, aber es ist sehr einfach und schnell einzurichten und ich hatte keine Zeit zum Erstellen Mein eigenes Dashboard / App / Alarmierungssystem.

ddavidn
quelle
1
Ich bin mit Ihnen einverstanden, dass NewRelic wie ein Zauber wirkt. Ich möchte auch hinzufügen, dass die Verwendung eines Dienstes wie Pingdom eine gute Option für die Überwachung der Server-Zugänglichkeit ist.
Eirik
5

Ich mag NewRelic und PagerDuty, sie sind einfach perfekt und benachrichtigen Sie (E-Mail, Text und Anruf) in einer Minute, wenn Ihre Website oder ein Teil Ihrer Website inaktiv ist. Es wird sogar benachrichtigt, wenn Ihre CPU oder Ihr Arbeitsspeicher den angegebenen Prozentsatz der Nutzung überschreitet und die Site nicht mehr reagiert.

  • Richten Sie New Relic mit allen Seiten ein, die Sie überwachen möchten, und überwachen Sie die Häufigkeit. Beispiel: Homepage, 1 beliebige Kategorieseite, 1 beliebige Produktseite, Warenkorbseite, Checkout-Seite usw.
  • Fügen Sie Benutzer (die alle Benachrichtigungen erhalten), Zeitpläne (Tag und Uhrzeit, an denen Sie Benachrichtigungen erhalten möchten), Dienste (New Relic-Benachrichtigungen) und Eskalationsrichtlinien zu PagerDuty-Benachrichtigungen und gewünschten Benachrichtigungstypen (E-Mail, Text, Anruf) hinzu.

https://www.pagerduty.com/docs/guides/new-relic-integration-guide/

Haftungsausschluss: Ich bin mit keinem der oben genannten Dienste verbunden.

Kalpesh
quelle
3
  • Munin auf Anbieterseite, um Verlaufswerte für alle Server (LB, App, DB, Redis usw.) und alle Dienste (Speicher, Laden, io usw.) abzurufen
  • Nagios / Icinga on auf Provider- oder lokaler Seite für nahezu Live-Überwachung der Auslastung aller Server
  • Pingdom, um Antwortzeiten für "wichtige" URLs wie Startseite, Kasse usw. zu sammeln.
  • Pingdom für echte Benutzerüberwachung, erhalten Sie einen ähnlichen Wert wie APDEX und sehen die historische Entwicklung
  • Pingdom um URLs und deren korrekten Inhalt zu überprüfen
  • Berichterstellung mit den letzten X Bestellungen im Auto-Reload-Modus. Damit sehe ich mögliche Pausen
  • Automatisierte Tests mit Selen auf einem identischen Bühnensystem. Ich bin kein Freund von automatisierten Kassen auf meinem Live-System. Sie werden später Probleme mit Ihrer Buchhaltung bekommen :)
  • Zapier und Twilio für Email2SMS. Kritische Fehler werden als SMS an ein Telefon gesendet
  • freeboard.io und dweet.io, um alles auf einem schönen Dashboard anzuzeigen.
waltavista
quelle