본문 바로가기

Programming/검색엔진5

로그스태시는 장애 시 어떻게 데이터 손실을 방지할까? 로그스태시는 엘라스틱 스택에서 데이터를 수집하고 가공하여 엘라스틱 서치로 전송하는 역할을 담당하고 있습니다. 이 과정은 입력,필터,출력 플러그인을 통해 하나의 파이프라인을 형성하며 이루어지는데 이 처리 과정 중에 장애가 발생하여 로그스태시가 종료되면 처리중인 데이터는 손실됩니다. 이러한 손실을 방지하기 위해 로그스태시는 어떠한 노력을 하고 있을까요? 로그스태시는 유입된 이벤트를 처리할 때 출력이 완료되어야만 해당 이벤트가 완료된 것으로 판단하고, 그 전에는 큐에 이벤트 레코드를 유지합니다. 로그스태시를 Ctrl+C 또는 SIGTERM 신호를 통해 정상 종료할 경우에는 데이터 수집을 중지하고, 필터와 출력 플러그인에 의해 처리 중인 이벤트들을 정상적으로 처리 완료한 후에 종료합니다. 기본적으로 이 이벤트들.. 2017. 12. 12.
ELK에 Search Guard 적용 nginx 인증을 사용하여 사내 직원들에게 kibana에 접속하도록 하고 있던 중 Popit의 Search Guard로 ES, 키바나 인증 구축 포스팅을 보고 적용을 하게 되었다. 적용 과정 중 수차례 삽질을 했었기 때문에 조금 더 상세하게 정리를 해보았다. Elasticsearch에 Search Guard 설치install 명령$ bin/elasticsearch-plugin install -b com.floragunn:search-guard-5:5.5.0-14버전은 아래 버전표 참고tools 디렉토리로 이동$ cd /plugins/search-guard-/toolsinstall_demo_configuration.sh 실행$ ./install_demo_configuration.sh실행권한이 없는 경우 c.. 2017. 7. 14.
[ELK] logback에서 설정한 시간 포맷과 ELK 시간 포맷 동기화 elasticsearch에서는 ISO8601 표준 date 포맷을 사용해야 date 형식으로 변환하는데 오류가 발생하지 않는다. 형식이 맞지 않더라도 logstash에서 date 형식을 지정해주면 되지만 포맷을 통일하는 것이 좋을 것 같아서 ISO8601로 통일했다. 또한 타임존은 기본 UTC를 사용하고 Kibana에서 타임존을 설정하는 방식으로 결정했다. logback 설정기존에 yyyy-MM-dd HH:mm:ss.SSS 포맷으로 사용하던 것을 ISO8601 로 변경 DEBUG ACCEPT DENY Log/debug.log Log/debug-%d{yyyy-MM-dd}.%i.txt 100MB 60 10GB %d{ISO8601} %level %msg %n 가장 하단의 encoder 태그 부분에 %d{ISO.. 2017. 4. 25.
ELK 구성 노트 ElasticSearch 외부에서 접속이 안될 때config/elasticsearch.yml 파일에 바인딩 설정network.bind_host: 0.0.0.0 vm.max_map_count 부족 오류로그에 찍힌 오류메세지max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 설정되어 있는 vm.max_map_count 값 확인$ sysctl vm.max_map_countvm.max_map_count 값 설정$ sysctl -w vm.max_map_count=262144conf 파일로 설정$ vi /etc/sysctl.conf$ sysctl -pelasticsearch 홈페이지 참고 logstash.. 2017. 3. 18.