2017-09-19 24 views
1

신축성있는 초보자로서 나는 ElasticSearch (ES) 또는 Logstatsh에 로그를 보내려면 fileBeat가 왜 필요한지 의심스러워합니다.Logstatsh에 로그를 보낼 수있을 때 filebeat가 필요한 이유

내가 아는 한 파일에서 로그를 직접 읽고 logstash로 보내고 거기에서 ES로 보낼 수 있습니다. 전자가 허용된다면 왜 우리는 FileBeat가 로그와 logstash 사이의 중간 계층이되어야 할 필요가 있습니다. 내가 알고있는 것을

: 나는 당신이 Filebeat 대 플러그인 파일 입력에 대해 얘기하는 가정 xyzlogfile--->fileBeat--->logstash-file--->ES--->kibana

답변

1

: xyzlogfile--->logstash-file--->ES--->kibana
우리는 왜 사이 FileBeat 필요합니까.

노트 할 몇 가지 :

  1. Logstash이 Filebeat 이상의 메모리와 CPU 사용량의 측면에서 훨씬 무겁습니다. 그것은 당신이 자바 소프트웨어를 배포하는 경우 괜찮을 수도 JVM이 필요하지만, 많은 프로젝트에서 JVM은 불필요한 오버 헤드입니다. Filebeat는 가벼운 기본 실행 파일입니다.

  2. 어떤 분석을 필요로하지 않으며, 당신은 당신이 간단한 경우 Filebeat

  3. 에 의해 생성 된 타임 스탬프로 확인하는 경우 사용자의 로그를 JSON
  4. 경우 당신은 모든

  5. 을 사용할 수 있습니다 아마도 필요할 것입니다. 예를 들어 루비 필터를 작성하는 것은 매우 쉽고 빠르게 프로토 타입을 작성할 수 있습니다. 초고 생산로드를 최적화하려면 사용자 정의 필터 플러그인을 작성해야 할 수도 있고, Ingest Nodes와 함께 사용할 사용자 정의 프로세서를 작성할 수도 있습니다 (그러나 아직 시도하지는 않았지만 맞춤 작성 Logstash 필터는 위의 모든 점 파일의 내용을 섭취 관련된

  6. ) 매우 간단하지만, Logstash는 모든 경우

필요하고 Logstash

에서만 사용할 수있는 수 많은 입력/출력 플러그인을 가지고 당신의 파일은 logstash 프로세스와 동일한 노드에 있습니다. File Input Plugin을 사용하는 것이 옵션 일 수 있습니다 ("xyzlogfile ---> logstash-file ---> ES ---> kibana").

그러나 대부분의 배포에서는 여러 역할과 소프트웨어 스택이 배포 된 많은 노드에서 데이터를 수집하려고합니다. 모든 노드에 Logstash 인스턴스를 배포하지 않으려면 "xyzlogfile ---> fileBeat ---> logstash-file ---> ES ---> kibana"를 사용해야합니다 (또는 다른 옵션은 "xyzlogfile ---> fileBeat ---> ES ---> "kibana"와 인제스트 노드).