Elasticsearch 란? Apache Lucene 기반의 java 오픈소스 분산 검색 엔진입니다. 방대한 양의 데이터를 거의 실시간으로 저장, 검색, 분석을 할 수 있습니다. 기존 RDB에서 다루기 힘든 full text search 기능을 제공합니다. Elasticsearch 기본 개념 RDBMS Elasticsearch schema mapping database index table type row document column field Document RDBMS의 row와 비슷한 개념이다. Document는 Json 객체이며, 다양한 필드를 포함하고 있다. Field RDBMS의 column으로 Document에 들어가는 데이터를 의미한다. Type 여러개의 document가 모여 하나의 ty..
로그 모니터링 운영하고 있는 서비스에 장애가 생기면, 로그를 분석함으로 발빠르게 대응을 할 수 있다. 실제로 운영중인 서비스는 짧은 시간의 장애에도 사용자에게 부정적인 영향을 주기에 발빠르게 대처해야한다. 이를 위해 사용하는것이 로그모니터링 시스템이다. ELK 스택이란? ElasticSearch 로그 저장 및 검색 Logstash 로그 수집 Kibana 로그 시각화 3개의 모듈을 따로 사용할 수 있지만 합쳤을때 호환이 좋아서 같이 구축하여 사용한다. 1. Logstach 시스템의 로그, 메트릭 등 다양한 소스에서 데이터를 수집 데이터 변환 데이터 출력 및 송신 2. Elasticsearch 데이터 저장 데이터 분석 데이터 관리 3. kibana 데이터의 시각화 Docker-Compose로 ELK 스택 활..
우분투 서버를 설치하고 이제 해당 서버를 윈도우 컴퓨터로 원격 접속하기 위해서 SSG 세팅을 시작해보겠다. SSH 서버 설치 및 포트 설정 sudo apt-get install openssh-server 해당 명령어를 통해 ssh 서버를 설치해준다. 설치가 완료되면 기본 포트가 22번이고 널리 알려져있기에 보안을 위해서는 포트번호를 바꿔주는게 좋다. 이를 위해 파일 하나를 수정하자. sudo vim /etc/ssh/sshd_config ufw 방화벽 활성화 // ufw 방화벽 활성화 sudo ufw enable // ufw 방화벽 비활성화 sudo ufw disable // ufw 방화벽 상태 확인 sudo ufw status SSH 포트번호(22)를 방화벽에서 예외시켜주자 // ssh 서비스 포트 방화..
Security Exception Spring Security는 filter chain이므로 요청이 컨트롤러에 들어오기 전에 수행이 됩니다. 이러한 특징으로 인해 Security Filter에서 예외가 발생하면 우리가 흔히 사용하는 @ControllerAdvice로 예외처리를 할수가 없습니다. 그래서 Security에서는 두가지의 handler를 사용해서 예외처리를 해줍니다. AccessDeniedHandler 인터페이스 해당 인터페이스를 구현한 CustomAccessDeniedHandler 객체를 생성하고 security filter에 등록하게 되면 권한이 없는 리소스를 요청했을때 예외를 처리해줍니다. @Component public class CustomAccessDeniedHandler implem..