😆 Big Data/- ELK STACK

[ELK] 🥁ELK stack에 공공데이터 (오픈 api) 넣기 (http_poller)

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

 

 

 

 

 

 

 

 🍰 공공데이터를 ELk에 넣는 방법은 ??                  

* 현재 Beat -> Logstash -> Elasticsearch -> Kibana 구축된 상태에서 

공공데이터 오픈 api를 Logstash에 Pipeline을 추가하여 넣어준다.

 

 

 

 🍰 설치 순서를 요약하자면 ??                          

: 공공데이터에서 url받은 후logstash의 pipeline 따로 생성하여 엘라스틱서치로 보내기 

 

1.   공공 데이터 사이트의 API 자료 확인하기

2.   logstash에서 API .conf파일 만들기

3.   logstash에서 pipeline 설정하기

4.    logstash 다시 시작하기

5.   Elasticsearch Index 확인

 

 

 


 

 

 🍰 본격적으로 시작하기                                      

👒 나의 경우는 CentOS7에서 
root가 아니라 사용자계정으로 로그인을 했어서  su root  를 써서 root로 바꿔주는 것부터 시작함!

제대로 바뀌었다면 명령창에서  $ 표시가  #  으로 바뀐다.

 

 

1.   공공 데이터 사이트의 API 자료 확인하기

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

 

**나의 경우는 오픈 api 중에서 국가/지역별표준코드 JSON 형식 데이터를 받기로 했다.   

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15075346 

 

외교부_국가·지역별 표준코드

1. 국가·지역별 표준코드 목록 조회: 한글 국가 명 또는 영문국가 명 또는 ISO국가코드(다.참고 1 ISO국가코드 이용 )로 국가 표준코드에 대한 목록 조회 - 국가별 ISO3166-1 표준코드 및 한글명칭, 영

www.data.go.kr

 

1) 원하는 데이터 ✏️[활용신청]하기 

*나의 경우에는 사유로 기타 - 실습이라고 넣어줬다 😋헷

 

2) 상단의 [마이페이지]에서 활용 승인된 데이터를 확인 후 누른다.

 

3) 일반인증키를 받은 걸 확인하고, 상세설명을 눌러 이제 사용법을 확인해보러 가보자.

 

4) URL주소는 ①요청주소 + ②요청변수 조합으로 작성하면 되는데,

자세한 세부사항은 위쪽의 [참고문서]를 확인하면 알 수 있다.

(②의 경우에는 옵션이라고 생각하면되는데, ①요청주소뒤에 를 붙여서 옵션의 시작을 구분짓고 그 뒤에 필수옵션 및 선택옵션들을 써주는데 각 옵션들 간에는 & 로 이어써준다.

 

2.  logstash에서 API .conf파일 만들기

1) /etc/logstash 경로에서 들어가서 mkdir로 countrycode란 폴더를 만들어준다.

# logstash 설정파일 경로 열기
cd /etc/logstash

# metric 폴더 만들기
mkdir countrycode

 

2) conf파일 생성 및 열기

# countrycode.conf 파일 생성 및 열기
vim countrycode/countrycode.conf

 

3) countrycode.conf 파일 내용 입력하기

; 빈 conf 파일에 아래 형식을 입력해주고 wq! 저장하고 나간다.

; 아래 형식에 대한 자세한 설명은 아래에 글 포스팅 클릭 👇👇

2022.02.05 - [빅데이터 공부/기타(conda,Linux 등)] - [ELK] 🥁logstash http_poller 사용하기 (input, output)

input {
  http_poller  {
    urls => {
      url => "http://apis.data.go.kr/1262000/CountryCodeService2/getCountryCodeList2?serviceKey=0X6dT7vfdpT0pZF0xuciE08laxozfslcPkhQP0TYgqbM%2BG60s4yM7u8GRbBqJiKgC7%2F7C8GSvk5JTuIzRazbtg%3D%3D&numOfRows=237&numOfRows=237"
      }

    request_timeout => 60
    schedule => { every => "5m"}
    codec => "json"
    metadata_target => "http_poller_metadata"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "countrycode-%{+YYYY.MM.dd}"
  }
}

 

3.  logstash에서 pipeline 설정하기

# pipeline.yml 설정파일 열기
vim pipelines.yml 

# pipeline 추가하기
- pipeline.id: countrycode
  path.config: "/etc/logstash/countrycode/countrycode.conf"

 

4.  logstash 다시 시작하기

; 설정파일에서 수정해줬으니 다시 재시작해준다.

# 로그스태시 다시시작하기
systemctl restart logstash

5. Elasticsearch Index 확인

curl localhost:9200/_cat/indices?v

 

 


 

 

다들 그럼 안-녕 !🖐️

 

 

 

 

728x90