AWS

AWS EC2 에 Logstash 7.15.2 설치 하고 elasticsearch연동 하기 [Amazon Linux 2 AMI (HVM) - Kernel 5.10]

뇌장하드 2022. 2. 10. 01:04

 

 

 

안녕하세요 

지난 포스트에 AWS OpenSearchService를 도전 하다가 Logstash연결이 어려워서 직접 ELK환경을 구현을 하기로 해서 포스팅을 해보겠습니다. 복습도 할겸 

 

먼저 AWS 에서 인스턴스를 생성해줍니다.

Logstash같은 경우에는 프리티어를 쓰면 elasticsearch에게 보낼때 서버가 죽어버려서 제대로 작동이 안되는것을 확인하고 T3.small(2코어 2Gb)를 선택해서 연결을 해보겠습니다.

 

 

쭉쭉쭉 디폴트 값으로 다 넘겨줍니다.

 

 

시작하기를 눌러주시면 인스턴스가 실행이 됩니다. 

T3.small같은 경우에는 프리티어가 적용이 안되니 과금에 유의 해주세요 잠깐 테스트 해보고 인스턴스 종료해주시는것을 추천합니다.

 

 

퍼블릭 아이피를 복사후에 터미널로 진입을 해줍니다. 

 

터미널 진입은 이곳 포스팅을 봐주세요 

 

터미널에 진입을 하면 다음 명령어를 적어주세요.

# 도커 설치 
sudo amazon-linux-extras install docker 

#sudo없이 docker 사용
sudo usermod -a -G docker ec2-user 

# 재부팅 
sudo reboot

# 도커 시작 
sudo service docker start

# 도커 이미지 다운로드 
sudo docker pull docker.elastic.co/logstash/logstash-oss:7.15.2 

# 도커 이미지 확인 
sudo docker images

# 폴더 생성 
mkdir pipeline 

# 폴더 이동 
cd pipeline 

# 설정파일 생성 
vi logstash.conf

input {
  tcp {
    port => 5000
    codec => json_lines 
  }
}
output {
 elasticsearch { 
  hosts => ["Elasticsearch Ip :9200"]  
  index => "spring%{+YYYY.MM.dd}"  
     } 
 stdout {
        codec => rubydebug
    }
}
# Logstash 실행 
docker run --name logstash -p 5000:5000 -p 5044:5044 -d -e LS_JAVA_OPTS="-Xms512M -Xmx512M -XX:ParallelGCThreads=1" -v ~/pipeline/:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash-oss:7.15.2 

# 로그 확인 
docker logs -f logstash

output에 host는 각자 구현한 엘라스틱 ip를 적어주시면 됩니다. 

 

ElasticSearch서버 만들기는 이곳을 참고해 주세요!

 

아니면 Logstash 서버 콘솔에서 확인만 해주고 싶으면 elastucsearch부분을 지우고 

 

input {
  tcp {
    port => 5000
    codec => json_lines 
  }
}
output {
 stdout {
        codec => rubydebug
    }
}

이와 같이 작성해주시면 스프링에서 오는 로그를 콘솔에서 확인이 가능합니다.

 

위와 같이 하면 문제 없이 Logstash 서버가 작동이 됩니다.

 

 

 

 

이와 같이 나오면 성공!