관리 메뉴

Information Security

로그스태시/파일비트 개요 본문

ELK (ElasticSearch, Logstash, Kibana)

로그스태시/파일비트 개요

HackingPractice 2021. 3. 20. 12:05

로그 스태시 개요

  • 오픈 소스 서버 측 데이터 처리로 파이프 라인
  • 다양한 소스에서 동시에 데이터를 수집하여 변환
  • 그다음 자주 사용하는 엘라스틱서치에 전달

로그 스태시의 필터

모든 형태, 크기, 소스의 데이터 수집
데이터는 여러 시스템에 다양한 형태로 보관된 경우가 많습니다. Logstash는 일반적인 다수의 소스에서 동시에 이벤트를 가져오는 다양한 입력을 지원합니다. 로그, 메트릭, 웹 애플리케이션, 데이터 저장소 및 다양한 AWS 서비스에서 모두 지속적으로 스트리밍 되는 방식으로 손쉽게 수집할 수 있습니다.

 

로그 스태시의 필터

데이터 이동 과정에서의 구문 분석 및 변환
Logstash 필터는 데이터가 소스에서 저장소로 이동하는 과정에서 각 이벤트를 구문 분석하고 명명된 필드를 식별하여 구조를 구축하며, 이를 공통 형식으로 변환 통합하여 분석을 더욱 강력하게 만드는 동시에 비즈니스 가치를 높여줍니다.

Logstash는 형식이나 복잡성에 관계없이 다음과 같이 데이터를 동적으로 변환하고 준비합니다.

 

  • grok을 통해 비정형 데이터에서 구조 도출
  • IP 주소에서 위치 좌표 해독
  • PII 데이터의 익명화, 민감한 정보 필드 완전 제외
  • 데이터 소스나 형태, 스키마의 용이한 처리
  • 풍부한 필터 라이브러리와 다재다능한 Elastic Common Schema를 갖추고 있어 가능성이 무궁무진합니다.

 

스태시를 선택하여 데이터 전송
Elasticsearch는 검색과 분석의 새로운 세계를 열어주는 시스템이지만, 그것만이 유일한 선택지는 아닙니다.

Logstash는 원하는 곳으로 데이터를 라우팅 할 수 있는 다양한 출력을 지원하기 때문에 여러 저장소로 데이터를 다운 스트림 하는 유연성을 확보할 수 있습니다.

 

Input: Logstash로 데이터를 가져옴

  • file: UNIX 명령 tail -0F와 매우 비슷하게 파일 시스템의 파일에서 읽음
  • syslog: RFC 3164 형식에 따라 syslog 메시지 및 구문 분석을 위해 잘 알려진 포트 514를 수신
  • redis: redis 채널과 redis 목록을 모두 사용하여 redis 서버에서 읽음
  • beat: Filebeat에서 보낸 이벤트를 처리합니다

Filter: Logstash 파이프 라인의 중간 처리 장치

  • grok: 임의의 텍스트를 구성 임의의 텍스트를 구성 현재 구조화되지 않은 로그 데이터를 구문 분석
  • mutate: 이벤트 필드에서 일반적인 변환을 수행합니다 이벤트의 이 및 데이터 수정 및 제거
  • drop: 이벤트를 완전히 삭제
  • clone: 이벤트를 복사
  • geoip: IP 주소의 지리적 위치에 대한 정보를 추가 (Kibana의 지도 차트로 사용)

output: 최종 단계로 이벤트는 여러 출력 사용 가능

  • elasticsearch Elasticsearch에 데이터 전송 데이터를 효율적이고 편리하며 쉽게 쿼리 형식으로 저장
  • file: 이벤트 데이터를 디스크의 파일로 저장
  • graphite: 이벤트 데이터를 Graphite에 전송 이 데이터는 통계를 저장하고 그래프로 나타내기 위한
    널리 사용되는 오픈 소스 도구 (http :://graphite readthedocs io/ko/latest/)
  • statsd: statsd에 이벤트 데이터를 전송 카운터 및 타이머와 같은 통계를 수신하고 UDP를 통해
    전송되며 하나 이상의 플러그 가능한 백엔드 서비스에 집계를 보내는 서비스

Codec: 코덱은 기본적으로 입력 또는 출력의 일부로 작동할 수 있는 스트림 필터

  • json: JSON 형식의 데이터를 인코딩하거나 디코딩
  • multiline: 자바 예외 및 스택 추적 메시지와 같은 여러 줄 텍스트 이벤트를 단일 이벤트로 병합

input: file

  • https://www elastic co/guide/en/logstash/current/plugins-inputs-file.html
  • 파일에서 이벤트를 스트리밍
  • 파일에 추가되는 내용을 계속 탐지하나 선택적으로 읽어 들임
  • 파일 입력 예제

input: beats

  • https :://www elastic co/guide/en/logstash/current/plugins-inputs-file.html
  • 파일 비트와 연동하여 사용
  • 파일 비트를 통해서 로그를 받기 위해 5044 서버를 열어서 대기

filter: grok

  • https :://www elastic co/guide/en/logstash/current/plugins filters grok html
  • 이벤트를 원하는 형식으로 로그로 저장

filter: geoip

  • https :://www elastic co/guide/en/logstash/current/plugins filters geoip html
  • 이벤트의 일부를 geoip로 활용할 수 있도록 변환

output: elasticsearch

  • https :://www elastic co/guide/en/logstash/current/plugins outputs-elasticsearch.html
  • HTTP 프로토콜만 사용
  • hosts: 엘라스틱서치 서버가 어디에 있는지 정의 가능
  • manage_templet: logstash --%{+YYYY MM dd} 인덱스 이름으로 정의하고 기본적인 매핑을 지원
    이 사용 옵션 여부를 true, false로 전달 기본값 true)
  • index 사용자가 원하는 형태의 인덱스 이름이 있다면 그 형태를 지정

파일 비트 (https :://www elastic co/kr/products/beats/filebeat)

  • 일반적인 형식의 로그 데이터들을 수집 파싱 그리고 시각화를 단일 명령 사용 가능
  • 가능한 내부 모듈 ( NGINX, System, 및 MySQL) 들을 제공
  • 시스템의 디폴트 설정을 기반으로 Elasticsearch의 Ingest Node 파이프라인과 Kibana 대시보드를
    자동으로 생성

'ELK (ElasticSearch, Logstash, Kibana)' 카테고리의 다른 글

Logstash, Filebeat 설정  (0) 2021.03.28
Kibana 시각화  (0) 2021.03.14
Kibana Sample Data  (0) 2021.03.07
Kibana 시각화 준비하기  (0) 2021.03.06
검색 API  (0) 2021.02.17