안녕하세요 맥썸입니다!
이번 포스팅은 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에 연결
'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 |
댓글