사전지식-로드밸런싱
로드밸런싱은 서버의 부하를 줄이기 위해 트래픽을 분산시키는 방법, 이역할을 로드밸런서(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 가 동작하지 않아 삽질을 한 끝에 결국 다지웠고 도커로 구축해보려한다.
'꿀팁!' 카테고리의 다른 글
ELK공부2(Docker-Compose를 이용한 구축) (0) | 2022.01.11 |
---|---|
회사의 윈도우용 SSL 인증서를 ubuntu에 설치하기 (4) | 2022.01.05 |
우분투20.03 gnome shell extension 작동안할때 (0) | 2021.12.15 |
gdb peda에서 bss영역 plt 주소 구하기 (0) | 2021.12.08 |
docker를 이용한 pwnable 환경 세팅하기 (0) | 2021.12.07 |