🔹 mtail 개요
mtail은 로그 파일을 실시간으로 모니터링하고, 특정 패턴을 감지하여 메트릭을 생성하는 오픈소스 도구입니다.
특히 Prometheus, Grafana 같은 모니터링 시스템과 함께 사용하여 로그 기반 메트릭을 쉽게 수집할 수 있습니다.
✅ 로그 파일에서 특정 문자열을 추출하여 Prometheus에서 사용할 수 있는 메트릭을 생성
✅ 애플리케이션 코드 변경 없이 로그를 기반으로 시스템 상태를 분석 가능
✅ Go 언어로 작성되어 가볍고 빠르게 동작
📌 Prometheus 같은 모니터링 툴과 함께 사용하여, 로그를 기반으로 실시간 메트릭을 수집하고 경고 시스템을 구축 가능
✅ 1. mtail 주요 기능
✔ 로그 실시간 모니터링 → 특정 패턴 감지 및 메트릭화
✔ 로그 패턴 기반의 Prometheus 메트릭 생성
✔ CPU, 메모리 사용량이 낮아 경량화된 운영 가능
✔ 로그 파일뿐만 아니라 표준 입력(stdin)에서도 데이터 처리 가능
✅ 2. mtail 사용 사례
사용 사례설명
Nginx/Apache 로그 분석 | HTTP 상태 코드(200, 404, 500 등) 카운트하여 요청 상태 모니터링 |
애플리케이션 로그 기반 알람 | 로그에서 ERROR, WARN 패턴 감지 후 Prometheus 경고 설정 |
Kubernetes와 함께 사용 | Kubernetes Pod의 로그를 수집하여 실시간으로 모니터링 |
시스템 로그 모니터링 | /var/log/syslog, /var/log/auth.log 등의 시스템 로그 분석 |
📌 로그 기반으로 메트릭을 생성하여, 운영 시스템의 상태를 실시간으로 감시 가능
✅ 3. mtail 설치 방법 (Ubuntu, Debian, CentOS, macOS)
📌 (1) Go 언어를 이용하여 빌드 및 설치
git clone https://github.com/google/mtail.git
cd mtail
make
sudo mv mtail /usr/local/bin/
✅ Go 환경이 설치되어 있어야 함 (go version으로 확인 가능)
📌 (2) Homebrew를 이용한 설치 (macOS)
brew install mtail
✅ macOS에서는 Homebrew를 통해 간단하게 설치 가능
✅ 4. mtail 실행 방법
📌 (1) 기본 실행 (로그 파일 모니터링)
mtail --logs /var/log/syslog --progs /etc/mtail
✅ /var/log/syslog 파일을 실시간 모니터링하여 /etc/mtail에 정의된 mtail 스크립트 적용
📌 (2) Prometheus 메트릭 출력 확인
curl http://localhost:3903/metrics
✅ mtail은 기본적으로 3903 포트에서 Prometheus 메트릭을 제공
✅ 5. mtail 스크립트 작성 예제 (HTTP 상태 코드 모니터링)
mtail은 간단한 스크립트(mtail 프로그램)를 사용하여 로그 패턴을 정의하고 메트릭을 생성할 수 있음.
✔ 예제: Nginx 로그에서 HTTP 응답 코드(200, 404, 500) 카운트
counter http_200_total
counter http_404_total
counter http_500_total
/^.*" 200 / { http_200_total++ }
(/^.*" 404 / { http_404_total++ }
(/^.*" 500 / { http_500_total++ }
✅ 이 스크립트를 적용하면, Prometheus에서 http_200_total, http_404_total, http_500_total 메트릭을 수집 가능
🚀 결론: mtail 요약
✔ mtail은 로그 파일을 실시간으로 분석하여 Prometheus 메트릭을 생성하는 경량화된 오픈소스 도구
✔ 애플리케이션 변경 없이 로그 기반으로 메트릭을 추출 가능
✔ Nginx, Kubernetes, 시스템 로그 등을 실시간으로 감시하는 데 유용
✔ Prometheus, Grafana와 연동하여 모니터링 및 알람 설정 가능
📌 mtail을 활용하면 애플리케이션의 로그를 실시간으로 분석하고, 운영 시스템의 문제를 빠르게 감지할 수 있습니다! 🚀