Benutzer-Werkzeuge

Webseiten-Werkzeuge


howto:debug

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howto:debug [2013/03/29 16:59] – [Skizze] udo1howto:debug [2022/04/21 19:54] (aktuell) – vzlogger Ort Logfile, Kontrolle Status, Exit-Code jau
Zeile 1: Zeile 1:
-===== Fehlersuche =====+====== Fehlersuche ======
  
-Hier entsteht ein Leitfaden zur Fehlersuche in volkszaehler-Installationen. +===== Prinzipielles =====
- +
-==== Allgemein ==== +
-Zunaechst mal ein paar allgemeine Hinweise:+
 <note> <note>
-Die Daten nehmen vom Zaehler zum Frontend einen klaren Weg durch das System.\\ +Daten nehmen bei Volkszähler einen klar definierten Weg durch das System. Dieser führt vom Zähler über Lesekopf, vzlogger und Middleware zum Frontend. \\ 
-Wenn irgendwo am Ende nichts, oder nicht das Erwartete ankommt, nicht verzweifeln,\\ + 
-sondern den Weg der Daten verfolgen, dann findet man ganz automatisch die Stelle, wo sie haengen bleiben.+Wenn irgendwo am Ende nichts, oder nicht das Erwartete ankommt, gilt es den Weg der Daten zurück zu verfolgen und die Stelle zu finden ab der das Verhalten unerwartet ist. \\ 
 + 
 +Fehlersuche ist ein strukturierter Prozess- kein Rätselraten!
 </note> </note>
  
-==== Skizze ==== 
  
-Verlauf, erstmal fuer einen Zaehler mit infrarot-schnittstelle.+===== Schrittweise Fehlersuche =====
  
-  * Zaehler +Verlauf in Reihenfolge der Daten am Beispiel eines Zählers mit Infrarotschnittstelle. 
-    * werden Daten gesendet (Digitalkamera, vorher mit Fernbedienung testen ob diese IR-Impulse sichtbar machen kann )+ 
 +  * Zähler 
 +    * werden Daten überhaupt gesendet (Digitalkamera, vorher mit Fernbedienung testen ob diese IR-Impulse sichtbar machen kann)
   * IR-Kopf   * IR-Kopf
-    * werden Daten empfangen (Einfacher Test: IR-Kopf 1-2 cm ueber eine weiße Fläche halten, mit HTerm Daten senden, diese sollten sofort wieder empfangen werden)+    * werden Daten empfangen (Einfacher Test: IR-Kopf 1-2 cm über eine weiße Fläche halten, mit HTerm Daten senden, diese sollten sofort wieder empfangen werden da reflektiert)
   * serielle Schnittstelle   * serielle Schnittstelle
     * werden Daten empfangen (Terminal-Programm)     * werden Daten empfangen (Terminal-Programm)
-    * sind die Daten gueltige Daten fuer ein bekanntes Protokoll? +    * sind die Daten gültige Daten für ein bekanntes Protokoll? 
-      * Port-Parameter korrekt? Baudrate, Frameformat. +      * Port-Parameter korrekt? Baudrate, Frameformat (SML, Binär, beginnt mit ''1b1b1b1b'') (D0, Ascii-Text mit Obis-IDs). 
-      * (SML, Binaer, beginnt mit 1b1b1b1b) (D0, Ascii-Text mit Obis-IDs)+      * Braucht der Zähler evtl. einen Stubs um Daten zu senden (pullseq)? 
 +      * Im Wiki nach Zähler und Konfiguration recherchieren.
   * vzlogger   * vzlogger
