반응형
mongoDB 로그를 filter해서 kibana에서 봐야할 일이 생겼다.
shipper부분에서 filter grok 부분을 작성해줘야되는데, 커스터마이즈가 쉽지 않아서
이리저리 구글링하다가 정상적으로 동작하는 구문을 발견!
대충 아래처럼 적어주고 shipping 하면 redis로 잘 적재되고, elasticsearch가 indexing하는데 문제가 없었다.
mongoDB는 3.0버전을 사용하였고, 2.x버전에서는 잘 안될지도 모르겠다. match 구문에 보면 MONGO3라고 되어있기 때문이지..
[logstash.conf]
input {
file {
path => "/data/log/mongodb/mongod.log"
type => mongodb
start_position => "end" # rotate policy 같은건데, 별 차이 없으므로 default인 end로 그냥 놓는다.
# 자세한 설명은 공홈에... (https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html)
}
}
filter {
grok {
match => ["message","%{TIMESTAMP_ISO8601:timestamp}\s+%{MONGO3_SEVERITY:severity}\s+%{MONGO3_COMPONENT:component}%{SPACE}(?:\[%{DATA:context}\])?\s+%{GREEDYDATA:body}"]
}
if [body] =~ "ms$" {
grok {
match => ["body",".*\}(\s+%{NUMBER:spend_time:int}ms$)?"]
}
}
date {
match => [ "timestamp", "ISO8601" ]
#remove_field => [ "timestamp" ]
}
}
output {
if [type] == "mongodb" {
redis {
host => "서버 host"
port => "포트"
data_type => "list"
key => "redis에 어떤 key로 넣을 것인지"
}
}
}
반응형
'개발 > Linux, System' 카테고리의 다른 글
| [Batch Script] Background로 명령어 실행 (0) | 2016.06.10 |
|---|---|
| [Batch Script] 입력 파라미터 받아서 변수로 세팅하기 (0) | 2016.06.10 |
| [Nginx] elastic search proxy pass (0) | 2016.06.10 |
| [Apache2] Root로 들어온 경우 원하는 경로로 Redirect 시키기 (0) | 2016.06.10 |
| Volume Mount 하기 (0) | 2016.06.10 |