목록네트워크 캠퍼스 (178)
Information Security Study

젠킨스 파이프라인으로 배포 시 로그 파일이 다른 위치에 생기는 문제 해결 젠킨스 파이프라인을 통해 배포 시 로그가 ~ 하위에 생기는 문제가 생겼다.원래는 ~/log-tracking-app/build/custom-libs/logs에 생성되어야 한다.logs 디렉토리를 생성한 적이 없는데 이 디렉토리가 생기면서 로그 파일이 쌓였다. 젠킨스 배포 말고 터미널에서 직접 git clone해서 생긴 jar를 실행하면 위와 같이 로그가 잘 생성된다. 멋대로 생성된 logs 디렉토리를 지우고 젠킨스로 다시 빌드하고나니 logs 디렉토리가 생긴 것을 확인했다.이것으로 젠킨스 스크립트에 적은 배포 경로에 로그가 저장하는 것을 알 수 있었다.(쌓인 jar는 모두 삭제했다.) 그래서 정확한 경로에 로깅될 수 있도록..

롤링 방식으로 무중단 배포하기https://gayeon-l.tistory.com/429 롤링방식 무중단배포 구현하기롤링방식 무중단배포 구현하기 깃허브에 commit, push 등 변경 사항이 생겨 webhooks이 감지하면 젠킨스가 다시 빌드를 시작하게 되어프로세스를 종료했다가 시작하는 준비 시간이 필요한데 이때 gayeon-l.tistory.com 2차 프로젝트 때 썼던 롤링 배포 스크립트를 참고했다. pipeline { tools { gradle "GRADLE" } agent any stages { stage('Clone') { steps { git branch: 'main', url: 'git 레포지토리 주..

서버 하나에만 배포하는 코드pipeline { tools { gradle "GRADLE" } agent any stages { stage('Clone') { steps { git branch: 'main', url: 'git 레포지토리' } } stage('Build') { steps { sh './gradlew clean build' sh 'pwd' sh 'ls' sh 'cd build' sh 'pwd' ..

현재 이 글은 a 가용영역의 app1만 구현한 상황이다. 서버 내 로그 관리 정책 수립 및 구현로그 자체는 애플리케이션에서 기록하지만 실제 관리는 리눅스에서 하기 때문에 애플리케이션 서버에서 생성한 로그를 리눅스에서 적절하게 처리하도록 만들기 어렵다. 이번 실습으로 크론탭에 등록해 로그를 처리할 수 있도록 구현할 것이다. 작업 개요시간대별 로그에서 타입별 로그를 추출하고 분석계 전달을 위해 날짜별 단위로 통합하기 예시 코드# 1. 작업 경로 설정bk_dir="{로그 백업본(직접 작업X) 보관 경로}"work_dir="{로그 취합 작업 수행을 위한 2차백업 및 편집 경로}"mkdir $work_dir# 2. 작업 대상 날짜 설정 (리스트로 여러 날짜 지정 후 순회 필요)work_target_ymd="{..

웹훅 설정하기애플리케이션에서 변동사항 발생 시 젠킨스에서 자동으로 빌드할 수 있도록 웹훅 설정을 할 것이다.웹훅을 설정하기 위해서는 rsa 키가 필요하고 jenkins credential과 github repository에 deploy key를 등록하는 과정이 필요하다. 새 파이프라인 아이템 생성 후 구성으로 들어가서 commit change 발생 시 젠킨스에서 자동으로 빌드될 수 있도록 GitHub hook trigger for GITScm polling 옵션을 선택한다. 깃허브 레포지토리를 연동하기 위해서는 rsa 키가 필요하다.rsa 키 발급 및 설정은 이전 게시글에 자세히 나와있다. https://gayeon-l.tistory.com/443 인스턴스 설정하기인스턴스 설정하기 인스턴스는 위와..

그라파나-프로메테우스로 인스턴스가 종료됐을 경우 알람 받기퍼블릭 서브넷에 있는 모니터링 인스턴스에 있는 프로메테우스가 프라이빗 서브넷에 있는 app1 인스턴스의 애플리케이션의 상태를 확인한다. 이때 애플리케이션의 상태는 up 메트릭으로 확인한다. 상태값이 1인 경우 정상 동작, 0인 경우 종료된 애플리케이션이다. 값이 1미만일 경우 애플리케이션이 중지 또는 종료되었다는 메일을 보낼 수 있도록 설정할 것이다. 알람을 보내기 위해 Alert rules 탭으로 들어간다. 알람 이름 설정 후 사용할 메트릭과 filters를 선택한다.run queries로 쿼리문이 잘 작동하는지 확인한다. 그 아래에 threshold에서는 알람 발송 조건을 지정할 수 있다.input A는 위에서 설정한 쿼리문의 결과값..

프로메테우스 커스텀 매트릭 생성 및 조회하기 이전 글 이어서 실습! https://gayeon-l.tistory.com/441 프로메테우스 커스텀 매트릭 생성 및 조회하기프로메테우스 커스텀 매트릭 생성 및 조회하기 프로메테우스는 기본적으로 설치된 인스턴스 내지는 타겟 인스턴스의 기본 메트릭을 얻어온다.하지만 특정 애플리케이션에서 사용자가 원하는gayeon-l.tistory.com a-public-monitoring의 프로메테우스 설정 파일에 위와 같이 상태를 확인하고자 하는 애플리케이션의 주소를 작성한다.targets에는 애플리케이션의 주소와 포트번호를 작성해야 한다. 설정파일 수정 후 꼭 재시작을 해줘야 한다.재시작을 안했더니 반영이 안돼서 고생을 좀 했다.. 엔드포인트에 접속이 된 걸 브라..

파이프라인을 사용하기 위한 설정젠킨스에서 파이프라인 사용 시 빌드를 편하게 사용하기 위해 Gradle 설정을 할 것이다. _Global_Tool_Configuration" style="background-color: #ffffff; color: #000000; text-align: left;" data-ke-size="size16">젠킨스 관리 > Global Tool Configuration 로 들어가Gradle의 이름과 버전을 설정한다. 파이프라인 스크립트 실행 시 Stage를 한 눈에 보기 위해 위 플러그인을 설치한다. 플러그인을 설치하면 위와 같이 stage 별로 편리하게 볼 수 있다.