저번 프로젝트의 서버는 이중화되어있어 오픈 후 안정화 기간에 있던 일이었다. 특정 고객이 오류가 난다는 상황이었는데 우리는 해당 고객의 로그를 찾기 위해 두 개의 서버에서 로그를 찾아봐야 했다. 근데 이 고객 특정 행위를 할 때마다 1번 서버 갔다가 2번으로 호출될 때가 있어 로그 찾는 것에 고생을 했다..... 하아.. 프로젝트 종료 후에 찾아보니 로그 트레이싱하는 대표적인 ELK가 있었고 ELK를 세팅을 해보니 생각 보다 서버가 버거워했다..(테스트 서버라 그런 거 같지만) 그래서 비슷한 로그 트레이싱이 있다 해서 구성해보았다! 1. Grafana Grafana는 대시보드와 시각화를 제공하는 오픈 소스 소프트웨어이다. 여러 데이터 소스를 지원하며, 이를 통해 사용자는 데이터를 시각화하고 모니터링할 수..
유지보수를 하다 보면 log파일 중 특정 고객이나 정보를 찾아야 할 때가 있다. 그 파일이나 위치를 찾은 linux 명령어를 정리 해보겠다. grep -i -H -r {원하는 문자} {파일경로} ex) grep -i -H -r test06 /data/logs/vacationApi/* 해당 파일 위치의 어떤 파일에 해당 문자가 있는지 찾을 수 있다.
https를 적용이 되어있는 tomcat에서 http 접속시도 시 https로 자동 rediect 해주는 법이 있다. ./conf/server.xml ...... //웹서버 등의 특정 서버와 연결하는 부분일 경우 필요 ..... ./conf/web.xml ... HTTP /* CONFIDENTIAL Tomcat에서 보안 목적으로 특정 HTTP Method를 제한이나 특정 URL만 설정하는 등도 를 사용한다.
tomcat을 window에서 startup.bat로 실행시켜서 띄우는 경우에 한글이 깨져서 console에 나오는 경우가 있다. ./conf/logging.properties 파일을 수정하주면된다. .... 1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8 .... 2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8 .... 3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 .... 4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 .... java.util.logging..
개요 tomcat의 기본 context는 ./webapps로 잡혀있고 default는 ROOT명의 폴더, war를 읽게 되어있다. contex를 추가또는 수정하는 방법은 ./conf/server.xml를 수정하면 된다. server.xml ..... ..... Context를 추가 하여 하면 되는데 가끔 Host부분을 수정하는 사람도 있다. ..... .... ..... 이런 식으로 바꾸었을 때 path를 지정하지 않아서 그런가 폴더 위치에 따라 session이 변경되어서 session 유지가 안 되는 경우가 있다. path가 / 인 세션이 있고 /verify 인 세션이 있어 주의 해야한다.
개요 linux 방화벽 설정을 세 가지가 있다. firewall, iptables, selinux 그래서 나는 항상 포트 오픈 요청이 오면 3가지를 모두 확인한다. 안 하다가 갑자기 하려면 또 까먹기 때문에 정리를 해보려고 한다. 1. firewall 패킷 필터링 방화벽 프로그램 centos7 부터 iptables를 대체하기 위해 나옴 보통 기본 설정 위치는 /usr/lib/firewalld 또는 /etc/firewalld 에 있음 방화벽 동작여부확인 firewall-cmd --state firewall-cmd --state running이면 활성화되어 있는 것이다. 방화벽 활성 서비스 및 포트 확인 firewall-cmd --zone=public --list-all 활성화되어 있다면 이런 식으로 나올 ..
개요 Spring Gateway는 Spring 프레임워크를 기반으로 만들어진 API Gateway입니다. API Gateway는 마이크로서비스 아키텍처에서 여러 개의 서비스를 연결하고, 클라이언트로부터 요청을 받아 각 서비스에 분배하는 역할을 합니다. 이를 통해, 마이크로서비스 아키텍처에서는 서비스 간의 직접적인 통신을 피하고, 대신 API Gateway를 통해 간접적으로 통신할 수 있습니다. 특징 1. 유연한 라우팅 규칙 다양한 라우팅 규칙을 적용하여 요청을 처리할 수 있습니다. 이를 통해 요청의 경로, 메서드, 헤더 등 다양한 조건에 따라 서비스를 선택할 수 있습니다. 2. 다양한 필터 요청/응답 필터를 제공하여 요청을 처리할 때 다양한 기능을 적용할 수 있습니다. 예를 들어, 인증/인가, 요청/응답..
개요 Spring Cloud Eureka는 서비스 디스커버리를 위한 라이브러리입니다. 이를 사용하면 마이크로서비스 아키텍처에서 각 서비스의 위치와 상태를 관리할 수 있습니다. Spring Cloud Eureka는 서비스 디스커버리 서버와 클라이언트로 구성됩니다. Eureka 서버는 각 서비스의 위치와 상태 정보를 저장하고, Eureka 클라이언트는 자신을 등록하고 주기적으로 서버에 상태를 보고합니다 주요 기능 1. 서비스 등록 및 발견 Eureka 클라이언트는 서비스를 등록하고, Eureka 서버는 등록된 서비스 정보를 저장합니다. 다른 서비스에서는 Eureka 서버에서 서비스 정보를 조회하여 해당 서비스를 호출할 수 있습니다. 2. 서비스 상태 확인 Eureka 클라이언트는 주기적으로 서비스 상태를 E..