본문 바로가기
개발/Elastic Stack

Elastic Stack HelloWorld(Elastic Cloud, EC2 filebeat설치)

by 궁즉변 변즉통 통즉구 2022. 3. 13.
반응형

Elastic Stack

- Elastic사에서 제공하는 로그관리 오픈소스 제품들의 모음 

  1. Beats
    - 다양한 종류의 데이터를 Logstash, Elasticsearch로 보낼 수 있는 데이터 수집기
    - Metricbeat(시스템 지표), Filebeat(로그 파일), Packetbeat(네트워크 데이터)
  2. Logstash
    - Elasticsearch로 데이터 전송 전 가공하는 역할
    - ex. Elasticsearch 형식에 맞게 변환, 개인정보 등 민감 데이터 삭제, IP주소 기반으로 지역정보 추가 등
  3. Elasticsearch
    - Apache Lucene 검색 엔진 기반 데이터 저장, 인덱싱, 데이터 검색, REST API 제공 
  4. Kibana
    - 데이터 시각화(대시보드 등)

 

Elastic Cloud  테스트

  • Elastic Cloud는 Elastic에서 제공하는 SaaS 서비스
  • AWS, GCP 퍼블릭 클라우드 플랫폼 연계 지원
  • 2주간 체험기간으로 무료로 테스트 가능

 

1. Elastic Cloud 계정 생성

 

- 다음 링크로 접속해서 https://www.elastic.co/kr/elastic-stack/ '무료 체험판 사용 시작'

- 이메일, 비밀번호 입력하고 'Start free trial' 버튼 클릭

 

- deployment 이름 "hello"로 입력하고 생성

 

- deployment 구성 진행하고 하단에 Username, Password 나오는데 별도 저장해두거나 Download로 csv파일 다운로드 받아놓기,

조금 기다렸다가 우측 상단에 'Continue' 버튼 활성화 되면 클릭

- 다음 화면 나오면 아무거나 클릭하고 메인 화면으로 이동

 

- 메인 화면의 좌측 상단 메뉴에서 'Manage this deployment' 클릭해서 deployment 관리화면으로 이동

 

- 화면 중간쯤에 [Cloud ID] 확인 및 복사해놓기

 

2. Filebeat 설치 및 구성

 

- AWS EC2에 Filebeat 설치

# filebeat 설치
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.16.2-x86_64.rpm
sudo rpm -vi ./filebeat-oss-7.16.2-x86_64.rpm

# nginx 모듈 활성화
sudo filebeat modules enable nginx

# 활성화된 모듈 확인
sudo filebeat modules list

* filebeat에서는 자주 사용되는 nginx, Apache 등에 대해 각각의 로그 형식의 모듈을 지원 

 

- Nginx 샘플 Log 파일 다운로드(Elastic에서 example로 nginx 로그 파일 제공 함)

# 다운로드 디렉토리 생성
mkdir nginx-sample-log
cd nginx-sample-log

# 로그파일 다운로드
wget https://raw.githubusercontent.com/elastic/examples/master/Common%20Data%20Formats/nginx_logs/nginx_logs

 

- filebeat 설정 파일 수정

sudo vi /etc/filebeat/filebeat.yml

* [filebeat.inputs] 일반적인 로그 파일들의 경우 이부분을 활성화해서 사용하지만, 지금은 filebeat의 nginx 모듈을 사용할 것임으로 false로 둠

 

* yml파일의 'Elastic Cloud' 부분에서 위에서 생성한 [cloud.id], [cloud.auth] 입력, cloud.auth형식은 'username:password' 형식

 

- nginx 모듈 설정 파일 수정

sudo vi /etc/filebeat/modules.d/nginx.yml

* 다운로드 받은 샘플로그가 access logs만 있어서 [access]항목만 true로 활성화하고, [var.paths] 에 로그파일 경로를 설정

 

- Filebeat가 지금까지 변경한 설정들에 대한 setup 진행

sudo filebeat setup - e

 

- filebeat 실행

sudo service filebeat start

 

* (참고) 브라우저에서 등록된 로그 수 확인 방법

- deployment관리 화면에서 [Elasticsearch] 부분의 'Copy endpoint' 클릭해서 url 복사

- 복사한 url에 뒤에 'filebeat-*/_count' 포함해서 브라우저에서 접속하면 등록된 로그 count 간단히 확인 가능(filebeat 정상 실행 확인 가능)

https://hello-xxxxx.xxxxxxxxxxx.gcp.cloud.es.io:9243/filebeat-*/_count

 

 

3. Kibana를 통한 조회

- Elastic Cloud에서 좌측 메뉴 Analytics > Discover 선택

 

- 날짜 변경 해서 검색(nginx 로그샘플이 2015년 로그이기때문)

 

- Elastic Cloud에서 좌측 메뉴 Analytics > Dashboard 선택

 

- 미리 제공해주는 Dashboard들 중 nginx로 검색해서 제일 상단의 결과 선택(오늘쪽 Action 버튼 클릭) 

- Dashboard 확인(내용이 안나오면 날짜 변경)

 

 

반응형

댓글