2016-03-30 12 views
1

Ich habe das logstash-plugin für jenkins installiert und konfiguriert, um den Indexer als elastische Suche zu verwenden.jenkins logstash-plugin kann nicht auf elasticSearch posten

Während die Aufträge ausführen ich die folgende Fehlermeldung angezeigt:

16:56:12 [logstash-plugin]: Failed to send log data to ELASTICSEARCH:http://localhost:9200. 
16:56:12 [logstash-plugin]: No Further logs will be sent to http://localhost:9200. 
16:56:12 java.io.IOException: HTTP error code: 200 
16:56:12 URI: http://localhost:9200/logstash-jenkins 
16:56:12 RESPONSE: HttpResponseProxy{HTTP/1.1 200 OK [Content-Type:  application/json; charset=UTF-8, Content-Length: 21] ResponseEntityProxy{[Content-Type: application/json; charset=UTF-8,Content-Length: 21,Chunked: false]}} 
16:56:12 {"acknowledged":true} 
16:56:12 at jenkins.plugins.logstash.persistence.ElasticSearchDao.push(ElasticSearchDao.java:113) 
16:56:12 at jenkins.plugins.logstash.LogstashWriter.write(LogstashWriter.java:147) 
16:56:12 at jenkins.plugins.logstash.LogstashWriter.write(LogstashWriter.java:85) 
16:56:12 at jenkins.plugins.logstash.LogstashOutputStream.eol(LogstashOutputStream.java:58) 
16:56:12 at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60) 
16:56:12 at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56) 
16:56:12 at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:74) 
16:56:12 at java.io.PrintStream.write(PrintStream.java:480) 
16:56:12 at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) 
16:56:12 at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) 
16:56:12 at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) 
16:56:12 at  java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185) 
16:56:12 at java.io.PrintStream.newLine(PrintStream.java:546) 
16:56:12 at java.io.PrintStream.println(PrintStream.java:807) 
16:56:12 at hudson.model.Cause$UserIdCause.print(Cause.java:426) 
16:56:12 at  hudson.model.StreamBuildListener.started(StreamBuildListener.java:75) 
16:56:12 at hudson.model.Run.execute(Run.java:1723) 
16:56:12 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
16:56:12 at  hudson.model.ResourceController.execute(ResourceController.java:98) 
16:56:12 at hudson.model.Executor.run(Executor.java:410) 

Würden irgendwelche Hinweise zu schätzen wissen, wie ich diesen Fehler beheben können.

Dank - Prateek

Antwort

1

Bei Jenkins Plugin benötigen Sie Elasticsearch URL zu definieren, enthält [yourindex]/[Yourtype] wie folgt: http://localhost:9200/yourindex/yourtype Hoffe, es hilft.

+0

geholfen. Vielen Dank! –

+0

Hallo Herr, ich versuche Protokolle direkt zu Elasticsearch zu senden. Mein elastic wird vom elasticsearch service von aws erstellt, ich kann nicht herausfinden, welcher Port verwendet wird, um die URL im jenkins logstash plugin zu konfigurieren. Auch für den Index, sollte ich den einen, den ich erstellen möchte, in meinen els platzieren? Vielen Dank. – DionysoSong

0

Versuchen Sie Logstash zu verwenden, um Protokolle in Elasticsearch einzulesen? Obwohl es "Logstash Plugin" genannt wird, unterstützt das Jenkins Logstash Plugin dies nicht. Ich habe festgestellt, dass, wenn ich Logs direkt an Elasticsearch senden wollte, das Plugin gut funktionierte, aber als ich Logstash durchgehen wollte, bekam ich denselben Fehler wie Sie.

Es gibt derzeit eine Pull-Anfrage in der Jenkins Logstash GitHub, um diesen Fehler zu beheben (https://github.com/jenkinsci/logstash-plugin/pull/22), aber da das Plugin seit 10 Monaten nicht aktiv war (zum Zeitpunkt des Schreibens) habe ich nicht viel Hoffnung.

Wenn Sie Protokolle direkt an Elasticsearch senden möchten, müssen Sie Elasticsearch so konfigurieren, dass Remoteverbindungen überwacht werden. Stellen Sie die folgenden in Ihrem elasticsearch.yml:

network.host: 0.0.0.0 http.port: 7590

dann die Elasticsearch url in Jenkins auf http: //: 7590/

Hoffnung das hilft!

Verwandte Themen