2016년 7월 22일 금요일
2016년 7월 12일 화요일
VisualVM jstatd
./rmiregistry 1099 ./jstatd -p 1099 -J-Djava.security.policy=tools.policy -J-Djava.rmi.server.hostname=10.10.0.0
2016년 7월 11일 월요일
elasticsearch search query
GET _search { "query": { "bool": { "must" : [ { "exists": { "field": "exception.exception_class" } }, { "match": { "level": { "query" : "INFO" } } }, { "range": { "@timestamp" : { "gte" : "now-1h", "lte" : "now", "time_zone": "+09:00" } } } ] } } }
2016년 7월 6일 수요일
logstash output index naming daily
기존의 log4j 로그를 logstash를 이용하여 elasticsearch에 Indexing 하는 작업을 진행 하던 중 Index를 일별로 나누어서 관리를 하기 위해서 log-YYYY-MM-dd 형식으로 쌓기로 결정을 하게 되었음.
우선 아래의 depandency를 추가하여 기존 log4j 로그를 json형식으로 쌓이도록 하였음.
json형식으로 쌓인 로그를 아래와 같이 설정을 하였음
input {
file {
path => "/*"
start_position => "beginning"
type => "log4j-json"
codec => json
}
}
output {
elasticsearch {
index => "log-%{+YYYY-MM-dd}"
}
}
위와 같이 설정을 하게 될 경우 logstash에서 output되는 current_time이 인덱스 명으로 사용이 되어 일 별 인덱스 생성이 가능하였다.
만약 실시간으로 로그를 전송하는 경우가 아니라 주기적으로 로그를 전송하게 된다면 index명에 들어가는 일자가 맞는 것일까?
로그가 실제로 쌓인 시간을 인덱스 날짜로 사용을 할 필요가 생겨 구글링을 통하여 아래와 같이 설정을 하였음
input {
file {
path => "/*"
start_position => "beginning"
type => "log4j-json"
codec => json
}
}
filter {
ruby {
code => "event['index_day'] = Time.at(event['@timestamp'].to_i).strftime('%Y-%m-%d')"
}
}
output {
elasticsearch {
index => "log-%{index_day}"
}
}
필터를 통하여 index_day라는 키에 @timestamp 값을 원하는 포맷으로 변경 한 값을 주어 index명에서 사용을 함으로서
로그에 있는 시간을 기준으로 index 설정이 가능해졌다.
====== 추가 ======
@timestame의 경우 한국 시간으로 표시 되지 않고 09:00 시간을 뺀 시간을 알려주고 있어 index명에서 한국 기준이 아닌 경우가 있어 아래와 같이 수정하여 해결함
code => "event['index_day'] = Time.at(event['@timestamp'].to_i).localtime.strftime('%Y-%m-%d')"
우선 아래의 depandency를 추가하여 기존 log4j 로그를 json형식으로 쌓이도록 하였음.
net.logstash.log4j jsonevent-layout 1.7
input {
file {
path => "/*"
start_position => "beginning"
type => "log4j-json"
codec => json
}
}
output {
elasticsearch {
index => "log-%{+YYYY-MM-dd}"
}
}
위와 같이 설정을 하게 될 경우 logstash에서 output되는 current_time이 인덱스 명으로 사용이 되어 일 별 인덱스 생성이 가능하였다.
만약 실시간으로 로그를 전송하는 경우가 아니라 주기적으로 로그를 전송하게 된다면 index명에 들어가는 일자가 맞는 것일까?
로그가 실제로 쌓인 시간을 인덱스 날짜로 사용을 할 필요가 생겨 구글링을 통하여 아래와 같이 설정을 하였음
input {
file {
path => "/*"
start_position => "beginning"
type => "log4j-json"
codec => json
}
}
filter {
ruby {
code => "event['index_day'] = Time.at(event['@timestamp'].to_i).strftime('%Y-%m-%d')"
}
}
output {
elasticsearch {
index => "log-%{index_day}"
}
}
필터를 통하여 index_day라는 키에 @timestamp 값을 원하는 포맷으로 변경 한 값을 주어 index명에서 사용을 함으로서
로그에 있는 시간을 기준으로 index 설정이 가능해졌다.
====== 추가 ======
@timestame의 경우 한국 시간으로 표시 되지 않고 09:00 시간을 뺀 시간을 알려주고 있어 index명에서 한국 기준이 아닌 경우가 있어 아래와 같이 수정하여 해결함
code => "event['index_day'] = Time.at(event['@timestamp'].to_i).localtime.strftime('%Y-%m-%d')"
피드 구독하기:
글 (Atom)
언제까지의 개인정보처리방침
1. 개인정보의 처리 목적 언제까지 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는...
-
GET 방식으로 URL 파라매터를 넘길 때 한글이 깨지는 현상이 발생 할 때 아래와 같이 처리하면 된다. var url = "./test.do?name="+encodeURI(encodeURIComponent("한글...
-
기존의 log4j 로그를 logstash를 이용하여 elasticsearch에 Indexing 하는 작업을 진행 하던 중 Index를 일별로 나누어서 관리를 하기 위해서 log-YYYY-MM-dd 형식으로 쌓기로 결정을 하게 되었음. 우선 아래의 ...
-
./rmiregistry 1099 ./jstatd -p 1099 -J-Djava.security.policy=tools.policy -J-Djava.rmi.server.hostname=10.10.0.0