😆 Big Data/- ELK STACK

[ELK] 🥁logstash http_poller 사용하기 (input, output)

또방91 2022. 2. 5. 07:16
728x90

 

 

 

 

 

 

 🍰 open-api conf 파일 작성하기 (http_poller)                                       

*filter의 경우 파일 형식이나 구성에 따라 다양하다보니, input과 output에 대한 설명을 하려고 한다.

 

 

https://www.elastic.co/guide/en/logstash/8.0/plugins-inputs-http_poller.html

 

Http_poller input plugin | Logstash Reference [8.0] | Elastic

When ECS is enabled, set target in the codec (if the codec has a target option). Example: codec => json { target => "TARGET_FIELD_NAME" }

www.elastic.co

 

 

0.  http_poller  작성하기 전에 ~                

 먼저 logstash 파일 plugin으로 http_poller가 있는지 확인하는게 선행되어야한다.

# 경로이동하기
cd /usr/share/logstash/bin

# logstash-plugin 리스트 형식으로 확인하기
./logstash-plugin list

 

 

1.  input { } 작성 부분                                       

input {

 # logstash http_poller 플러그인 사용하기
  http_poller  {
  # url 넣어주기
    urls => {
      # 공공data url주소 써주기
      url => "http://apis.data.go.kr/1262000/CountryCodeService2/getCountryCodeList2?serviceKey=0X6dT7vfdpT0pZF0xuciE08laxozfslcPkhQP0TYgqbM%2BG60s4yM7u8GRbBqJiKgC7%2F7C8GSvk5JTuIzRazbtg%3D%3D&numOfRows=237&numOfRows=237"
      }
    # request_timeout은 전체 요청에 대한 시간 초과(초)입니다. 기본값이 60초 (굳이 쓸 필요없었네;;)
    request_timeout => 60
    # schedule은 URL 형식에서 주기적으로 폴링하는 일정입니다.
    schedule => { every => "5m"}
    # codec은 입력 데이터에 사용되는 코덱입니다. 
    # 입력 코덱은 Logstash 파이프라인에 별도의 필터가 필요 없이, 입력에 들어가기 전에 데이터를 디코딩하는 편리한 방법입니다
    codec => "json"
    # metadata_target은 요청/응답 메타데이터로 작업하려는 경우, 이 값을 메타데이터의 중첩 해시를 저장하려는 필드의 이름으로 설정합니다.
    metadata_target => "http_poller_metadata"
  }
}

1) logstash의  input plugin란에 http_poller를 입력한다.

2) 그리고 원하는 input option을 입력해준다.

위에서 사용한 옵션에 대한 설명을 첨부하였다!

(이보다 많은 옵션은 역시나 공식 홈페이지 참고!  https://www.elastic.co/guide/en/logstash/8.0/plugins-inputs-http_poller.html#plugins-inputs-http_poller-common-options)

 

 

 

2.  output { } 작성 부분                                       

output {
  # api를 받은 logstash를 elasticsearch로 넣어줄 예정 
  elasticsearch {
    # elasticsearch의 port번호인 9200 써준다.
    hosts => ["http://localhost:9200"]
    # index를 설정해준다.
    index => "countrycode-%{+YYYY.MM.dd}"
  }
}

 

 

 

 

다들 그럼 안-녕 !🖐️

 

728x90