Logstash가 데이터 쓰기를 시도하면 Elasticsearch가 종료 됨


9

지난주 테스트 네트워크에서 ElasticSearch와 Logstash를 모두 실행하는 Raspberry Pi 2 (2015 년 4 월 현재 최신 Raspbian) 설정이 있습니다 (직접적인 설정은 아니지만 일주일 동안 안정적이었습니다). 나는 오늘 컴퓨터를 재부팅하고 일을 다시 시작하는 데 정말 어려움을 겪었습니다. ES와 LS는 모두 독립적으로 실행되지만 LS 출력을 ES로 푸시하려고하면 ES 인스턴스가 설명없이 죽습니다. 내 목표는 표준 출력 플러그인을 통해 실행 및 LS 펌핑 데이터를 ES로 가져 오는 것입니다.

ElasticSearch [v1.5.0]

이것이 핵심 문제가있는 곳이라고 생각합니다. ES는 시작하여 service elasticsearch start계속 작동하고 HTTP 요청을 통해 포트 9200에 액세스 할 수 있으며 모든 생명 징후가 건강 해 보입니다. 무엇이든 (내가 말할 수 있는 한) 색인에 데이터 를 쓰려고 하면 프로세스가 죽고 디버그 로그 @ / var / log / elasticsearch / *에는 서비스 실패와 관련된 내용이 없습니다. 나는 logstash (아래 참조)와 curl을 통해 삽입을 시도했는데, 둘 다 ES 프로세스를 종료합니다. 내가 실행중인 curl 명령은 curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"입니다.

로그 스 태쉬 [v1.4.2]

현재이 간단한 구성으로 실행 중입니다.

input {
    stdin { }
}

output {
        stdout { codec => rubydebug }
        elasticsearch {
                host => '127.0.0.1'
                cluster => 'elasticsearch'
        }
}

기타 노트

내가 시도한 것들 :

  • ElasticSearch의 로깅 수준을 DEBUG / TRACE로 높이려고 시도했지만 출력이 크게 흥미롭지 않습니다. 도움이된다면 로그를 제공해 드리겠습니다.

  • ES 256MB 및 512MB의 힙 공간을 제공하려고 시도했지만 아무런 영향을 미치지 않습니다. 또한이 모든 과정에서 메모리 사용률을 보았으며 메모리 부족이 문제가되지 않는 것으로 보입니다.

  • 멀티 캐스트를 비활성화하여 많은 네트워킹 변수를 제거하려고 시도했지만 차이가 없었습니다.

  • ES의 데이터 디렉토리에 충분한 공간, 쓰기 권한 등이 있는지 확인했습니다. ES는 path.data로드 될 때 디렉토리에 서브 디렉토리를 작성 하지만 ES 프로세스를 다시 시작할 때 색인 통계는 다음과 같이 제안됩니다. 총 문서 수는 0입니다.

나는 지금 꽤 혼란에 빠졌고 내가 필요한 (또는 적어도 찾을 수있는) 아무것도 기록되지 않았다는 것에 실망했다. 여기서 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?


로그에서 유용한 정보를 얻지 못하면 소스에서 컴파일하고 더 많은 디버그 문을 추가하는 것 이외의 유일한 옵션은 strace를 사용하여 시스템 호출을 보는 것 같습니다. Elasticsearch가 왜 죽어 가고 있는지에 대한 힌트를 줄 수 있습니다. 볼륨을 줄이려면 정상적으로 시작한 다음 쓰기를 시작하기 직전에 실행중인 프로세스를 추적하십시오.
Paul Haldane

로그없이 충돌이 발생하면 JNI 문제가 생각납니다. JVM 프로세스 덤프 ( hs_err_PID.log)가 없습니까? ES 1.5는 모니터링을 위해 Sigar라는 기본 라이브러리를 사용합니다. Raspberry의 ARM에 문제가있을 수 있습니다. 시가 자체를 실행하려고 할 수 있습니까? Sigar를 더 이상 사용하지 않는 ES 1.5.2 또는 ES 2.0으로 업그레이드하려고합니다.
G Quintana

스왑을 해제 했습니까?
럼블

Elasticsearch는 먼저 8G 램을 권장합니다. 나는 한 번 그것을 Raspberry Pi 3에서 실행했지만 작동하지만 데이터를 전송하는 속도에 약간주의를 기울여야하며 쿼리에는 시간이 걸릴 수 있습니다.
webwurst

답변:


1

더 많은 하드웨어가 필요합니다

raspi는 작업 부하에 따라 전력이 많이 부족할 수 있습니다.

나는 결코 Elasticstack 전문가가 아니지만 몇 가지 테스트 시나리오와 제한된 / 경량 프로덕션 사용을 위해 설정했습니다. 필자의 경험에 따르면 초기 설정에는 상대적으로 적은 리소스가 필요하지만 인덱스 수가 증가함에 따라 시스템은 디스크 IO 및 CPU로드를 훨씬 더 많이 생성합니다.

이것은 시스템이 샤드를 복구하는 동안 다시 시작한 후에 특히 분명합니다. 인덱스가 너무 크지 않으면 기본 일일 버킷 대신 월간 버킷을 고려할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.