Ich habe ein Raspberry Pi 2-Setup (neueste Version von Raspbian ab April 2015), mit dem letzte Woche sowohl ElasticSearch als auch Logstash in einem Testnetzwerk ausgeführt wurden (kein einfaches Setup, aber es war über eine Woche lang stabil!). Ich habe heute meinen Computer neu gestartet und es war wirklich schwierig, die Dinge wieder zum Laufen zu bringen. ES und LS werden beide unabhängig voneinander ausgeführt, aber wenn ich versuche, die LS-Ausgabe in ES zu verschieben, stirbt die ES-Instanz ohne Erklärung. Mein Ziel ist es, sowohl laufende als auch LS-Pumpdaten über das Standard-Ausgabe-Plugin in ES zu pumpen.
ElasticSearch [v1.5.0]
Ich glaube, hier liegt das Kernproblem. ES kann über service elasticsearch start
Port 9200 gestartet werden und läuft weiter, ist über HTTP-Anforderungen an Port 9200 zugänglich und alle Lebenszeichen scheinen gesund zu sein. Sobald etwas (soweit ich das beurteilen kann) versucht , Daten in einen Index zu schreiben , stirbt der Prozess ab und die Debug-Protokolle @ / var / log / elasticsearch / * enthalten nichts, was mit einem Dienstfehler zusammenhängt. Ich habe versucht, über logstash (siehe unten) sowie mit curl einzufügen, die beide den ES-Prozess beenden. Der Curl-Befehl, den ich ausführe, ist curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"
.
Logstash [v1.4.2]
Ich arbeite derzeit mit dieser einfachen Konfiguration:
input {
stdin { }
}
output {
stdout { codec => rubydebug }
elasticsearch {
host => '127.0.0.1'
cluster => 'elasticsearch'
}
}
Weitere Hinweise
Einige Dinge, die ich versucht habe:
Ich habe versucht, die Protokollierungsstufen für ElasticSearch auf DEBUG / TRACE zu erhöhen, und die Ausgabe ist bemerkenswert uninteressant. Gerne stellen wir Protokolle zur Verfügung, wenn dies hilfreich wäre.
Ich habe versucht, ES 256 MB und 512 MB Heap-Speicherplatz zur Verfügung zu stellen, was anscheinend keine Auswirkungen hat. Ich habe auch die Speicherauslastung während all dem beobachtet und es scheint kein Problem zu sein, wenn der Speicher knapp wird.
Ich habe versucht, Multicast zu deaktivieren, um eine Reihe von Netzwerkvariablen auszusortieren, aber das schien keinen Unterschied zu machen.
Ich habe sichergestellt, dass das Datenverzeichnis für ES über genügend Speicherplatz, Schreibberechtigungen usw. verfügt. ES erstellt
path.data
beim Laden Unterverzeichnisse im Verzeichnis, aber ich glaube nicht, dass etwas hinzugefügt wurde, da die Indexstatistiken dies vorschlagen, wenn ich den ES-Prozess neu starte Die Gesamtzahl der Dokumente ist Null.
Ich bin jetzt ziemlich ratlos und enttäuscht, dass nichts, was ich brauche (oder zumindest finden kann), protokolliert wird. Irgendwelche Ideen, was hier los sein könnte?
quelle
hs_err_PID.log
)? ES 1.5 verwendet eine native Bibliothek namens Sigar zur Überwachung. Möglicherweise liegt ein Problem mit Raspberrys ARM vor. Könnten Sie versuchen, Sigar alleine zu betreiben? Ich würde versuchen, ein Upgrade auf ES 1.5.2 oder ES 2.0 durchzuführen, das Sigar nicht mehr verwendet.Antworten:
Sie benötigen mehr Hardware
Ihr Raspi ist möglicherweise (erheblich) für Ihre Arbeitsbelastung unter Strom.
Ich bin in keiner Weise ein Elasticstack-Experte, aber ich habe es in mehreren Testszenarien und für den begrenzten / leichten Produktionseinsatz eingerichtet. Nach meiner Erfahrung erfordert das System, während die anfängliche Einrichtung relativ wenig Ressourcen erfordert, mit zunehmender Anzahl von Indizes erheblich mehr Festplatten-E / A und CPU-Last.
Dies ist besonders deutlich nach einem Neustart, während das System die Shards wiederherstellt. Wenn Ihre Indizes nicht zu groß sind, können Sie monatliche Buckets anstelle der täglichen Standard-Buckets in Betracht ziehen, was in dieser Hinsicht hilfreich zu sein scheint.
quelle