엘라스틱서치 수집기, 비츠(Beats) 이해하기

    비츠(Beats)는 컴퓨터, 네트워크, 앱과 같은 데이터를 전송하는 경량 데이터 전달자이다. Beats인 이유는 비츠라는 어플리케이션 하나로 구성된 것이 아니라 상황에 맞게 다양한 비트(Beat)가 있기 때문이다.

     

    엘라스틱서치 수집기, 비츠 이해하기 메인 이미지
    [ELK Stack] 엘라스틱서치 수집기, 비츠(Beats) 이해하기


    로그스태시(Logstash)와 비교

    엘라스틱서치에 데이터를 전달해주는 역할로는 로그스태시(Logstash)도 존재하는데 로그스태시는 다양한 소스에서 데이터를 수집하는 커다란 데이터 전송 솔루션이라 본다면 비츠는 로그스태시에 비해 차지하는 공간이 작고, 더 적은 리소스를 사용한다. 

     

    게다가 비츠는 수집해야 하는 서버에 에이전트를 설치하는 식이라 목적은 같지만 사용하는 방식이 완전 다르다 할 수 있다. 아래는 엘라스틱서치에서 설명하는 로그스태시와 비츠의 비교내용이다.

    Beats는 서버에 에이전트로 설치하여 특정 유형의 운영 데이터를 Elasticsearch로 보내는 경량 데이터 배송업체입니다. Beats는 차지하는 공간이 작고 Logstash보다 적은 시스템 리소스를 사용합니다. Logstash는 더 큰 공간을 차지하지만 다양한 소스에서 데이터를 수집, 강화 및 변환하기 위한 광범위한 입력, 필터 및 출력 플러그인을 제공합니다.

     

    비츠 구성

    비츠 구성도
    비츠 구성도

     

    위 비츠의 구성도를 보면 파일비트(Filebeat), 메트릭비트(Metricbeat), 패킷비트(Packetbeat), 윈로그비트(Winlogbeat)가 각자 수집한 데이터를 엘라스틱서치에 전송한 다음 키바나는 엘라스틱서치에서 데이터를 가져와 데이터 시각화를 하는 것을 알 수 있다.

     

    libbeat

    libbeat 구성
    libbeat 구성

     

    비트는 libbeat라는 라이브러리를 이용하여 주요 비트 뿐만 아니라 나만의 다양한 비트들을 만들 수 있고, 오직 나만의 비트도 만들 수 있다. 

     

     

    주요 비트와 다양한 비트들

    주요 비트는 엘라스틱 내부의 다운로드 페이지에서 정식으로 릴리즈 되는 것을 꼽았습니다.

     

    주요비트 목록

    • 윈로그비트(Winlogbeat)
    • 패킷비트(Packetbeat) 
    • 메트릭비트(Metricbeat)
    • 하트비트(Heartbeat)
    • 펑션비트(Functionbeat)
    • 파일비트(Filebeat)

     

    그외 다양한 비트들 [1]

    비트 비트 내용
    amazonbeat 지정된 Amazon 제품에서 데이터를 읽습니다.
    apachebeat Apache HTTPD 서버 상태에서 상태를 읽습니다.
    apexbeat APEX 툴킷을 통해 Java 응용프로그램에서 구성 가능한 상황별 데이터 및 메트릭을 추출합니다.
    browserbeat 브라우저 기록(Chrome, Firefox 및 Safari)을 읽고 Elastic 출력으로 전송합니다.
    cborbeat cbor 인코딩된 파일(특히 로그 파일)에서 읽습니다. 추가: CBOR 인코딩 디코더
    cloudflarebeat Cloudflare Enterprise 로그 공유 API에서 로그 항목을 인덱싱합니다.
    cloudfrontbeat Amazon Web Services CloudFront에서 로그 이벤트를 읽습니다.
    discobeat 디스코드에서 메세지를 읽고 엘라스틱서치에서 인덱싱합니다.
    dockbeat docker 컨테이너 통계를 읽고 엘라스틱서치에서 인덱싱합니다.
    elasticbeat 엘라스틱서치 클러스터에서 상태를 읽고 엘라스틱서치에서 인덱싱합니다.
    etherbeat 이더리움 호환 블록체인에서 블록을 읽고 엘라스틱서치에 색인을 생성합니다.
    githubbeat 깃허브 레파지토리 활동을 쉽게 모니터링합니다.
    kafkabeat 카프카 토픽에서 데이터를 읽습니다
    krakenbeat 크라켄 암호화폐 거래소에서 각 거래에 대한 정보를 수집합니다.
    protologbeat UDP 또는 TCP를 통해 구조화 및 구조화되지 않은 로그를 허용합니다. syslog 메시지 또는 GELF 형식 메시지를 수신하는 데 사용할 수도 있습니다. (udplogbeat의 후속 제품으로 사용 예정)
    pubsubbeat Google Cloud Pub/Sub에서 데이터를 읽습니다
    redditbeat 하나 또는 여러 하위 레딧의 새로운 레딧 제출물을 수집합니다.
    rsbeat redis 느린 로그를 엘라스틱서치로 전송하고 키바나에서 분석합니다.
    servicebeat 엘라스틱서치에 서비스 상태 보내기
    springbeat 액추에이터 모듈과 함께 실행 중인 스프링 부팅 응용 프로그램에서 상태 및 메트릭 데이터를 수집합니다.
    springboot2beat mircometer.io 메트릭 파사드를 활용하여 웹 채널을 통해 Spring Boot 2 웹 앱의 모든 메트릭 엔드포인트를 쿼리하고 누적합니다.
    terminalbeat 외부 명령을 실행하고 동일한 명령의 stdout을 Elasticsearch/Logstash로 전달합니다.
    twitterbeat 지정된 화면 이름에 대한 트윗을 읽습니다.

     

    참고자료

    [1] 나만의 Beat 만들기

     

    댓글

    Designed by JB FACTORY