kafka 플러그인 및 es 플러그인으로 유창한 이미지 만들기

머리말

Fluentd는 통합 로깅 계층을위한 오픈 소스 데이터 수집기입니다. Kubernetes, Prometheus, Envoy, CoreDNS 및 containerd에 이어 6 번째 CNCF 졸업 프로젝트입니다. 비교적 경량 인 Elastic logstash와 비교되는 경우가 많습니다. 유연하고 개발이 매우 뛰어납니다. 이 블로그를 쓰는 시점에서 github의 스타는 8.8k, 포크는 1k입니다.

전제

  1. 도커

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

<source>
  @type kafka

  brokers kafka:9092
  format json
  <topic>
    topic     kafeidou
  </topic>
</source>


<match *>
  @type elasticsearch
  host elasticsearch
  port 9200
  index_name fluentd
  type_name fluentd
</match>

v1.3.2 버전의 fluentd 이미지가 기본 이미지로 사용되며 fluentd의 처리 레이어 확장은 플러그인에 의해 확장되므로이 이미지를 만들 때 해당 kafka 플러그인과
elasticsearch 플러그인 을 설치해야합니다. kafka의 fluentd 플러그인 버전은 0.12.3이고 elasticsearch의 fluentd 플러그인 버전은 4.0.3입니다.

Dockerfile 및 fluent.conf가 준비되었습니다. 미러링 명령을 실행합니다.

docker build -t fluentd-es-kafka:v1.3.2 .

이렇게하면 es 플러그인과 kafka 플러그인이 포함 된 fluentd 이미지가 완성됩니다.

그런 fluentd를 실행하려면 docker 명령 만 실행하면됩니다.

docker run -it -d fluentd-es-kafka:v1.3.2

컨테이너가 시작되면 호스트가 kafka 인 kafka 메시지 수신을 시작하고 호스트가 elasticsearch 인 elasticsearch 노드로 데이터를 전송합니다.

es와 kafka의 노드 주소가 다른 경우 컨테이너의 기본 구성 파일을 재정의하려면 볼륨을 중단해야합니다.

docker run -it -v {存放fluent.conf的目录}:/etc/fluent -d fluentd-es-kafka:v1.3.2

완성 된 이미지 보내기 :lypgcs/fluentd-es-kafka:v1.3.2

 

> 원두 커피 4 종  출시! 
> 공식 계정 팔로우-> [Four Coffee Beans] 최신 콘텐츠 받기  
 

 

추천

출처blog.csdn.net/lypgcs/article/details/104326585