3. LOGSTASH

  • 애플리케이션의 일지를 처리하고, Elastic Search로 전송하는데 사용된다.
  • 로그스태시가 받는 데이터는 이벤트로 처리된다.
    • 로그 파일 엔트리, E-Commerce Orders 고객, 채팅 메세지 등으로 처리된다.
    • 처리 후 하나 이상의 목적으로 보내진다.
    • Elastic Search, Kafka, Message Queue, Email Message, HTTP와 같은 EndPoint로 연결된다.
    • 로그스태시의 파이프라인은 3단계로 구성된다.
      • 입력, 필터, 출력
      • 각 단계마다 플러그인을 활용할 수 있다.
      • 입력 플러그인은 파일이 될 수 있다.
        • 로그스태시가 주어진 파일에서 이벤트를 읽는다는 것이다.
        • HTTP를 통한 LogStash에 이벤트를 보낼 수 있다.
        • 관계형 데이터베이스에서 행을 검색하거나 카프카 큐를 들을 수도 있다.
        • 입력 플러그인인 많기 떄문에 필요한 것을 찾기 쉽다.
        • 입력 플러그인은 로그스태시가 이벤트를 수시하는 방식
    • CSV, XML, JSON을 Parse 할 수 있다.
      • 필터 플러그인은 로그스태시가 처리하는 방식이다.
      • IP 주소를 찾아보고 위치 정보를 해독하는 등의 데이터 풍부화 작업도 할 수 있다.
    • 아웃풋 플러그인은 프로세스 이벤트를 보내는 곳이다.
      • 보통 이런 곳을 저장소라고 부른다.
    간단하게 로그스태시는 하나 이상의 입력값에서 이벤트를 받아서 처리하고, 하나 이상의 보관소로 보낸다. 원한다면 동일한 로그스태시 인스턴스에서 실행되는 파이프라인을 여러개 만들 수 있다.
    • 로그스태시의 파이프 라인은 JSON과 유사한 독점 마크 포맷으로 정의된다.
    • 마크업 언어만이 사용가능한게 아니라 조건문을 추가하고 동적으로 처리할 수 있다.
    • 접속 라인을 한 줄씩 읽고 각 라인을 이벤트로 처리하라고 할 수 있다.
    • 파일이라는 입력 플러그인을 사용하면 쉽게 사용할 수 있다. 해당 작업은 비트라는 더 적합한 유용한 도구가 존재한다.
    • 로그 스태시는 줄만 문자열로 받는다. 이 문자열을 분석해야하는데, 비구조적인 데이터로 구성해야 한다. grok 패턴이라는걸 작성해서 (정규식 같은것) 텍스트 조각에 일치시켜서 필드에 저장한다.
  • 로그 스태시 파이프 라인
  • 로그 스태시 실행 순서