Skip to content

InfluxDB Fehlermeldung no leader

Seit ein paar Tagen beschäftige ich mich intensiver mit Time Series Databases. Also Datenbanken die speziell dafür entwickelt wurden um Zeitreihen zu speichern. Einer der Kandidaten, die ich ausprobiere ist InfluxDB. Leider funktioniert weder das aktuelle Stable noch Nightly build vom Scratch.

Der Markt der Time Series Datenbank ist aktuell noch sehr überschaubar. Aus diesem Grund stellt sich für mich seit einiger Zeit die Frage, ob ich die benötigten Funktionen selbst implementiere oder auf eine vorhandene Lösung zurückgreife. In die engere Auswahl für den Test sind eigentlich nur prometheus.io und InfluxDB gekommen. Diese haben eine REST API um Daten anzulegen und am wichtigsten: sie benötigen keine Subsysteme wie Cassandra oder HBase.
Die aktuelle stable Version von InfluxDB ist 0.9.2 und zwischen den Minor Releases 0.8 und 0.9 gab es massive Änderungen. Leider lässt sich diese Version nicht so einfach installieren und testen wie es in der Dokumentation beschrieben steht.
Nach der Installation lässt sich InfluxDB problemlos starten, aber beim Versuch eine Datenbank anzulegen erscheint die Meldung

curl -G "http://localhost:8086/query" --data-urlencode "q=CREATE DATABASE mydb"
{"results":[{"error":"no leader"}]}

In der Log Datei /var/log/influxdb/influxd.log befinden sich nach dem starten des Services Informationen wie

[metastore] 2015/07/28 16:53:28 [INFO] raft: Node at 127.0.0.1:8088 [Candidate] entering Candidate state
[metastore] 2015/07/28 16:53:28 [DEBUG] raft: Votes needed: 1
[metastore] 2015/07/28 16:53:28 [DEBUG] raft: Vote granted. Tally: 1
[metastore] 2015/07/28 16:53:28 [INFO] raft: Election won. Tally: 1
[metastore] 2015/07/28 16:53:28 [INFO] raft: Node at 127.0.0.1:8088 [Leader] entering Leader state
[metastore] 2015/07/28 16:53:28 [INFO] raft: Disabling EnableSingleNode (bootstrap)
[metastore] 2015/07/28 16:53:28 [INFO] raft: Node at 127.0.0.1:8088 [Follower] entering Follower state

Scheinbar läuft irgendwas mit der Erkennung von Master (Leader) und Slaves (Follower) Nodes falsch, wenn man den Service als Single Node startet.

Um das Problem zu lösen muss man die Datenpfade in der Config Datei anpassen.
Dafür muss zuerst ein neuer Data Ordner angelegt werden, der auch die entsprechenden Rechte besitzt.

sudo mkdir /srv/influxdb
sudo chown influxdb:influxdb /srv/influxdb/

Dieser neue Ordner wird nun in den dir Attributen der Config Datei /etc/opt/influxdb/influxdb.conf eingetragen

[meta]
  dir = "/srv/influxdb/meta"

[data]
  dir = "/srv/influxdb/data"

[hinted-handoff]
  dir = "/srv/influxdb/hh"

Wenn man an der Datei schonmal dran ist, sollte man auch das Reporting und Monitoring deaktivieren. Diese senden regelmäßig anonymisierte Informationen an m.influxdb.com.

reporting-disabled = true

[monitoring]
  enabled = false

Ein erneutes Starten des InfluxDD Dienstes lädt die geänderte Config und der Fehler „no leader“ gehört der Vergangenheit an.

Jens Altmann

Avatar Jens Altmann

Jens Altmann bloggt auf gefruckelt.de regelmäßig über alle Themen, die ihn interessieren. Neben seiner Tätigkeit als Softwarearchitekt studiert er Wirtschaftsinformatik an der Uni Potsdam.

Weitere Informationen über Jens Altmann

Interessante Artikel

Kommentare

Keine Kommentare

Kommentiere diesen Artikel als erstes!

Kommentiere den Artikel

Required

Required

Optional