Ich versuche Logstash 2.3.3 WebSocket Eingang arbeiten zu bekommen.Wie konfiguriere ich Logstash 2.3.3 Websocket
Logstash: https://download.elastic.co/logstash/logstash/logstash-2.3.3.tar.gz
Websocket Input Plugin für Logstash: https://www.elastic.co/guide/en/logstash/current/plugins-inputs-websocket.html
Websocket Server: https://github.com/joewalnes/websocketd/releases/download/v0.2.11/websocketd-0.2.11-linux_amd64.zip
Websocket Kunde: Chrome Plugin "Simple Web Socket Client"
Ich kenne ein Fehler im letzten Jahr Logstash 1.5.0 und das WebSocket Input-Plugin eingereicht. https://github.com/logstash-plugins/logstash-input-websocket/issues/3 Ich habe auch die gleichen Fehlermeldungen erhalten, obwohl ich sie nicht mehr reproduzieren kann. Das Folgende ist meine derzeitige Vorgehensweise und das Ergebnis. Ich hoffe, dass der Fehler behoben wurde und ich die richtige Konfiguration nicht finden kann.
Zuerst habe ich das Plugin installiert und bestätigt, dass es als installiert aufgeführt ist.
/app/bin/logstash-plugin list | grep "websocket"
Als nächstes habe ich gecheckt, dass logstash mit folgenden Config
input {
stdin { }
}
output {
file {
path => "/app/logstash-2.3.3/logstash-log.txt"
}
}
Logstash arbeitete arbeitet.
/app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf
Hello World
Die Datei logstash-log.txt enthalten:
{"message":"Hello World","@version":"1","@timestamp":"2016-07-05T20:04:14.850Z","host":"server-name.domain.com"}
Weiter öffnete ich Port 9300
ich ein einfaches Bash-Skript schrieb einige Zahlen
#!/bin/bash
case $1 in
-t|--to)
COUNTTO=$2
shift
;;
esac
shift
printf 'Count to %i\n' $COUNTTO
for COUNT in $(seq 1 $COUNTTO); do
echo $COUNT
sleep 0.1
done
ich zurückkehren started websocketd zeigt auf mein bash script
/app/websocketd --port=9300 /app/count.sh --to 7
Ich öffnete Einfache Web-Socket Client in Chrome und verbunden
ws://server-name.domain.com:9300
Erfolg! Es gab folgendes zurück.
Count to 7
1
2
3
4
5
6
7
An diesem Punkt weiß ich websocketd Werke und logstash Werke. Jetzt beginnt das Problem.
Logstash websocket Eingangskonfigurationsdatei
input {
websocket {
codec => "plain"
url => "ws://127.0.0.1:9300/"
}
}
output {
file {
path => "/app/logstash-2.3.3/logstash-log.txt"
}
}
Run configtest
/app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf --configtest
Receive "Konfiguration OK"
starten websocketd up
/app/websocketd --port=9300 /app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf
Zurück in Simple Web Socket Client stelle ich eine Verbindung zu ws: //server-name.domain.com: 9300 her. Ich sehe eine Meldung, dass ich eine Sitzung gestartet habe.
Tue, 05 Jul 2016 20:07:13 -0400 | ACCESS | session | url:'http://server-name.domain.com:9300/' id:'1467732248361139010' remote:'192.168.0.1' command:'/app/logstash-2.3.3/bin/logstash' origin:'chrome-extension://pfdhoblngbopfeibdeiidpjgfnlcodoo' | CONNECT
Ich versuche, "Hallo Welt" zu senden. Nichts Offensichtliches passiert auf dem Server. Nach ungefähr 15 Sekunden sehe ich eine Trennungsnachricht in meinem Konsolenfenster. logstash-log.txt wird nie erstellt.
Irgendwelche Ideen für was zu versuchen? Vielen Dank!
UPDATE 1:
Ich habe versucht, die folgenden in einem Bash-Skript namens "launch_logstash.sh" setzen:
#!/bin/bash
exec /app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf
Dann begann websocketd wie ich so:
/app/websocketd --port=9300 /app/logstash-2.3.3/bin/launch_logstash.sh
Gleiches Ergebnis; Kein Erfolg.