
ELK는 위 그림과 같이, 분석 및 저장 기능을 담당하는 ElasticSearch, 수집 기능을 하는 Logstash, 이를 시각화하는 도구인 Kibana의 앞글자만 딴 단어이다.
ELK는 접근성과 용이성이 좋아 최근 가장 핫한 Log 및 데이터 분석 도구들이다.
1) ElasticSearch
ElasticSearch는 Lucene 기반으로 개발한 분산 검색엔진으로, Logstash를 통해 수신된 데이터를 저장소에 저장하는 역할을 담당
데이터를 중심부에 저장하여 예상되는 항목을 검색하고 예상치 못한 항목을 밝혀낼 수 있다.
정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 다양한 유형의 검색을 수행하고 결합할 수 있다.
2) Logstash
오픈소스 서버측 데이터 처리 파이프라인으로, 다양한 소스에서 동시에 데이터를 수집하고 변환하여 stash 보관소로 보낸다.
수집할 로그를 선정해서, 지정된 대상 서버(ElasticSearch)에 인덱싱하여 전송하는 역할을 담당하는 소프트웨어
3) Kibana
데이터를 시각적으로 탐색하고 실시간으로 분석할 수 있다.
시각화를 담당하는 HTML + Javascript 엔진이라고 보면 된다.
https://www.elastic.co/kr/elasticsearch/ 홈페이지에서 본인 PC 버전에 맞게 다운로드하시면 된다.
이 글을 포스팅하는 시점에선 7.6.2 버전을 사용하였다.
각각 bin 폴더에 bat파일이 있을 것이다. 더블 클릭하면 cmd창이 뜨면서 실행이 된다.
ex. elasticsearch.bat
localhost:9200
localhost:5601
# logstash.bat파일이 있는 cmd창에 작성
logstash.bat -f logstash.conf
로그스태시는 conf 파일을 만들어주어야 한다.
logstash.conf
input {
file {
path => "{지정한 log파일}"
start_position => "beginning"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["localhost:9200"]
index => "wardstudylog"
}
}
path => "{지정한 log파일}" 의\ => / 로 바꿔주어야 한다!index index의 문제가 생기면, index => "wardstudylog" 이름을 새로 지정해주면 해결된다.1) elasticSearch
이렇게 지정한 이후에 elasticSearch url에서 _cat/indices로 확인할 수 있다.

2) Kibana
menagment > create index > index => "wardstudylog" 에서 wardstudylog로 인덱스 등록
Discover로 확인

위 사진처럼 logstash.conf에서 path설정에서 연동한 log파일이 보여진다!
여기서 쉽게 search도 되서 키워드를 찾아 검색할 수 있다!
실제 어플리케이션이 런할 때 콘솔 로그와 비교해보았다. 같은 시간대의 그 로그와 같다!
