2016-07-05 3 views
1

logstash 2.3.3 websocket 입력 작업을 시도하고 있습니다.logstash를 구성하는 방법 2.3.3 websocket

Logstash : https://download.elastic.co/logstash/logstash/logstash-2.3.3.tar.gz

웹 소켓의 입력 Logstash에 대한 플러그인 : https://www.elastic.co/guide/en/logstash/current/plugins-inputs-websocket.html

웹 소켓 서버 : https://github.com/joewalnes/websocketd/releases/download/v0.2.11/websocketd-0.2.11-linux_amd64.zip

웹 소켓 클라이언트 : 크롬 플러그인 "단순 웹 소켓 클라이언트"

나는 알고있다 버그는 작년에 logstash 1.5.0과 websocket 입력 플러그인을 제출했습니다. https://github.com/logstash-plugins/logstash-input-websocket/issues/3 나는 그 (것)들을 더 이상 재생할 수 없더라도, 그 동일한 과실 메시지를 또한 받았다. 다음은 나의 현재 절차와 결과입니다. 버그가 수정되어 올바른 설정을 찾을 수 없기를 바라고 있습니다.

먼저 플러그인을 설치하고 설치되어있는 것으로 확인되었습니다.

/app/bin/logstash-plugin list | grep "websocket" 

다음, 나는 logstash이 Logstash이 일을 다음과 같은 설정

input { 
    stdin { } 
} 

output { 
    file { 
    path => "/app/logstash-2.3.3/logstash-log.txt" 
    } 
} 

작업 것을 확인.

/app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf 
Hello World 

파일 logstash-log.txt에는 포함 :

{"message":"Hello World","@version":"1","@timestamp":"2016-07-05T20:04:14.850Z","host":"server-name.domain.com"} 

다음 내가 몇 가지 숫자

#!/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 

I를 반환하는 간단한 bash는 스크립트를 작성 포트 9300

을 열어 내 bash 스크립트를 가리키는 websocketd를 시작했습니다.

/app/websocketd --port=9300 /app/count.sh --to 7 

나는 크롬에서 간단한 웹 소켓 클라이언트를 열고

ws://server-name.domain.com:9300 

성공을 연결! 그것은 다음을 반환했다. 이 시점에서

Count to 7 
1 
2 
3 
4 
5 
6 
7 

나는 websocketd 작품과 logstash 일을 알고있다. 이제 문제가 시작됩니다.

Logstash 웹 소켓의 입력 구성 파일

input { 
    websocket { 
    codec => "plain" 
    url => "ws://127.0.0.1:9300/" 
    } 
} 

output { 
    file { 
    path => "/app/logstash-2.3.3/logstash-log.txt" 
    } 
} 

실행으로 configtest

/app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf --configtest 

은 "구성 OK"를 수신

시작까지

/app/websocketd --port=9300 /app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf 
을 websocketdSimple Web Socket Client에서 ws : //server-name.domain.com : 9300에 연결합니다. 나는 세션을 시작한 메시지 팝업을 본다.

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 

나는 "hello world"를 보내려고합니다. 서버에서 아무 일도 일어나지 않습니다. 약 15 초 후에 내 콘솔 창에 연결 해제 메시지가 표시됩니다. logstash-log.txt가 생성되지 않습니다.

시도해 볼 아이디어가 있습니까? 고맙습니다!

UPDATE 1 :

/app/websocketd --port=9300 /app/logstash-2.3.3/bin/launch_logstash.sh 

:

#!/bin/bash 

exec /app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf 

가 그럼 난과 같이 websocketd 시작 :

나는 "launch_logstash.sh"라는 bash는 스크립트에 다음을 퍼팅 시도 같은 결과; 성공하지 못했습니다.

답변

0

websocketd 문서를 더 자세히 읽으면 소켓에서 수신 한 데이터를 프로그램의 표준 입력으로 보냅니다. 내 logstash 설정에서 소켓을 듣고 노력했지만, 데이터가 실제로 그 애플 리케이션의 표준으로 가고있다. 나는이 내 설정을 변경 :

짧은 그래서
/app/websocketd --port=9300 /app/logstash-2.3.3/bin/logstash agent --config /app/logstash-2.3.3/logstash.conf 

, logstash - 웹 소켓 입력}는 자신의 서버 옵션, 표준 입력 {} 표준 출력을 {구현까지 있습니다

input { 
    stdin { } 
} 

output { 
    file { 
    path => "/app/logstash-2.3.3/logstash-log.txt" 
    } 
} 

그런 다음 시작

이 같은 websocketd websocketd를 웹 서버로 사용하는 경우 입력 및 출력.

관련 문제