NEWS
ioBroker Docker - InfluxDB Error bei hoher Disk I/O
-
Systemdata Bitte Ausfüllen Hardwaresystem: Synology Docker Arbeitsspeicher: 10GB Festplattenart: HDD Betriebssystem: Docker Nodejs-Version: v16.19.0 NPM-Version: 8.19.3 Installationsart: Docker Image genutzt: Ja Hallo zusammen,
auf meinem Synology NAS läuft ioBroker und InfluxDB in jeweils einem Docker Container.
Um 3 Uhr nachts starte ich ein Hyper Backup und sichere alle Daten auf ein zweites NAS inkl. der statischen Ordner die im Container gemountet sind.
In unregelmäßigen Abständen passiert es, dass nahezu zum Zeitpunkt des Starts der Sicherung der InfluxDB Adapter tausende Warnmeldungen nach folgendem Schema auswirft:2023-02-07 03:03:23.690 - [33mwarn[39m: influxdb.0 (9897) Point could not be written to database: iobdata 2023-02-07 03:03:23.696 - [33mwarn[39m: influxdb.0 (9897) Error on writePoint("{"value":394,"time":"2023-02-07T02:03:03.022Z","from":"system.adapter.javascript.0","q":0,"ack":true}): HttpError: unexpected error writing points to database: timeout / "unexpected error writing points to database: timeout"" 2023-02-07 03:03:23.696 - [32minfo[39m: influxdb.0 (9897) Add point that had error for javascript.0.Solar.Wechselrichter.Hausverbrauch to buffer again, error-count=1 2023-02-07 03:03:26.547 - [33mwarn[39m: influxdb.0 (9897) Point could not be written to database: iobdata 2023-02-07 03:03:26.547 - [33mwarn[39m: influxdb.0 (9897) Error on writePoint("{"value":-424,"time":"2023-02-07T02:03:07.962Z","from":"system.adapter.javascript.0","q":0,"ack":true}): HttpError: unexpected error writing points to database: timeout / "unexpected error writing points to database: timeout"" 2023-02-07 03:03:26.548 - [32minfo[39m: influxdb.0 (9897) Add point that had error for javascript.0.Solar.Wechselrichter.ACTotalRealPower to buffer again, error-count=1 2023-02-07 03:03:26.750 - [33mwarn[39m: influxdb.0 (9897) Point could not be written to database: iobdata 2023-02-07 03:03:26.751 - [33mwarn[39m: influxdb.0 (9897) Error on writePoint("{"value":-417,"time":"2023-02-07T02:03:06.741Z","from":"system.adapter.javascript.0","q":0,"ack":true}): HttpError: unexpected error writing points to database: timeout / "unexpected error writing points to database: timeout"" 2023-02-07 03:03:26.751 - [32minfo[39m: influxdb.0 (9897) Add point that had error for javascript.0.Solar.Wechselrichter.ACTotalRealPower to buffer again, error-count=2 2023-02-07 03:03:29.071 - [33mwarn[39m: influxdb.0 (9897) Point could not be written to database: iobdata
Das Log wird dann schnell geflutet und mehrere huntert Megabyte groß.
Starte ich den InfluxDB Adapter dann neu ist alles gut. Auch werden bis dahin (scheinbar) alle Werte weiterhin in die DB geschrieben.
Meine Suche im Internet hat Hinweise darauf ergeben, dass die hohe Disk I/O damit zusammenhängen könnte.
Nur, wie löse ich das Problem?
Hatte erst die Vermutung, dass sich die Ausführungszeiten von Backitup und Hyper Backup überschneiden. Das ist aber nicht der Fall.Habt ihr eine Idee?
Danke
Henri -
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Hallo zusammen,
auf meinem Synology NAS läuft ioBroker und InfluxDB in jeweils einem Docker Container.
Um 3 Uhr nachts starte ich ein Hyper Backup und sichere alle Daten auf ein zweites NAS inkl. der statischen Ordner die im Container gemountet sind.Habe ich so ähnlich , aber kein zweites NAS.
Ich kenne deine Grundeinstellungen in der Influx Instanz nicht ,
du könntest versuchen die Schreibaktionen zu sammelnsie werden dann zwischengespeichert und einmalig von Influx in der eingestellten Zeit versendet .
Nachteil , sollte etwas in der Zwischenspeicherung / Zeit passieren , sind die Daten weg .
Bedenke .. Hyper Backup braucht viel Leistung , habe daher die Zeiten ( mehere Regeln ) versetzt eingestellt .
-
Das gleiche Problem habe ich auch seit einiger Zeit, nur das bei mir alles in Proxmox LXC läuft. Ich hab keine Ahnung was, aber irgendetwas muß sich vor 1-2 Wochen geändert haben, weshalb plötzlich auch bei mir die Warnungen auftauchen, wenn der influxDB LXC gesichert wird. Bei mir laufen die Backups auf einen PBS auf, der auf eigener Hardware basiert. Die influxDB wird bei mir auf Grund der Daten stündlich gesichert.
3 Tage lang habe per Learning by doing einen neuen Container mit neuen Ubuntu aufgesetzt und dort dann influxDB mit Datenübernahme neu eingerichtet. Ich dachte, da sind irgendwo Defekte durch die ganzen Updates und Upgrades entstanden, die jetzt stören. Leider hat es nicht gefruchtet.
Es hat jahrelang funktioniert und jetzt wird plötzlich durch das Backup die Kommunikation gestört? Interessant ist, dass trotz des Logflootings die Daten wohl geschrieben werden, denn Grafana zeigt keine fehlenden Stellen.
Meine Lösungsversuche, inkl. des neu Aufsetzens des LXC, Neustart des kompletten PVE, Neustart des PBS, iobroker neu... Jetzt fällt mir nix mehr ein, außer die Backup-Frequenz erstmal hochzusetzen, was dann aber zu größeren Datenverlust führen könnte. Während des Backup Vorgangs ist die Systemlast aber kaum der Rede wert, nur das Netzwerk wird natürlich ausgelastet und da scheint wohl ein Problem zu liegen.
-
@glasfaser sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Habe ich so ähnlich , aber kein zweites NAS.
Ich kenne deine Grundeinstellungen in der Influx Instanz nicht ,
Was genau muss ich wo nachschauen? Ich hab die InfluxDB Konfiguration nicht verändert seit der Installation.
sie werden dann zwischengespeichert und einmalig von Influx in der eingestellten Zeit versendet .
Nachteil , sollte etwas in der Zwischenspeicherung / Zeit passieren , sind die Daten weg .Hmm, ok. Das könnte dann die Dauer der Übertragung verringern. Nur kann ich das ja nicht wirklich zeitgenau machen. Wenn dieser Puffer dann voll ist, wenn das Hyper Backup läuft, dann gibts doch wieder Probleme.
Bedenke .. Hyper Backup braucht viel Leistung , habe daher die Zeiten ( mehere Regeln ) versetzt eingestellt .
Naja, und auch hier ist es doch egal was genau gesichert wird. Die Disk I/O ist da, ob ich nun /docker oder was anderes sichere.
Kann man ioBroker nicht während der Sicherung einfach mal anhalten und danach wieder starten? Das würde dann auch den täglichen Neustart um 5 Uhr obsolet machen. Nur weiß ich nicht, ob ich dem Hyper Backup Scriptbefehle mitgeben kann. -
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Kann man ioBroker nicht während der Sicherung einfach mal anhalten und danach wieder starten?
Das geht nicht ... bzw. ist auch nicht im sinne des Erfinders
Das würde dann auch den täglichen Neustart um 5 Uhr obsolet machen.
ioBroker braucht man nicht täglich neustarten , aber warum sollte man das machen !?
-
Moin,
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Meine Suche im Internet hat Hinweise darauf ergeben, dass die hohe Disk I/O damit zusammenhängen könnte.
Hat Du das bei Dir verifiziert? Hast Du ein Monitoring oder Daten die das belegen?
Nur, wie löse ich das Problem?
- Disk IO kannst Du durch einen Cache (SSD) verbessern
- welches Raid nutzt Du?
- kannst Du die Platten so aufteilen, das das Schreiben der
influxDB
von anderen getrennt ist?
Auf der
influxDB
Seite um welche handelt es sich?- für
influxDB V. 2.x
kannst Du ein InfluxDB Monitoring einrichten um zu schauen ob Du Performance Probleme hast.
Dann habe ich da noch einen Schalter, der falls da etwas im Argen liegt genutzt werden kann
--storage-write-timeout
Wie zu benutzen steht unter Storage Time Out
VG
Bernd -
@dp20eic
Ahhh, jetzt bekam ich mal wieder beim Antworten "Forbidden" und hab aus versehen den Zwischenspeicher mit meiner umfangreichen Antwort gelöscht. Wie ich das hasse
Ok, in Kurzfassung:- Hab ein DS220+ mit HDDs, da geht kein SSD Cache (leider
- Das Template hab ich mal installiert
- den Rest sehen wir morgen früh, bin dann aber erstmal bis Sonntag im Kurzurlaub
-
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Ahhh, jetzt bekam ich mal wieder beim Antworten "Forbidden"
F5 drücken, dann geht's weiter.
-
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
- Das Template hab ich mal installiert
- den Rest sehen wir morgen früh, bin dann aber erstmal bis Sonntag im Kurzurlaub
Ok, scheinbar war ich zu doof, das Dashboard zum Laufen zu bekommen. Das zeigt nichts an. Das Problem ist aber seit dem letzten Mal nicht wieder aufgetreten.
-
@dp20eic sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Dann habe ich da noch einen Schalter, der falls da etwas im Argen liegt genutzt werden kann
--storage-write-timeout
Wie zu benutzen steht unter [Storage Time Out](https://docs.influxdata.com/influxdb/v2.6/reference/config-options/)
Moin Bernd,
nachdem ich ja das Dashboar nicht zum Laufen bekommen habe, gabs vorgestern und heute wieder Probleme.
Das Default Timeout des Clients scheint bei 10s zu liegen. Ich hab das jetzt mal auf 20s hochgesetzt und beobachte weiterhin.
Für alle die es interesiert, im Docker muss man das als ENV Variable mitgeben. Im Synology ist das so:- Container stoppen
- Container bearbeiten und unter Erweiterte Einstellungen eine Varianble hinzufügen
Grüße
Henri -
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
nachdem ich ja das Dashboar nicht zum Laufen bekommen habe
Moin,
ich schaue mal, kann nicht sagen, ob es heute klappt, aber dann Beschreibe ich mal mit meinen Worten wie man das einrichtet.
VG
Bernd -
@dp20eic
Hallo Bernd,
dann kann ich ja schon mal kurz berichten, was ich bisher da so gemacht habe.
- Hab ich das bzw. die Dashboards von hier und hier runtergeladen
- Das InfluxDB Template habe ich importiert und es wurde ein neues Bucket oss_metrics hinzugefügt
- dann hab ich geprüft, ob das Sammeln von Metriken überhaupt erlaubt ist (ist standardmäßig EIN und ich hab nichts verändert)
- dann hab ich einen Scraper erstellt und testweise die URL aufgerufen
-
auf der /metrics Seite bekomme ich jede Menge Input, also muss das gehen (nehme ich an)
-
Wenn ich im Bucket oss_metrics nachschaue, sind da aber keine Infos drin
Und das ist halt dann das Ergebnis
Da hänge ich gerade
-
Moin,
Du bist ja auf dem richtigen weg, eines hast Du aber nicht gemacht, oder ich hab es überlesen.
auf dem Rechner, auf dem du die Metricen sammeln willst, musst Du dir
telegraf
installieren. Nach dem Installieren des Templates in der InfluxDB kann dann eine Konfiguration für telegraf erstellt werden, dann brauchst du noch ein Token und du kannst es dann von der Kommandozeile ausführen.Ich habe nur gerade keine Zeit das genauer zu beschreiben, hier ist es kurz beschrieben.
VG
BerndP.S.: das was Du unter
http://ip-influxdb-server:8086/metrics
bekommst das ist das wasinfluxDb
von sich aus mitteilt, genau diese Daten nimmt danntelegraf
und bereitet sie Auf und schreibt sie in dasoss_metrics
Bucket.
Theoretisch könntest Du mehrereinfluxDb
Server betreiben und in jedem eintelegraf
laufen lassen und dann allen Output nur zu einerinfluxDB
schicken um alle Metriken an einem Platz zu haben.Ich nutze
telegraf
auf jedem meiner LXC Container um mir die CPU, Mem, usw. Metriken an eineinfluxDB
zu schicken um dann alles mit Grafana zu Visualisieren. -
@dp20eic sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
@hennerich
Du bist ja auf dem richtigen weg, eines hast Du aber nicht gemacht, oder ich hab es überlesen.
auf dem Rechner, auf dem du die Metricen sammeln willst, musst Du dirtelegraf
installieren.Hey Bernd,
irgendwie hatte ich es geahnt. Wozu brauche ich denn Telegraph wenn ich doch Grafana habe? Und außerdem streube ich mich ehrlich gesagt, irgendwas am Container rumzufummeln, wenn das beim nächsten Depolyment alles wieder weg ist.
Und nein, ich hab keine Ahnung von Containern und kann nicht mal eben meinen eigenen InflucDB Container inkl. Telegraph bauen.Viele Grüße
Henri -
Moin,
oh, da habe ich wohl nicht gelesen oder hab es vergessen, das Du mit Docker unterwegs bist, dann verstell da lieber nicht so viel dran
Zu
telegraf
das ist ein Datensammler, der mittels Konfiguration, echt viel ermitteln kann und das dann in eineinfluxDb
schreibt, diese Daten können dann erst mittels Grafana ausgewertet werden.
Wie man das in einen Docker bekommt, ohne angst vor einen neuen Deploy des Docker Containers zu haben, könnte ich Dir sagen, aber konzentrieren wir uns erstmal auf das ursächliche ProblemIst eigentlich für größere Installationen, die überwacht werden müssen, da ich beruflich damit zu tun hatte, habe ich das auch hier Zuhause getan
Die Metriken sind ja auch nur ein Sahnehäubchen, hoffe, das Du mit dem geändertenWrite
zum Erfolg kommst.VG
Bernd -
@dp20eic
Moin Bernd,nachdem nun auch mit meiner Erhöhung des Timeouts auf 20s den vierten Tag in Folge das Problem aufgetreten ist, muss ich hier was tun.
Ich hab mir überlegt, dass für eine temporäre Analyse eine Telegraf Installation im bestehenden InfluxDB Container sinnvoll wäre. So lange lasse ich eben den modifizierten Container laufen.
Muss ich dazu einfach nur über den Paketmanager Telegraf installieren oder was muss ich beachten?Grüße
Henri -
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Muss ich dazu einfach nur über den Paketmanager Telegraf installieren oder was muss ich beachten?
Moin,
erst müssen wir mal schauen, wie Du unterwegs bist.
1.) Du nutzt Docker!
1.1) Du hast füriobroker
,influxdb
,grafana
eigene Container.
1.2) Fehler im Netzwerk können ausgeschlossen werden.
1.3) Wie ist das Netzwerk auf der Syno eingestellt.
1.4) Noch mal die Fehler aus den Logsiobroker
und auch vominfluxdb - Docker
<- sollte unter/var/log/influxirgend_was
liegen.2.) gib mir etwas Zeit, da sich meine Syno gerade updatet, ich baue mir
influxDB
,telegraf
mal auf um die schritte nachzuvollziehen.Ich habe noch mal etwas in den alten Beiträgen im Netz nachgeschaut, manche sind von 10s default auf 60s gegangen, ist aber auch sicherlich nur ein Workaround.
VG
Bernd -
@hennerich sagte in ioBroker Docker - InfluxDB Error bei hoher Disk I/O:
Muss ich dazu einfach nur über den Paketmanager Telegraf installieren oder was muss ich beachten?
Moin,
ich habe die Zeit genutzt und etwas Grundlagenforschung betrieben, die Sache ist einfacher als gedachtDu brauchst keine zusätzliche Software, das geht alles
out of the box
mitinfluxDB V2.6
.In diesem influxDB_Metriken_Teil1.pdf Dokument habe ich beschrieben, wie man das bei einer Erstinstallation gleich mit macht.
Da Du oder auch anderer, ja meistens schon eine fertige
influxDB
Installation haben, ist der Weg aber auch nicht so schwer.
Hier influxDB_Metriken_Teil2.pdfDashboard influxdb_2.0_oss_metrics.json
Variable bucket.jsonVG
BerndEDIT: 2023-02-23
ich habe dieMarkdown
Dateien gegen PDFs ausgetauscht. Und das Dashboard und Variablen *.json an gehangen. -
@dp20eic
Danke Bernd, das schaue ich mir an. Melde mich.
Heute gabs das Problem übrigens nicht.[edit sagt]
Du hast eine *.md Doku gemacht. Es ist sicherlich beabsichtigt, dass dort deine Bilder nicht zu sehen sind? Hab die Files mit notepad++ aufgemacht. -
Moin,
ja, ich schreibe viel inMarkdown
ist schneller als wenn ich irgend ein Office nutze und mir reicht das an Funktionalität aus.
Such mal für dein Betriebssystem einMarkdown
Reader, ich habe für die Anleitung ghostwriter genutzt, ob das z.B. auch unter Win gut läuft, kann ich nicht sagen, nutze nur Linux.VG
BerndEdit:
Ich mach noch mal, da ich die Bilder nicht eingepackt habe, man sollte halt mal mit einem anderen Rechner kontrollieren