경량 로그 수집기
Filebeat는 로그와 파일을 경량화된 방식으로 전달하고 중앙 집중화하여 작업을 보다 간편하게 만들어 주는 역할을 합니다.
- 모니터링하려는 각 시스템에 Filebeat 설치
- 수집할 로그 파일의 위치 명시
- 로그 데이터를 필드로 파싱하고 Elasticsearch로 전송
- Kibana에서 로그 데이터 시각화
파일비트(Filebeat)는 로그 데이터를 전달하고 중앙 집중화하기 위한 경량 전달자입니다. 서버에 에이전트로 설치된 파일비트는 사용자가 지정한 로그 파일이나 위치를 모니터링하고 로그 이벤트를 수집하여 인덱싱을 위해 Elasticsearch 또는 Logstash로 전달합니다.
Filebeat는 크게 Prospector, Harvester, Spooler로 이루어져 있다.
Prospector는 읽어야 할 소스를 식별하고 구분하는 역할을 한다. log, stdin 타입을 지원하며 Prospector 당 2개 이상의 type 선언이 가능하며, 어디까지 읽었는지 meta data를 별도 디스크에 저장한다. (default : /var/lib/filebeat/registry)
Harvester는 파일을 읽고 출력하는 역할을 한다. 하나의 Harvester가 각각 하나의 파일을 담당하는 구조를 가진다. 파일을 열고 닫는 것까지 담당하기 때문에 Harvester가 실행되고 있다는 것은 file descriptor가 남아 있다는 의미이다.
Spooler는 Harvester가 읽은 데이터를 집계하고 각각 설정한 output으로 전달한다.
Filebeat를 시작하면 내가 로그 데이터 위치를 들여보도록 등록해놓은 하나 또는 그 이상의 input(입력)을 시작합니다. Filebeat가 찾은 각 로그에 대해 Filebeat는 harvester를 시작합니다. 각 harvester는 새 컨텐츠에 대한 로그 하나를 읽고 새 로그 데이터를 libbeat로 전송하며, libbeat는 이벤트를 집계하고 집계된 데이터를 Filebeat에 구성해놓았던 output(출력)으로 전송합니다.
Metricbeat를 이용하면 시스템과 서비스에서 메트릭 정보를 손쉽게 수집할 수 있다.
Cpu, Memory, File system, Disk IO, Network IO 등과 시스템에서 실행되는 모든 프로세스에 대한 통계를 수집하여 전송한다.
또한 기본적으로 내장되어 있는 모듈은 Apache, Jolokia, NGINX, MongoDB, MySQL, PostgreSQL, Prometheus 등의 다양한 서비스로부터 메트릭을 수집하며, 원하는 모듈이 없다면 Go Language로 새로운 모듈을 간단하게 생성할 수도 있다.
시스템의 CPU 사용률과 메모리, 파일 시스템, 디스크 IO, 네트워크 IO에 대한 통계와 시스템에서 실행되는 모든 프로세스에 대한 통계를 확인할 수 잇다.
경량 네트워크 데이터 수집기로써, 네트워크 트래픽을 모니터링하며 가시성을 확보하고 환경 보안을 유지하여 높은 수준의 성능과 보안을 보장한다. Packetbeat는 호스트와 컨테이너의 데이터를 Logstash 또는 Elasticsearch로 전송하는 경량 네트워크 패킷 분석기이다.
HTTP 같은 네트워크 프로토콜로부터 애플리케이션 지연 시간 및 오류, 응답 시간, SLA 성능, 사용자 액세스 패턴 및 추이 등을 확인할 수 있으며, 또한 이러한 데이터에 접근하여 네트워크 트래픽의 흐름이 어떤지 파악할 수 있다.
(Packetbeat는 완전히 수동으로 구동되며 지연 시간 오버헤드가 0이기 때문에 인프라에 지장을 주지 않는다.)
네트워크 트래픽을 디스크에 스풀링하여 어떤 데이터 요소도 놓치지 않으며 다운스트림 문제가 발생했을 때에도 안심할 수 있으며, 네트워크 데이터를 보존했다가 상태가 정상으로 돌아오면 Elasticsearch나 Logstash로 모든 것을 전송한다.