본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] ELK 구성

by BTC_맥썸 2022. 7. 23.

안녕하세요 맥썸입니다!

이번 포스팅은 ELK 의 간단한 개념과 구성을 소개 시켜드리고자 합니다.

 

 

ELK; ElasticSearch Logstash Kafka

즉 Log Collection으로 데이터화를 의미합니다.

 

 

 순서

1. Kafka를 통해 log 수집

2. logstash를 통해 데이터 가공 및 변환

3. ES를 통해 데이터 정재 후 대시보드(kibana)에 출력

 

ELK는 본 순서에서 Kafka를 통해 Log를 수집하는 용도 이지만 Test 환경을 위해 경량화된 데이터는 Filebeat를 사용하여 진행하도록 하겠습니다.

Kafka 이외에도 Filebeat, SQS, AWS Firehose와 같이 다른 방법으로도 로그를 수집 할 수 있습니다.

아래 사항은 Filebeat에 관한 간략한 개념을 설명 하였습니다.

 

🔷 Filebeat 사용하여 Log 수집

Filebeat: 로그 데이터 전달, 중앙 집중화하기 위한 경량 전달자

 

  • 서버에 에이전트로 설치된 Filebeat는 사용자가 지정한 log file이나 위치를 모니터링하고 log event를 수집하여 인덱싱을 위해 Elasticsearch또는 Logstatsh로 전달합니다.
  • 순서
    • input: log data를 바라보는 하나 이상의 inputs를 가짐
    • harvester: log file에서 Event(데이터발생) 발생 시 데이터 수확
    • libbeat: Event 집계하고 집계된 Data를 Filebeat 설정에 구성된 출력으로 데이터 보냄
    • output: log date 전달

 

ELK 구성

Step 1. Filebeat 설치 ;경량된 데이터 수집

  • 인스턴스 생성
  • Filebeat 버전의 RPM 다운로드
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.16.2-x86_64.rpm
  • Filebeat RPM 파일 설치 확인 및 Filebeat 상태 확인
rpm -qa | grep filebeat
systemctl status filebeat
  • /etc/filebeat 구성 파일 확인 (yaml 구성 파일 확인)
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log  --> log가 쌓이는 경로
 
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
 
setup.template.settings:
 
index.number_of_shards: 1
  index.codec:
best_compression
 
#output.elasticsearch:
#hosts: ["https://domain-endpoint:443"]
#protocol: "https"
 
output.logstash:
  # The Logstash hosts
  hosts: [“Logstash-EC2-InstanceIP:5044"]
 
setup.ilm.enabled: false 
ilm.enabled: false
  • filebeat 실행
systemctl restart filebeat

 

Step 2. Logstash 설치 ;데이터 가공 및 변환_input > filter > output

  • 인스턴스 생성
  • Logstash 버전의 RPM 다운로드
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.16.2-x86_64.rpm
  • Logstash RPM 파일 설치 하기 전! EC2 인스턴스에 Java 또는 OpenJDK 설치
    • 설치하는 이유: Logstash를 실행하려면 Java가 필요함 (Java버전 8 =Open JDK 1.8) 이용
yum install java-1.8.0-*
  • Logstash RPM 파일 설치
rpm -ivh logstash-oss-7.16.2-x86_64.rpm
  • /etc/logstash 구성 파일 확인 —> 파일을 만들어서 conf.d로 환경 구성 복사해야 합니다.
    •  conf.d 가 구성 파일을 실행시킴
vi /etc/logstash/logstash.conf

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["https://domain-endpoint:443"] 
    ssl => true
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    user => "my-username"
    password => "my-password"
    ilm_enabled => false
  }
}
  • Logstash 실행
cp /etc/logstash/logstash.conf /etc/logstash/conf.d/

systemctl restart logstash

 

Step 3. ElasticSearch ;데이터 정재 후 kibana를 통한 시각화

AWS Opensearch를 이용한 ES를 생성 후 kibana를 통해 대시보드에 출력하여 시각화하여 log검색을 하여 출력을 할 수 있습니다.

 

 

참고URL: Filebeat 및 Logstash를 사용하여 Amazon OpenSearch Service에 연결

 

Filebeat 및 Logstash를 사용하여 Amazon OpenSearch Service에 연결

Logstash의 401 권한 없음(401 Unauthorized) 오류는 OpenSearch Service 도메인이 FGAC(세분화된 액세스 제어) 또는 Amazon Cognito로 보호된다는 것을 나타냅니다. FGAC에는 사용자 또는 역할의 서명된 요청이 필요

aws.amazon.com

 

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

AWS AMI hands on  (0) 2022.07.26
[AWS] Security Group  (0) 2022.07.25
[AWS] 인터넷 게이트웨이(Internet Gateway)  (0) 2022.07.22
[AWS] AMI  (0) 2022.07.22
AWS Elasticache Redis 예상비용  (0) 2022.07.21

댓글