[ELK] Logstash를 이용해 Elasticsearch csv파일 import

2022. 2. 28. 12:19ELK

안녕하세요

오늘은 저번 포스팅에서 설치한 ELK를 통해 실제 분석할 데이터를 적재하여 시각화하는 Process까지 진행하도록 하겠습니다.

 

우선 분석할 샘플 데이터가 필요하겠습니다.

 

저는 '서울시 자치구별 신호등 및 횡단보도 수량'(2022년 2월 25일 기준)을 준비하겠습니다. 파일을 다운받을 수 있는 링크는 아래와 같습니다.

https://data.seoul.go.kr/dataList/OA-21237/F/1/datasetView.do

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 

csv파일의 형식은 다음과 같습니다.

여기서 주의해야 할 점은 지금의 csv파일을 그대로 적재하게 된다면 첫행의 '자치구', '횡단보도 개수', '신호등 개수'도 하나의 record로 인식하여 적재된다는 점입니다. 따라서 우리는 적재하기전에 첫 행을 삭제하겠습니다.

 

이후에 Logstash에 sampledata.conf파일을 생성합니다.

input {
        file {
                path => "/home/로컬의 절대 경로~/자치구별 횡단보도와 신호등 개수_20220225기준.csv"
                start_position => "beginning"
        }
}
filter {
        csv {
                columns => ["자치구", "횡단보도 개수", "신호등 개수"]
                separator => ","
        }

        mutate { convert => ["자치구", "string"] }

        mutate { convert => ["횡단보도 개수", "integer"] }

        mutate { convert => ["신호등 개수", "integer"] }

}
output {
        elasticsearch {
                action => "index"
                hosts => ["localhost"]
                index => "test"
        }
        stdout { }
}

path는 csv가 위치하고있는 절대 경로를 기재합니다.

columns는 삭제했던 첫행의 필드값을 순서대로 기재합니다.

index는 Elasticsearch에 적재할 데이터의 index명을 기재합니다.

 

 

+

지금은 초기의 기본 index만 존재하는 상태입니다.

elasticsearch를 실행하여 아래의 명령어를 실행합니다.

curl -XPUT localhost:9200/test

위의 명령어는 elasticsearch에 test라는 이름의 index를 생성하는 명령어입니다.

 

 

이후에 logstash 디렉토리 아래의 bin디렉토리에 들어가서 terminal을 실행하여 아래의 명령어를 실행합니다.

logstash -f /home/아까 작성한 logstash의 sampledata.conf경로/sampledata.conf

정상 실행이 되었다면 아래와 같이 json형식으로 csv의 내용이 출력됩니다.

그 후 kibana에 접속하여 'Management' -> 'Index Patterns'를 클릭하여 방금 밀어넣은 index(RDB의 table 개념)를 kibana에서 생성합니다.

아래 그림과 같이 elasticsearch에 생성 된 index 목록이 출력됩니다. 우리는 방금 생성하고 데이터를 import한 'test'를 kibana에 생성합니다.

이후 Kibana의 Discover메뉴로 이동하면 다음과 같이 import한 데이터를 확인할 수 있습니다!

이로써 이번 포스팅을 마무리하겠습니다.

 

다음 포스팅에서는 적재되어있는 데이터를 이용하여 시각화 하는 여러 분석 방법을 소개하겠습니다.

 

감사합니다 :)

 

[참조] https://peanut159357.tistory.com/27

 

서울시 공공데이터(CSV) Logstash로 Elasticsearch에 올리고 Kibana에서 분석하기 (+한글깨짐해결)

https://data.seoul.go.kr/dataList/datasetList.do 서울 열린데이터광장 전체  5,215건 을 찾았습니다. 정확도순 최신공개일순 조회순 제목순 조회 공공데이터 [교통] 서울특별시 공공자전거 신규가입자 정보(

peanut159357.tistory.com

 

'ELK' 카테고리의 다른 글

[ELK] Kibana로 Data 시각화  (0) 2022.05.02
ELK 설치(Elasticsearch, Logstash, Kibana)  (0) 2022.01.31