본문 바로가기

꿀팁!

ELK 공부

사전지식-로드밸런싱

로드밸런싱은 서버의 부하를 줄이기 위해 트래픽을 분산시키는 방법, 이역할을 로드밸런서(VIP-Virtual IP와함께 구성)가 수행한다.

 

VIP-서버들을 대표하는 가상의 IP이다. 클라이언트는 서버의 실제 IP로 접근하는것이 아닌 로드밸런서가 가지고있는 가상 IP로 요청한다. 로드밸런서는 설정된 분산 방법에 따라 각서버로 요청을 분산시킨다.

 

설정 된 분산방법->로드 밸런싱 알고리즘

라운드 로빈 방식-각서버를 순차적으로 선택하여 분산

가중치 라운드 로빈 방식-각 서버에 가중치를 할당하고 가중치 비율에 따라 요청을 분산시킨다.(A:3 B:7이면 분산 비율은 3:7)

IP 해싱방식-클라이언트의 IP를 해시처리하고 특정서버와 매핑해서 트래픽을 분산, 매핑하기에 클라이언트가 항상 동일한 서버로 연결됨

최소 연결방식-트래픽으로 인해 세션이 길어지는 경우 권장하는 방식으로 연결된 수가 가장 적은 서버를 선택하여 분산

최소 응답 시간 방식- 서버의 응답시간이 가장 짧은곳으로 분산

 

이용자가 많은 서버의 기준으로 하루에 약 5GB의 로그 생성

용량이 커서 grep명령어나 notepad++등으로 보기 힘듦 이럴때 효과적인것이 ELK인 것같다.

 

ELK(Elasticsearch+Logstash+Kibana)

Elasticsearch 설치

 

openjdk8설치

sudo apt install openjdk-8-jdk

 

설치과정

# 키 등록 tistory 필터링때문에 w   get 이안써짐 아래 명령어를 w get을 이용해 설치
-qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

# https package 설치
sudo apt-get install apt-transport-https

# repo 등록
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.listapt/sources.list.d/elastic-7.x.list'

# 아파치 설치
apt-get install apache2

# ES 설치
$ sudo apt-get install elasticsearch

# 부팅 시 실행 서비스로 등록
$ sudo systemctl enable elasticsearch.service

# 서비스 시작
$ sudo systemctl start elasticsearch.service

# 설정파일 변경
$ sudo vi /etc/elasticsearch/elasticsearch.yml
- network.host: 0.0.0.0
- discovery.seed_hosts: ["0.0.0.0"]

#서비스 재시작
$ sudo systemctl restart elasticsearch.service

Logstash 설치

# Logstash 설치
$ sudo apt-get install logstash

# 부팅 시 실행 서비스로 등록
$ sudo systemctl enable logstash.service

# 서비스 시작
$ sudo systemctl start logstash.service

기본포트 5044
역할 : 데이터 가공

기본포트 5044
역할 : 데이터 가공gud425

Beats 설치

$ sudo apt-get install filebeat

# 부팅 시 실행 서비스로 등록
$ sudo systemctl enable filebeat.service

# 서비스 시작
$ sudo systemctl start filebeat.service

# 사용가능한 모듈 확인
$ sudo filebeat modules list

# 아파치 모듈 사용 -안될시 sudo filebeat modules enable elasticsearch 입력
$ sudo filebeat modules enable apache

# 모듈  설정완료
$ sudo filebeat setup -e 

# log 경로 설정
 $ vi /etc/filebeat/modules.d/apache.yml
var.paths: ["/var/log/apache2/access.log"]
var.paths: ["/var/log/apache2/error.log"]

# Logstash 사용으로 설정
$ vi /etc/filebeat/filebeat.yml
- #output.elasticsearch:.
  #hosts: ["127.0.0.1:9200"]
- output.logstash:
  hosts: ["127.0.0.1:5044"]

# 서비스 재시작
$ sudo systemctl restart filebeat.service

 

Kibana설치

# Kibana 설치
$ sudo apt-get install kibana

# 부팅 시 실행 서비스로 등록
$ sudo systemctl enable kibana.service

# 서비스 시작
$ sudo systemctl start kibana.service

# 설정파일 변경
$ sudo vi /etc/kibana/kibana.yml
server.host: "0.0.0.0“
server.name: "my Kibana Server"
elasticsearch.hosts: ["http://localhost:9200"]

# 서비스 재시작
$ sudo systemctl restart kibana.service

기본포트 5601
역할 : View
접근 방법 : http://127.0.0.1:5061

 

는 설치했으나 버전을 안 맞춰줘서 elasticsearch.service 가 동작하지 않아 삽질을 한 끝에 결국 다지웠고 도커로 구축해보려한다.