ELK

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

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

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 스택으로 데이터 분석 강의를 참조하여 작성하였습니다.

728x90
반응형