티스토리 뷰
www.youtube.com/watch?v=-T8ihKGTCCU
전에 유투브로 로그스태시로 데이터 넣는 영상을 올린적이 있습니다. 이번에는 윈도우 환경에서 하다보니 조금 달라서 이 포스트를 정리 해봅니다.
결론부터 말씀을 드리면
logstash.bat -f ../upload_setting.conf
이 명령어를 쓰면 커스터마이징 한 config파일로 로그 스태시를 띄울 수 있습니다.
Logstash설치
www.elastic.co/downloads/logstash
[
Download Logstash Free | Get Started Now | Elastic | Elastic
Want to upgrade? We'll give you a hand. Migration Guide »
](https://www.elastic.co/downloads/logstash)
설치는 간단 합니다. 위 링크의 로그스테시 다운로드 페이지에서 바이너리를 받아서 압축을 푸시면 됩니다.
제 디렉토리 구성은 c:/tools/ 아래에 사용하는 앱들의 바이너리를 넣어놓았습니다.
리눅스 path문제
그런데 문제가 하나 있습니다. 서버는 리눅스인 경우가 많아서 path가 아래와 같이 리눅스 path로 되어 있는 문서들이 많습니다.
input {
file {
path => "/files/json/*.json"
codec => json
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
제가 테스트할 config 파일은 upload_setting.conf 입니다.
logstash디렉토리에 넣었습니다.
내용은 아래와 같이 바꿨습니다. 주의할점은 path뿐만 아니고 sincedb_path도 실재 존재하는 위치로 바꾸어주어야 합니다. sincedb_path는 내가 읽을 파일을 어디까지 읽었는지에 대해 기록을 남기는 위치입니다.
upload_setting.conf
input {
file {
path => "C:/datas_for_elastic_search/*.json"
codec => json
start_position => "beginning"
sincedb_path => "C:/dev/null"
}
}
filter {
grok {
match => { "path" => "%{GREEDYDATA:filepath}/%{GREEDYDATA:filename}\.json" }
}
mutate {
remove_field => ["host", "@version", "message", "filepath", "path"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "127.0.0.1:9200"
index => "%{filename}"
codec => json
# user => "elastic"
# password => "<change_me>"
}
}
나중에 운영에 올릴때는 user, password를 세팅 해주시면 됩니다.
c:\datas_for_elastic_search 이 디렉토리에 .json파일이 있으면 읽는 스크립트를 테스트 해볼 예정입니다.
실행하기
bin에서 logstash.bat -f ../upload_setting.conf 명령어로 실행을 했습니다.
Successfully가 나오면 잘 실행 된것입니다.
Index생성하기
저는 키바나를 띄워서 dev 콘솔에서 인덱스를 생성 했습니다.
테이블 생성이 잘 되었습니다.
json파일 읽어서 들어가는지 확인하기
위 upload_setting.conf의 output블록에 보시면 index=> "%{filename}" 이렇게 되어있습니다.
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "127.0.0.1:9200"
index => "%{filename}"
codec => json
# user => "elastic"
# password => "<change_me>"
}
}
이 뜻은 파일명의 인덱스에 넣겠다는 뜻입니다.
그래서 위에서 생성한 'bdp_test_01'이라는 인덱스에 documents를 넣기 위해 .json파일을 생성 해보겠습니다.
내용은 아래와 같이 한줄만 넣어보았습니다.
{"name":"kyeongrok", "age":34}
그리고 저장을 하면
위와 같이 파일을 읽는 것 처럼 보입니다.
이렇게 한줄씩 추가 하면
로그에도 반응이 옵니다.
키바나에서 조회를 해보겠습니다.
결과
키바나에서도 조회가 잘 되는 것을 볼 수 있습니다.
넣을때 필드명 변경해서 넣기
filter {
mutate {
rename => { "시도" => "sido" }
}
}
설정파일에 mutate부분을 설정 해주면 됩니다.
end.
- Total
- Today
- Yesterday
- docker container tissue box
- 도커각티슈케이스
- shellscript
- docker container whale
- 이직
- 2017 티스토리 결산
- docker container case
- vim
- 도커컨테이너
- Sh
- docker container tissue
- 도커티슈케이스
- 도커티슈박스
- docker container
- 싱가폴
- 개발자
- Linux
- 도커각티슈박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |