Heroku의 로그를 Splunk에 먹여보십시오.

6326 단어 경 6Splunk

소개



Heroku의 Log Drains을 사용하여 Splunk에 로그를 가져 왔습니다.

설정해보기



그래서 빨리 설정해 보았습니다.

Splunk에서 로그 수신 준비



인덱싱(≒ Heroku 로그를 저장할 디렉토리)



Splunk GUI에서 heroku 색인 만들기
※ GUI의 스크린 캡쳐는 생략, 대신에 GUI 경유로 작성되는 설정 파일(*.conf) 붙일 때군요

indexes.conf
[heroku]
coldPath = $SPLUNK_DB/heroku/colddb
enableDataIntegrityControl = 0
enableTsidxReduction = 0
homePath = $SPLUNK_DB/heroku/db
maxTotalDataSizeMB = 512000
thawedPath = $SPLUNK_DB/heroku/thaweddb

소스 유형 작성



기본 소스 유형 syslog에서 복제하여 heroku:syslog 만들기
이것도 GUI에서 작성

props.conf
[heroku:syslog]
DATETIME_CONFIG = 
MAX_TIMESTAMP_LOOKAHEAD = 42
NO_BINARY_CHECK = true
REPORT-syslog = syslog-extractions
SHOULD_LINEMERGE = false
TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%6N
TRANSFORMS = syslog-host
TZ = UTC
category = Application
description = Syslog Drain by Heroku
disabled = false
maxDist = 3
pulldown_type = 1

갱신한 부분은 MAX_TIMESTAMP_LOOKAHEAD TIME_FORMAT 정도일까description 라든지 category 는 적당하고 k

데이터 입력 작성



TCP 10514 포트에서 데이터 수신
이것도 GUI에서 s (ry

inputs.conf
[tcp://10514]
connection_host = dns
index = heroku
source = myherokuapp
sourcetype = heroku:syslog
indexsourcetype 에 방금 설정한 것을 지정하는 것을 잊지 마세요.

Heroku에서 Log Drains 설정



그 전에 ...

Heroku CLI 설치



아직 Heroku CLI 들어 있지 않았기 때문에 Mac에 설치
$ brew install heroku/brew/heroku
==> Tapping heroku/brew
Cloning into '/usr/local/Homebrew/Library/Taps/heroku/homebrew-brew'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 9 (delta 0), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.
Tapped 2 formulae (36 files, 23.6KB)
==> Installing heroku from heroku/brew
==> Installing dependencies for heroku/brew/heroku: heroku/brew/heroku-node
==> Installing heroku/brew/heroku dependency: heroku/brew/heroku-node
==> Downloading https://cli-assets.heroku.com/homebrew/node-8.7.0.tar.xz
######################################################################## 100.0%
🍺  /usr/local/Cellar/heroku-node/8.7.0: 3 files, 34MB, built in 6 seconds
==> Installing heroku/brew/heroku
==> Downloading https://cli-assets.heroku.com/homebrew/heroku-6.14.36.tar.xz
######################################################################## 100.0%
🍺  /usr/local/Cellar/heroku/6.14.36: 8,177 files, 43.5MB, built in 8 seconds

Log Drains 설정



Splunk에서 만든 데이터 입력(TCP 10514 포트)에 던지도록 CLI에서 구성
$ heroku drains:add syslog://<splunk_ip>:10514 --app myherokuapp

이상! !

Splunk에서 검색해보기





Heroku 로그가 인덱싱됨
약간 문자 코드가 맞지 않는 것일까...? 여기는 요 대응일지도

그럼에도 불구하고 로그는 Splunk에 저장할 수 있기 때문에 이제 응용 프로그램의 가동 상황이나 Heroku 사용 상황을 모니터링 할 수 있습니다.

(덤) 필드 추출



이런 필드를 추출해 보았습니다.
([^\s]+\s){3}(?P<token>[^\s]+)\s(?P<category>[^\s]+)\s(?<dyno>[^\s]+)\s([^\s]+\s){2}(?P<message>[\s\S]+$)

로그행의 선두로부터 스페이스 단락 4번째가 token , 5번째가 category , 6번째가 dyno , 9번째가 message

좋은 웹페이지 즐겨찾기