본문 바로가기
Data Engineering/ElasticSearch, Kibana, Logstash

AWS EC2에서 Logstash 연결 하기

by 올커 2024. 5. 19.

AWS EC2에서 Logstash 연결 하기

  본 포스팅은 AWS EC2에서 Elastic Search, Kibana가 이미 연결되어 있으며,

  Logstash 기본 Setting과 filebeat가 설 완료된 상태를 가정하여 작성되었습니다.

logstash는 Local에서 메시지를 전송할 수 있지만, 본 포스팅에서는 서버를 셋팅하는 방식을 정리하였습니다.

 

1) 먼저 AWS 인스턴스를 하나 더 생성합니다. 인스턴스 이름은 logstash-01로 합니다.

  : 현재까지는 AWS 인스턴스가 elastic-01, elastic-02,  elastic-03 생성되어 있으며,

   각 인스턴스에는 elastic search가 설치되어 있고, elastic-01에는 kibana가 설치되어 연결되어 있습니다.

 

2) 터미널에서 logstash-01 서버와 연결합니다.

   해당 인스턴스에 Logstash와 filebeat를 설치합니다.

 

  (1) Logstash 설치

############ Logstash 설치 ############ 
# wget + 복사한 링크를 사용해 다운로드
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.2-linux-x86_64.tar.gz

# 압축 풀기
tar xvfz logstash-7.10.2-linux-x86_64.tar.gz
# bin/logstash 를 실행해서 잘 설치가 되었는지(local에서 실행했을 때와 동일한 에러가 나오는지) 확인

 

 

  (2) Filebeat설치

############ Filebeat 설치 ############ 
# wget + 복사한 링크를 사용해 다운로드
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.2-linux-x86_64.tar.gz

# 압축 풀기
tar xfz filebeat-7.10.2-linux-x86_64.tar.gz

 

  (3) Sample Test

# 경로 이동
cd filebeat-7.10.2-linux-x86_64/

# 로그 파일(샘플 데이터)을 받을 경로를 생성
mkdir logs
cd logs

# apache_logs(샘플 데이터) 다운로드
wget https://raw.githubusercontent.com/elastic/examples/master/Common%20Data%20Formats/apache_logs/apache_logs

# 현재 경로 확인
pwd
### 결과 복사 : /home/ubuntu/filebeat-7.10.2-linux-x86_64/logs
# 이전 단계로 경로 이동
cd ..

# filebeat 설정하기
vi filebeat.yml

#################
filebeat inputs:
 - type: log 
   enabled: true      # (false에서 true로 변경)
 
 ...
 
   paths:      # path 아래의 경로로 설정
     - /home/ubuntu/filebeat-7.10.2-linux-x86_64/logs/apache_logs
   
 ...
 #output.elasticsearch: 
   # Array of hosts to connect to. 
   #hosts: ["localhost:9200"]    # 외부 서버로 연결 필요시 변경 ipv4
   ...
   #username: "elastic" 
   #password: "changeme"
   
# ------------------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

 

  (3) beats.conf를 활용해서 logstash 접속

bin/logstash -f beats.conf

 

  (4) 파일비트 잘 연결되었는지 체크

# 권한 설정
chmod 700 filebeat    
chmod go-w /home/ubuntu/filebeat-7.10.2-linux-x86_64/filebeat.yml

# 파일비트 실행 (아래 명령어 3번정도 하면 Logstash 콘솔에 출력이 됨)
./filebeat -e

# kibana dev tool에 가서 아래 명령어를 통해 apache.logstash-<yyyy.mm.dd> 파일을 찾고 이름 복사
GET _cat/indices

# 아래 명령어를 통해 입력된 내용 확인
get apache.logstash-2024.05.18/_search
반응형

댓글