본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Prometheus Grok exporter

0

Prometheus Grok exporter는 비정형 로그 데이터에서 Prometheus 메트릭을 추출하는 오픈소스 도구입니다.

내보내기로그 분석메트릭모니터링프로메테우스

소개

Prometheus Grok exporter는 비정형 로그 데이터에서 Prometheus 메트릭을 추출하는 오픈소스 도구입니다. Grok 패턴을 활용하여 syslog, 웹 서버, 데이터베이스 등 다양한 로그 파일의 구조화되지 않은 데이터를 쿼리 가능한 메트릭으로 변환합니다. 패브릭 슈타인바흐(Fabian Stäuber)가 개발했으며, Apache 2.0 라이선스로 배포됩니다.

상세정보

Grok 패턴을 사용한 로그 파싱

Logstash와 호환되는 약 120개의 사전 정의된 Grok 패턴을 지원합니다. 이를 통해 syslog, 웹 서버, 데이터베이스 등 다양한 소스의 로그를 분석할 수 있으며, 커스텀 패턴을 추가하여 특정 로그 형식도 처리할 수 있습니다.

多种输入 타입 지원

파일(file), 표준 입력(stdin), 웹훅(webhook)을 통해 로그 데이터를 가져올 수 있습니다. 파일 입력은 지정된 로그 파일을 모니터링하여 새로운 로그 라인을 실시간으로 처리합니다.

설정 기반 메트릭 정의

YAML 형식의 설정 파일을 통해 Grok 패턴, Prometheus 메트릭 타입, 레이블을 정의할 수 있습니다. 설정 파일 예시는 다음과 같습니다.

global:
  config_version: 3
input:
  type: file
  path: ./example/example.log
  readall: true
imports:
- type: grok_patterns
  dir: ./logstash-patterns-core/patterns
metrics:
- type: counter
  name: grok_example_lines_total
  help: Counter metric example with labels.
  match: '%{DATE} %{TIME} %{USER:user} %{NUMBER}'
  labels:
    user: '{{.user}}'
    logfile: '{{base .logfile}}'
server:
  port: 9144

다운로드·설치 방법

GitHub 릴리스 페이지에서 운영 체제에 맞는 “grok_exporter-$ARCH.zip” 파일을 다운로드하여 압축을 해제합니다.

압축 해제 후 해당 디렉토리로 이동하여 다음 명령어로 실행합니다.

Windows 사용자용 Zip 패키지가 제공되므로, 별도의 빌드 과정 없이 바로 사용할 수 있습니다. 단, 소스에서 빌드하려면 Go 환경과 Oniguruma 정규식 라이브러리가 필요합니다.

기본 사용법/명령어

실행 시 구성 파일의 경로를 지정해야 합니다. 예제를 실행하는 방법은 다음과 같습니다.

./grok_exporter -config ./example/config.yml

실행 후 기본적으로 localhost:9144/metrics 엔드포인트에서 메트릭을 확인할 수 있습니다.

이런 경우에 유용합니다

  • ELK 스택 대신 Prometheus를 사용하는 환경에서 기존 Grok 패턴으로 로그 모니터링이 필요할 때
  • 비정형 로그 파일에서 특정 오류 카운트나 상태 값 등으로 변환하여 시각화해야 할 때
  • Exim 메일 서버와 같은 특정 서비스의 로그를 분석하여 모니터링 대시보드를 구축할 때

제한 사항·확인 사항

소스에서 직접 빌드할 경우, Oniguruma 정규식 라이브러리가 런타임 의존성으로 필요합니다. 제공되는 릴리스 바이너리는 Oniguruma와 정적 링크되어 있어 별도 설치가 필요 없습니다.

macOS에서 Go 1.13 버전을 사용할 경우 파일 입력 관련 버그가 있습니다. 해당 버그가 수정될 때까지 Go 1.12를 사용하는 것이 권장됩니다.

화면으로 보는 주요 기능

메트릭 데이터 출력 화면

메트릭 데이터 출력 화면

로컬 호스트의 9144 포트에서 제공되는 /metrics 엔드포인트의 출력 내용을 보여주는 웹 브라우저 화면입니다. '# HELP'와 '# TYPE' 지시어로 시작하는 주석 라인과 함께, 'exim_rejected_rcpt_total'이라는 이름의 카운터 메트릭이 여러 오류 메시지(예: "Sender verify failed", "Unrouteable address", "relay not permitted")에 따라 분할되어 표시됩니다.

시스템 요구사항

Array