kafka 플러그인과es 플러그인이 있는 fluentd 렌즈 만들기

전언
Fluentd는 로그 기록층을 통일하는 데 사용되는 소스 데이터 수집기이다. Kubernetes,Prometheus,Envoy,CoreDNS와containerd에 이어 여섯 번째 CNCF 졸업 프로젝트로 주로 elastic의logstash를 비교한다. 상대적으로 fluentd는 가볍고 유연하다. 현재 비현실적으로 신속하게 발전하는 지역사회가 활발하다. 이 블로그를 작성할 때 github의 star는 8.8k이고 fork는 1k로 볼 수 있다.
전제 조건
  • docker

  • Dockerfile 파일 작성
    Dockerfile
    FROM fluent/fluentd:v1.3.2 
    ADD fluent.conf /etc/fluent/
    RUN echo "source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems/'" > Gemfile && gem install bundler
    RUN gem install fluent-plugin-kafka -v 0.12.3 --no-document
    RUN gem install fluent-plugin-elasticsearch -v 4.0.3 --no-document
    CMD ["fluentd"]

    fluent.conf
    
      @type kafka
    
      brokers kafka:9092
      format json
      
        topic     kafeidou
      
    
    
    
    
      @type elasticsearch
      host elasticsearch
      port 9200
      index_name fluentd
      type_name fluentd
    
    

    버전 v1.3.2의 fluentd 렌즈를 바탕으로 하는 렌즈는 fluentd의 처리층 확장은 플러그인 방식으로 확장되기 때문에 이 렌즈를 제작할 때 대응하는 카프카 플러그인과elasticsearch 플러그인을 설치해야 한다.여기kafka의 fluentd 플러그인 버전은 0.12.3이고,elasticsearch의 fluentd 플러그인 버전은 4.0.3입니다.
    Dockerfile 및 fluent.conf 준비 완료, 이미지 만들기 명령 실행
    docker build -t fluentd-es-kafka:v1.3.2 .

    이로써 에스 플러그인과 카프 플러그인을 포함하는 fluentd 렌즈가 완성되었다.
    이런 fluentd를 실행하려면 docker 명령 하나만 있으면 실행할 수 있습니다.
    docker run -it -d fluentd-es-kafka:v1.3.2

    이 용기는 시작된 후host가kafka인kafka 메시지를 감청하고 데이터를host가elasticsearch인elasticsearch 노드로 전송합니다.
    es의 노드와kafka의 노드 주소가 다르면volume 덮어쓰기 용기에 있는 기본 프로필에 걸어야 합니다.
    docker run -it -v {  fluent.conf   }:/etc/fluent -d fluentd-es-kafka:v1.3.2

    ... 에서 비롯되다
    커피 원두 네 알
    공중번호 주목->[커피 원두 네 개] 최신 내용 얻기

    좋은 웹페이지 즐겨찾기