본문 바로가기

Logstash - Elasticsearch 연동을 위한 로깅 처리 기록 #1 최근 구축한 시스템에서 Log4j로 남기는 로그를 분석, 활용하기 위해 시험적으로 Logstash를 적용해보았다.요구사항은 다음의 두 가지 : 1) 에러 발생시 Watcher를 활용, notification 기능을 구축하기 위해 ERROR 레벨로 떨어지는 로그를 잡아 에러 내용을 전송해 줄 것. 2) Kibaba와 연동하여 시간대별 처리내역을 실시간으로 확인하기 위해INFO 레벨로 떨어지는 로그를 잡아 수행된 프로세스의 count를 전송해 줄 것. Watcher를 활용한 notification 기능 구현은 메일 송수신과 관련된 사내 보안망에 걸려 구현 확인에 실패했지만,실시간으로 떨어지는 로그를 Logstash를 활용하여 filtering, mutating 하여 ES에 색인하는 과정을 기록해둔다. Log..
Logstash live-reload configuration 현황 Stackoverflow : http://stackoverflow.com/questions/20695665/logstash-configuration-reload Discussing on github :https://github.com/elastic/logstash/issues/2612 현재 : 아직 지원하지 않음.혹은 공식 도큐먼트가 제대로 업데이트가 안되서 모를지도.
Disabling Swap! Elasticsearch 서버에 부하가 걸릴 때 성능 향상(이라 쓰고 서버의 생존)을 꾀하기 위해서 OS에서 메모리를 효율적으로 활용하기 위해 수행하는 swapping을 봉쇄하는 것이 효과적일 수 있다. Elasticsearch Official Documentation : Setup > Configuration > Memory setting https://www.elastic.co/guide/en/elasticsearch/reference/2.x/setup-configuration.html#setup-configuration-memory 단락 중간 즈음에 소개된 바와 같이, RestAPI 또는 CURL로 다음 주소로 접근하면 프로세스 상태를 확인할 수 있다. # check process through c..
[Sublime Text 3] 자동줄맞춤 (Reindent) 단축키 지정하기 상단 Preferences 탭 → Key Bindings - User 항목을 열어 다음의 코드를 추가해준다. { "keys": ["ctrl+shift+f"], "command": "reindent", "args": {"single_line": false} }
Logstash Filter 플러그인을 만들어보자. #2 분리된 프레임워크에서 적재해주는 문서를 Elasticsearch에 색인하기 위해 요 한 주간 Logstash를 만져봤다. 원하는 기능을 수행하기 위해 Logstash에서 제공하는 플러그인들의 목록을 이리 뒤지고 저리 뒤져보았지만, 다른 사람들이 짜놓은 플러그인들이 완성도는 높을지 모르나 내 의도대로 처리하기엔 직접 짜는 것만 못하더라. 기억 및 공유를 위해 플러그인을 짜고 적용해 본 과정을 기록해둔다. 본 포스트에서는 Logstash 플러그인의 제한적인 배포만을 다룬다. Github 및 Rubygems.org에 등록 없이 로컬에서만 빌드 및 설치를 수행했다. Logstash 공식 도큐먼트의 플러그인 가이드를 적극 참고했다. 아직 어지럽고 허술하지만 대략적인 가이드라인으로는 모자람이 없다. https://..
Logstash Filter 플러그인을 만들어보자. #1 분리된 프레임워크에서 적재해주는 문서를 Elasticsearch에 색인하기 위해 요 한 주간 Logstash를 만져봤다. 원하는 기능을 수행하기 위해 Logstash에서 제공하는 플러그인들의 목록을 이리 뒤지고 저리 뒤져보았지만,다른 사람들이 짜놓은 플러그인들이 완성도는 높을지 모르나 내 의도대로 처리하기엔 직접 짜는 것만 못하더라.기억 및 공유를 위해 플러그인을 짜고 적용해 본 과정을 기록해둔다. 본 포스트에서는 Logstash 플러그인의 제한적인 배포만을 다룬다.Github 및 Rubygems.org에 등록 없이 로컬에서만 빌드 및 설치를 수행했다. Logstash 공식 도큐먼트의 플러그인 가이드를 적극 참고했다.아직 어지럽고 허술하지만 대략적인 가이드라인으로는 모자람이 없다.https://www.e..
Logstash Filter 플러그인 코딩기 Logstash 플러그인 개발의 기본적인 스텝 1. Github repository 생성2. logstash-output-example 복사3. 내 플러그인에 맞게 파일명 변경4. 플러그인 세부사항 코딩5. Github repository push6. process Logstash plugin install step 일단 이렇게 되는 것 같고. 플러그인은 루비(Ruby) 언어로 코딩해야 하지만 기본적인 플러그인의 몸체는 Logstash 쪽에서 지원해주고플러그인을 제작하는 입장에서는 자바에서 메서드를 오버라이딩 하듯이 특정 부분을 '구현' 해주면 됨. 일단 루비에 대한 기본적이자 충분한 가이드를 해주는 사이트를 링크.설치에서부터 Interactive Ruby 및 ruby .rb를 통한 기본적인 실행, 기본..
[Node.js] Module 탐색 경로 본 포스트는 Ben Nadel의 다음 포스트를 부분 발췌 및 번역한 포스팅이다.http://www.bennadel.com/blog/2169-where-does-node-js-and-require-look-for-modules.htm Node.js 공식 도큐먼트에서의 해당 내용 관련 항목https://nodejs.org/api/modules.html#modules_modules Node.js와 require() 메서드는 Node.js의 모듈을 로딩할 때 어느 경로를 찾는가? 에 대한 포스트.Ben Nadel의 포스트에서 확인 할 수 있었던 몇 가지 유용한 사항들을 정리하여 공유한다. 1. require() 메서드는 전역메서드로써, javascript 모듈을 로드하여 singleton 형태로 캐싱한다. 2...