반응형

logstasth 로 elasticsearch 에 데이터를 넣어줄 수 있다.

나는 kafka 데이터를 logstash 로 컨슘하고 output 저장소로 elasticsearch 에 넣으려고 한다.

 

https://www.elastic.co/guide/en/logstash/6.6/installing-logstash.html

 

Installing Logstash | Logstash Reference [6.6] | Elastic

Use the echo method described above to add the Logstash repository. Do not use add-apt-repository as it will add a deb-src entry as well, but we do not provide a source package. If you have added the deb-src entry, you will see an error like the following:

www.elastic.co

이거대로만 하면 logstash 설치 가능하다.

 

요약하자면

centos 기준, elasticsearch version 6 기준

1. 퍼블릭키를 다운

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2. 경로 /etc/yum.repos.d/ 에서 logstash.repo 라는 파일 생성 후 아래 코드 작성

[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

3. 설치

sudo yum install logstash
 

 

conf 파일 작성.

/etc/logstash/conf.d/ 경로에 logstasth.conf 파일 생성 후 

내용 작성한다.

input 및 output 설정해주면 된다. -> Pipline.yml 에 

path.config: "/etc/logstash/conf.d/*.conf"

과 같이 파이프라인 파일에 conf 파일을 읽는 거로 설정되어 있기 때문에 저 경로에 파일 생성해준다.

input {
    kafka {
        bootstrap_servers =>  "172.11.11.11:9092"
        group_id => "logstash"
        topics => [“test-topic”]
        consumer_threads => 1
    }
}

filter {
}

output {
    stdout {
        codec => rubydebug
    }    
    elasticsearch {
        hosts => "172.11.22.22:9200"
        index => "kafka-test-%{+YYYY-MM-dd}"
        document_type => "_doc"
    }
}

 

 

로그스태시 실행(start, restart, stop)

 systemctl restart logstash

 

- 로그 스테이스 설정 파일의 변경 사항을 적용하려면 재시작을 한다.

로그스테이시 로그

$ tail -f /var/log/logstash/logstash-plain.log

 

https://medium.com/geekculture/data-pipeline-from-kafka-to-elastic-search-using-logstash-5edca8d44d82

filter {
  mutate {
  add_field => {
  "id" => "%{[data][id]}"
  }
  add_field => {
  "firstName" => "%{[data][firstName]}"
  }
  add_field => {
  "lastName" => "%{[data][lastName]}"
  }
  add_field => {
  "city" => "%{[data][city]}"
  }
  add_field => {
  "country" => "%{[data][country]}"
  }
  add_field => {
  "email" => "%{[data][email]}"
  }
  add_field => {
  "phoneNumber" => "%{[data][phoneNumber]}"
  }
  add_field => {
  "createdAt" => "%{[data][createdAt]}"
  }
  remove_field => ["data", "@version", "@timestamp", "message", "event", "globalId"]
  }
  }
 
반응형

'인프라 > 모니터링' 카테고리의 다른 글

spring cloud resilience4j 모니터링  (0) 2022.11.03
telegraf 시작하기  (0) 2022.01.04
Burrow 시작하기  (0) 2021.12.30
ZIPKIN 시작하기  (0) 2021.11.25
프로메테우스 Prometheus 시작하기(docker)  (0) 2021.11.04

+ Recent posts