아파치 로그 모니터링 시스템 구축하기 - Logstash (ELK)

2024. 4. 26. 20:18·ELK

이전 글

아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)

아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)

Logstash란?

실시간 파이프라인 기능을 갖춘 오픈소스 데이터 수집 엔진이다. 수집한 데이터를 정제하고 저장소에 전달한다.

로그스태시(Logstash) 이벤트 처리 파이프라인은 입력(input), 필터(filter), 출력(output)의 실행을 조율한다.

 

Logstash 파이프라인의 각 입력 단계는 고유한 thread에서 실행된다. Input은 메모리 또는 디스크에 위치한 중앙큐에 이벤트를 기록한다. 각 파이프라인 worker thread는 이 큐에서 일괄 이벤트를 가져와 구성된 필터를 통해 이벤트 일괄 처리를 실행한 다음, 필터된 이벤트를 Output으로 전달한다.

 

파이프라인 단계(입력 → 필터 및 필터 → 출력) 사이에서 이벤트를 버퍼링하기 위해 Memory queue를 이용한다. Memory queue는 데이터를 메모리에 일시적으로 보관하는 구조를 말한다. Memory queue는 , 디스크에 저장하는 것에 비해 처리 속도가 빠르고, 일시적인 데이터를 저장하는데 도움된다. 하지만 만약 Logstash가 정상적으로 종료되지 않았을 때 (에러 발생 시) 메모리에 저장된 이벤트가 손실될 수 있다. 이를 방지하기 위해 이벤트를 디스크에 저장하도록 설정할 수 있다.(Persistent queues)

Logstash 구성

  1. Filebeat로부터 로그 데이터 Input 받기
  2. 데이터 정제하기
  3. elastic search에 전달하기

 

Logstash 설치

curl -L -O <https://artifacts.elastic.co/downloads/logstash/logstash-8.13.2-linux-x86_64.tar.gz>
tar xzvf logstash-8.13.2-linux-x86_64.tar.gz

 

Structure of a pipeline

아래의 구조로 conf 파일에 pipeline을 정의할 수 있다.

# This is a comment. You should use comments to describe
# parts of your configuration.
input {
  ...
}

filter {
  ...
}

output {
  ...
}

 

pipeline.conf 파일 생성

  • Input : filebeat에서 로그 데이터를 입력받기 때문에, 관련된 설정을 추가해준다.
  • Output : 입력받은 데이터를 출력하고, Elasticsearch로 전달한다.
    • hosts : Elasticsearch 에 전달할 hosts들
    • index : Elastic search에 로그를 저장할 인덱스
    • ssl_enabled : Elastic search와 통신할 때, SSL을 적용해뒀기 때문에 true로 설정
    • ssl_certificate_authorities : SSL 보안 적용시 필요한 인증서 파일
input {
    beats {
        port => "5044"
    }
}

output {
    stdout { codec => rubydebug }
    elasticsearch{
        hosts => ["<https://localhost:9200>"]
        index => "인덱스"
        ssl_enabled => true
        ssl_certificate_authorities => 'ca.pem'
        user => '유저'
        password => '비밀번호'
    }
}

 

실행

bin/logstash -f ./config/pipeline.conf --config.reload.automatic
  • logstash 프로그램을 실행
  • -f ./config/pipeline.conf : 구성 파일(pipeline.conf) 경로 지정
  • --config.reload.automatic : 설정 파일의 변경 사항을 자동으로 감지하여 다시로드

 

Elastic search 조회

해당 인덱스에 정상적으로 로그 데이터가 들어갔는지 확인하기 위해 조회한다.

curl -X GET -u 유저:비밀번호 "<https://localhost:9200/인덱스/_search?q=*&pretty>" --cacert ca.pem

 

 

+) filter 적용
https://gani-dev.tistory.com/121

'ELK' 카테고리의 다른 글

아파치 로그 모니터링 시스템 구축하기 - Elasticsearch(ELK)  (1) 2024.04.26
아파치 로그 모니터링 시스템 구축하기 - Logstash filter (ELK)  (1) 2024.04.26
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)  (0) 2024.04.25
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)  (0) 2024.04.25
'ELK' 카테고리의 다른 글
  • 아파치 로그 모니터링 시스템 구축하기 - Elasticsearch(ELK)
  • 아파치 로그 모니터링 시스템 구축하기 - Logstash filter (ELK)
  • 아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)
  • 아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)
gani+
gani+
꾸준히 기록할 수 있는 사람이 되자 !
  • gani+
    Gani_Dev :)
    gani+
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • 당장 프로젝트 (2)
        • 트러블슈팅 (0)
      • 댕댕어디가 프로젝트 (11)
        • 트러블슈팅 (3)
        • MSA (8)
      • 개발일지 (2)
      • BOOK (12)
        • SQL 레벨업 (10)
      • 프로젝트 (0)
      • ELK (5)
      • 알고리즘 (9)
      • CS (2)
        • 디자인패턴 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SW마에스트로
    후기
    다익스트라
    백준4963
    14기
    순차탐색
    해쉬
    다이나믹프로그래밍
    소마
    4963
    정렬
    4673
    dfs
    백준
    알고리즘
    완전탐색
    섬의개수
    최단경로
    이진탐색
    이것이코딩테스트다
    SWMaestro14
    이것이 코딩 테스트다
    DP
    플로이드워셔
    9095
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gani+
아파치 로그 모니터링 시스템 구축하기 - Logstash (ELK)
상단으로

티스토리툴바