-    * laeuft er ueberhaupt, oder stuerzt er wegen Bugs ab? (am besten erstmal mit -f starten) +    * welche Version ist installiert (''vzlogger -V'') 
-    * werden Daten empfangen (leider mit strace, debug-ausgabe fehlt momentan)+    * läuft er überhaupt (z.B. mit ''systemctl status vzlogger'' oder ''top'' oder ''ps aux | grep vzlogger'' überprüfen), welcher [[software:controller:vzlogger#exit-codes|Exit-Code]] wird ausgegeben? 
 +    * ist die Konfiguration korrekt (''/etc/vzlogger.conf'') 
 +    * sind- im Fall von SML Zählern- die Identifier korrekt (z.B. "1-0:1.8.0" und nicht "1-0:1.8.255*255") 
 +    * stimmen die UUID von Frondend und vzlogger.conf überein? 
 +    * was steht im logfile (''/var/log/vzlogger/vzlogger.log'', bei älteren Images ''/var/log/vzlogger.log'' bzw. ''/tmp/vzlogger.log'') 
 +    * ist das Logging überhaupt eingeschaltet (''"verbosity": 15'' für die Fehlersuche)
     * werden die Daten korrekt dekodiert? ("Got <n> new readings from meter")     * werden die Daten korrekt dekodiert? ("Got <n> new readings from meter")
-    * werden die Werte Kanaelen zugeordnet? ("Reading: id=... value=... ts=...") +    * werden die Werte Kanälen zugeordnet? ("Reading: id=... value=... ts=...") 
-    * werden die Werte zur middleware gesendet? ("CURL: *") +    * werden die Werte zur middleware gesendet? ("CURL: *" im logfile) 
-    * sind die requests korrekt? (leider server-log, strace oder tcpdump, debug-ausgabe fehlt momentan) +  * Middleware 
-  * middleware +    * welche Version ist installiert (''git log -n 1'' im Ordner ''/var/www/volkszaehler.org'' ausführen) 
-    * werden requests ueberhaupt verarbeitet? (Eingabe und Ausgabe! [[/software/middleware/einrichtung#testen]]) +    * kommen die Requests an (Webserver access_log) 
-    * kommen die requests an (webserver access_log) +    * werden die Werte in die Datenbank geschrieben (MySQL-Client) 
-    * werden die werte in die datenbank geschrieben (mysql-client)? +  * Frontend 
-    * werden die daten ausgegeben? +    * ist die richtige UUID ausgewählt (gleiche UUID wie in der vzlogger.conf) 
-  * frontend +    * ist der Kanal richtig konfiguriert (Typ und Auflösung) 
-    * werden korrekte requests an die middleware gestellt und korrekt beantwortet? (firebug, 'network' tab) {{:howto:webconsole.png?linkonly|}}+    * werden überhaupt Daten angezeigt 
 +    * welche Requests werden an die middleware gestellt und wie sieht die JSON Antwort aus? (firebug, 'network' tab) 
 +    * gibt es Fehlermeldungen im Webserver Log? (''tail -f /var/log/apache2/error.log'') {{ :howto:webconsole.png?linkonly|}} 
 +    * werden korrekte Daten angezeigt 
 +    * wenn Daten inkorrekt angezeigt werden: wie sehen die Rohdaten aus (gleiche URL wie zur Abfrage der Daten mit &options=raw angehängt) 
 + 
 + 
 +===== Weitere Hilfe ===== 
 + 
 +Wenn das alles nicht hilft bitte eine konkrete Fehlermeldung an die [[/contact#mailing-listen|User Mailingliste]] schicken oder im [[/contact#foren|Forum]] posten (statt "hilfe! es funktioniet nicht!" bitte Betreff wie zB.: "Middleware schreibt nichts in die Datenbank"). 
 + 
 +Folgende Angaben sind für die weitere Unterstützung Pflicht:
  
 +  * Zählertyp
 +  * Plattform (welche Hardware (Raspi? Version?), welche Software- offizielles VZ Image oder Selbstbau)
 +  * vzlogger Version
 +  * ''vzlogger.conf''
 +  * ''vzlogger.log'' mit höchstem Loglevel ''"verbosity": 15''
 +  * Middleware/ Frontend Version (''git log -n 1'' im Ordner ''/var/www/volkszaehler.org'')
  
-==== Weiter... ====+Im Fall von Crashes, v.a. des vzloggers, bitte auch folgende Informationen ergänzen:
  
-Idealerweise solltet ihr (irgendwann einmal) anhand dieses Leitfadens jegliche Probleme selber loesen koennen.+  * wann/wie wurden die letzten Updates gefahren 
 +  * was ist alles (am Raspi) angeschlossen, v.a. welche Erweiterungen, wie erfolgt die Stromversorgung (wieviel Ampere) 
 +  * wie sieht die ''rc.local'' aus
  
-Solange das nicht der Fall ist, geht bitte trotzdem die Liste durch, um den Fehler moeglichst weit einzugrenzen, 
-und bittet dann zu zu dem konkreten Problem (statt "hilfe! es funktioniet nicht!" dann zB.: "middleware schreibt nichts in die datenbank") um hilfe: [[/contact]] 
howto/debug.1364572773.txt.gz · Zuletzt geändert: von udo1