2014-06-17 1 views
1

동일한 컴퓨터에서 하나의 elastic 인스턴스와 logstash 인스턴스를 동시에 실행하고 있습니다.logstash를 사용하여 외부 파일에서 elasticsearch에 인덱스를로드 할 수 없습니다.

아래의 설정 파일을 실행하는 logstash를 사용하여 파일을 탄성체로로드하려고 할 때 탄성 출력과 다음 파일이 출력됩니다 (입력이 stdin으로 설정되면 모든 것이 작동하는 것 같습니다. 그냥 괜찮)

어떤 아이디어?

는 " [2014-06-17 22:42:24,748][INFO ][cluster.service ] [Masked Marvel] removed {[logstash- Eitan-PC-5928-2010][Ql5fyvEGQyO96R9NIeP32g][Eitan-PC][inet[Eitan-PC/10.0.0.5:9301]]{client=true, data=false},}, reason: zen-disco-node_failed([logstash-Eitan-PC-5928-2010][Ql5fyvEGQyO96R9NIeP32g][Eitan-PC][inet[Eitan-PC/10.0.0.5:9301]]{client=true, data=false}), reason transport disconnected (wi 일)]을 연결)

[2014-06-17 22:43:00,686][INFO ][cluster.service ] [Masked Marvel] added {[logstash-Eitan-PC-5292-4014][m0Tg-fcmTHW9aP6zHeUqTA][Eitan-PC][inet[/10.0.0.5:9301]]{client=true, data=false},}, reason: zen-disco-receive(join from node[[logstash-Eitan-PC-5292-4014][m0Tg-fcmTHW9aP6zHeUqTA][Eitan-PC][in 등 [/10.0.0.5:9301] = {false를 클라이언트 = TRUE, 데이터 검증 }"

config 파일 :

input { 
      file { 
       path => "c:\testLog.txt" 
      } 
     } 


    output { 
     elasticsearch { host => localhost 
       index=> amat1 
       } 

} 

답변

0

"elasticsearch"를 출력 "http://logstash.net/docs/1.4.1/outputs/elasticsearch"으로 사용하면 "elasticsearch_http"가 http://logstash.net/docs/1.4.1/outputs/elasticsearch_http이고 "프로토콜"을 설정하려고 할 것입니다.

"node", "http"또는 "transport"의 각기 다른 동작을하는 세 가지 다른 값을 가질 수 있으며 기본 선택이 잘 문서화되어 있지 않기 때문입니다.

Logstash가 노드로 클러스터에 참여하려고한다는 것을 (다른 로그 항목과 함께) 나타내는 포트 9301의 연결 시도를 볼 때 로그 파일 모양에서 "노드"프로토콜을 사용하고있는 것처럼 보입니다. 클러스터 이름이 불일치하는 등 여러 가지 이유로 인해 실패 할 수 있습니다.

"http"로 프로토콜을 설정하는 것이 좋습니다 - 이전에 비슷한 문제가 수정되었습니다.

은 참조 :

http://logstash.net/docs/1.4.1/outputs/elasticsearch#cluster http://logstash.net/docs/1.4.1/outputs/elasticsearch#protocol

편집 :

나는 당신의 설정에서 볼 몇 가지 다른 문제 -

  • 귀하의 호스트와 인덱스가 있어야한다 문자열을, 어떤 로그 스타트 설정에서 파일을 큰 따옴표로 묶어야합니다. "localhost"a nd "amat1". 따옴표가 작동하지 않을 수 있지만 따옴표를 사용하는 것이 좋습니다.

  • 당신이 "HTTP"프로토콜로 사용하지 않거나이 될 것입니다 당신이 ( 당신의 ES 클러스터 이름과 동일한 클러스터를 설정해야 출력으로 "elasticsearch_http"를 사용하지 않는 경우

    http://logstash.net/docs/1.4.1/configuration#string 클러스터 의 노드가 되려고합니다.

  • 입력 파일의 start_position을 "beginning"로 설정해야합니다. 그렇지 않으면 기본적으로 파일의 끝에서 읽기로 설정되며 에는 데이터가 표시되지 않습니다.이 지금 Windows에서 특정 문제 파일, sincedb 내에서 추적 위치의 다른 방법으로 는 Windows에서 을 분류됩니다

    https://logstash.jira.com/browse/LOGSTASH-1587

    http://logstash.net/docs/1.4.1/inputs/file#start_position

  • 당신은 당신의 경로를 변경해야합니다 당신의 로그 파일을 "C:/testLog.txt". Logstash는 Windows에서 슬래시와 대문자 드라이브 문자를 선호합니다.

    https://logstash.jira.com/browse/LOGSTASH-430

+0

덕분에 존, 난 성공하지 그것을 시도했습니다 :-(. 시도 elasticsearch_http {}와 elasticsearch {프로토콜 => "HTTP"} 아직 둘 다 일을 ... 다른 생각? –

+0

덧붙여서 elasticsearch_http {}를 사용하면 (자), tamplate docs 내에서, 「tamplate」를 제공 할 필요가 있다고하는 에러 메세지가 표시됩니다. 이것은 옵션의 설정이라고 말하는 것입니다 ... –

+0

정확하게 같은 에러 메세지가 표시됩니다. 당신이 처음에했던 것처럼 두 가지 설정을 사용할 때 –