ELK

ELK - 01 (CSV 파일 입력 및 데이터 시각화)

김모우 2020. 12. 10. 20:09
반응형

ELK STACK을 전체 구성 후에 Logstash를 통해 CSV파일 데이터를 Elasticsearch에 Import한 후 Kibana로 시각화 해주는 작업을 진행해보겠습니다.

 

 

1. Logstash 설치

 

- Logstash를 통해 Elasticsearh에 데이터를 넣기 위해 설치를 먼저 진행해주겠습니다.
# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0-amd64.deb
# dpkg -i logstash-7.10.0-amd64.deb
# systemctl enable logstash
# systemctl start logstash
# systemctl status logstash

 

2. CSV 파일 다운로드

 

- 인프런 강의의 csv 파일 데이터를 다운 받았습니다.
- URL: https://catalog.data.gov/
- 아래와 같이 검색해 csv 파일을 다운로드 받았습니다.


- 불필요한 -, null 등의 값을 우선 사전 제거해주었습니다.
- 파일 다운로드 후 SCP를 이용하여 서버로 옮겨주었습니다.

 

3. logstatsh.conf 생성

 

- logstash.conf 파일 생성
# vim logstash.conf
.
.
.
input {
  file {
    path => "/home/sysop/populationbycountry19802010millions.csv"  
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
  csv {
      separator => ","
      columns => ["Country","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010"]
  }
  mutate {convert => ["1980", "float"]}
  mutate {convert => ["1981", "float"]}
  mutate {convert => ["1982", "float"]}
  mutate {convert => ["1983", "float"]}
  mutate {convert => ["1984", "float"]}
  mutate {convert => ["1985", "float"]}
  mutate {convert => ["1986", "float"]}
  mutate {convert => ["1987", "float"]}
  mutate {convert => ["1988", "float"]}
  mutate {convert => ["1989", "float"]}
  mutate {convert => ["1990", "float"]}
  mutate {convert => ["1991", "float"]}
  mutate {convert => ["1992", "float"]}
  mutate {convert => ["1993", "float"]}
  mutate {convert => ["1994", "float"]}
  mutate {convert => ["1995", "float"]}
  mutate {convert => ["1996", "float"]}
  mutate {convert => ["1997", "float"]}
  mutate {convert => ["1998", "float"]}
  mutate {convert => ["1999", "float"]}
  mutate {convert => ["2000", "float"]}
  mutate {convert => ["2001", "float"]}
  mutate {convert => ["2002", "float"]}
  mutate {convert => ["2003", "float"]}
  mutate {convert => ["2004", "float"]}
  mutate {convert => ["2005", "float"]}
  mutate {convert => ["2006", "float"]}
  mutate {convert => ["2007", "float"]}
  mutate {convert => ["2008", "float"]}
  mutate {convert => ["2009", "float"]}
  mutate {convert => ["2010", "float"]}
}
output {
    elasticsearch {
        hosts => "localhost"
        index => "population"
    }
    stdout {}
}
.
.
: wq

 

4. logstash 실행

#  cd /usr/share/logstash/
# ./logstash -f [경로]/logstash.conf

- 데이터 확인
# curl -X GET 'localhost:9200/population/_search?pretty'

 

5. Kibana 인덱스 패턴 생성 및 Visualize

- 위의 포스팅과 동일한 원리로 인덱스 패턴을 생성해줍니다.
  : logstash.conf에서 index명을 population으로 설정하였으므로 해당 index 명으로 검색해줍니다.

- Visualize 클릭 후 Source로 index명 선택
- Y-axis, X-axis 입력

- population-01(Vertical bar)



- population-02(Pie chart)



- 위에 생성한 2 그래프를 저장 후 Dashboard를 작성해보겠습니다.
- Dashboard 탭 선택 후 Add 버튼을 통해 생성해준 그래프들을 추가해주면 됩니다.

 

다음 포스팅에서는 Filebeat를 이용하여 Zabbix Server 로그를 Logstash 쪽으로 연결하여 시각화까지 진행해보겠습니다.

위의 자료는 인프런 ELK 스택으로 데이터 분석 강의를 참조하여 작성하였습니다.

반응형