ELK란?

"ELK"는 Elasticsearch, Logstash 및 Kibana, 이 오픈 소스 프로젝트 세 개의 머리글자입니다. 

Elasticsearch는 검색 및 분석 엔진입니다. Logstash는 여러 소스에서 동시에 데이터를 수집하여 변환한 후 Elasticsearch 같은 “stash”로 전송하는 서버 사이드 데이터 처리 파이프라인입니다. 

Kibana는 사용자가 Elasticsearch에서 차트와 그래프를 이용해 데이터를 시각화할 수 있게 해줍니다.

 

https://www.elastic.co/kr/what-is/elk-stack

 

ELK Stack: Elasticsearch, Logstash, Kibana

ELK Stack이란 무엇인가요? ELK Stack은 널리 알려진 세 개의 오픈 소스 프로젝트인 E=Elasticsearch(Lucene 기반), L=Logstash, K=Kibana의 머리글자를 합친 것입니다. Beats가 추가되어 이제 ELK Stack을 Elastic Stack이

www.elastic.co

 

설치 환경

◾ AWS EC2, Ubuntu Server 20.04 LTS (64비트 x86)

ELK 5.4.3 버전

 

설치 과정

◾ 자바 설치

$sudo apt update && sudo apt install openjdk-8-jdk -y
$javac -version
javac 1.8.0_292

$which javac
/usr/bin/javac

 

◾ 환경변수 설정

$readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac

$sudo vi /etc/profile
  unset i
fi
...
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$HOME:$JAVA_HOME/bin
...

$source /etc/profile

 

◾ ELK 설치파일 다운로드

$cd ~
$wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.deb
$wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.3.deb
$wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-amd64.deb
$wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.3-amd64.deb

 

◾ 설치

$sudo dpkg -i elasticsearch-5.4.3.deb
$sudo dpkg -i logstash-5.4.3.deb
$sudo dpkg -i kibana-5.4.3-amd64.deb
$sudo dpkg -i filebeat-5.4.3-amd64.deb​

dpkg lock에러시

더보기

$sudo rm /var/lib/apt/lists/lock

$sudo rm /var/cache/apt/archives/lock

$sudo rm /var/lib/dpkg/lock*

$sudo dpkg --configure -a

$sudo apt update

출처 : https://enant.tistory.com/18

 

◾ elasticsearch 설정 파일 수정 

$sudo vi /etc/elasticsearch/elasticsearch.yml
...
network.host: 0.0.0.0 #원격 접속 허용
...

 

◾ kibana 설정 파일 수정

$sudo vi /etc/kibana/kibana.yml
...
server.host 0.0.0.0
...

 

fileabeat 설정 파일 수정

$sudo vi /etc/filebeat/filebeat.yml
...
- input_type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
	- /var/log/syslog        #전반적인 시스템 로그   
	- /var/log/apache2/*.log #아파치 웹 로그를 elasticsearch에게 전달
...

 

◾ ELK 실행 및 확인

$sudo systemctl start elasticsearch
$sudo systemctl start logstash
$sudo systemctl start kibana
$sudo systemctl start filebeat

$sudo systemctl enable elasticsearch #재부팅시 자동 실행
$sudo systemctl enable logstash
$sudo systemctl enable kibana
$sudo systemctl enable filebeat

$sudo systemctl status elasticsearch
$sudo systemctl status logstash
$sudo systemctl status kibana
$sudo systemctl status filebeat

 

웹서버 로그 시각화를 위해 Apache2 설치 및 실행

$sudo apt-get install apache2 -y

$sudo systemctl start apache2
$sudo systemctl enable apache2
$sudo systemctl status apache2

 

결과

◾ filebeat가 elasticsearch에게 로그를 전달해주는 지 확인

http://[AWS IP]:9200/_cat/indices?v

 

 

kibana에 접속해서 결과 확인

http://[AWS IP]:5601/

AWS 우분투에 ELK Stack 설치 끝!

 

마무리

리눅스 시스템 내에서 동작하는 서비스들의 로그 저장 폴더를 지정해주면 다음과 같이 json형식으로 로그를 받아 시각화 시킬수있다!

 

 

참조

+ Recent posts