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도 되서 키워드를 찾아 검색할 수 있다!
실제 어플리케이션이 런할 때 콘솔 로그와 비교해보았다. 같은 시간대의 그 로그와 같다!