지난 시간에 아래와 같은 과정을 거치면서 Custom Ruleset을 만들었다. Sonarqube Custom Rule 6.7 to 8.5 migration 기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 version으로 올리면서 기존의 Custom Rule + Sonarqube 8.5에 추가된 Sonay way를 선별해서 반영해야 한다. 결론부터.. oingdaddy.tistory.com Sonarqube Custom Ruleset 정의의 기준 (with 행자부 보안취약점 대응, OWASP top 10 2020) 현 Sonarqube 버전에 맞는 Ruleset을 재정의를 하라는 작업을 받았다. 전에 작성했던 글과 연장선상에 ..
Pod 살펴보기 Pod 생성 쿠버네티스의 모든 리소스는 YAML 형태의 선언형 정의서 (declarative description)으로 표현될 수 있습니다. 먼저 다음과 같이 Pod template을 만들어 보겠습니다. --dry-run, -o yaml 옵션 조합으로 실제 Pod를 생성하지 않고 template을 생성할 수 있습니다. kubectl run mynginx --image nginx --restart Never --dry-run -o yaml > mynginx.yaml cat mynginx.yaml apiVersion: v1 kind: Pod metadata: labels: run: mynginx name: mynginx spec: restartPolicy: Always containers: ..
지난 시간에 scouter 설치와 application과의 연동을 알아보았다. 이제 이렇게 연동된 application과 server에 대한 정보를 가지고 모니터링을 해야 한다. 우선 scouter client를 구성하기 앞서 설정을 할 부분이 있다. 바로 그룹에 대한 설정이다. 그룹에 대한 설정은 모니터링 대상 application의 tomcat에서 다음과 같이 할 수 있다. catalina.sh or startup.sh JAVA_OPTS=" ${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar" JAVA_OPTS=" ${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf" J..
SonarLint를 설치했다면 SonarLint에서 제공하는 기본 Ruleset만 사용이 가능하다. 개인적으로 사용하며 조금 더 나은 품질을 추구한다면 이렇게 사용해도 되지만 엔터프라이즈 환경에서는 이정도 Ruleset으로는 어림없다. 조금 더 강력한 Ruleset을 가지고 있는 또 재정의가 가능한 Sonarqube Ruleset과 연동이 되어야 한다. 그래서 기존에 설치해놓은 SonarLint와 Sonarqube를 연동해보자. 필자의 Sonarqube 버전은 6.7이고 연동을 위한 최소한의 버전은 6.7 이다. SonarLint Sonarqube 연동 SonarLint 설치가 잘 되었다면 Show View에서 SonarLint Bindings를 볼 수 있다. 창을 열어보자. SonarLint Bingi..
내부망에 구축된 Docker에 login을 시도했다. 하지만 오류가 발생하였고 다음과 같은 메세지가 나왔다. > Error response from daemon: Get https://docker.privatearea.com/v2/: dial tcp 172.17.xxx.xxx:443: connect: no route to host no route to host ! Docker는 기본 네트워크 대역을 172.17.xxx.xxx 대역을 사용해서 내부망 환경이 구성된 경우 다른 대역을 사용해서 Out Bound Traffic이 발생할 수 있다고 한다. 그래서 172.17.xxx.xxx 와 내부망의 연결을 위해 bip (bridge ip)로 설정을 해줘야한다. bip는 Docker 사설망을 만든 사람이 정의를 ..
Sonarqube Custom Ruleset 파일을 정의하고 드디어 적용을 하려는 순간이다. 하지만 Restore를 하고 나서 한참을 기다려봐도 아래와 같은 메세지가 상단에 나타나며 적용이 되지 않는다. 분석중이라는데 생각보다 시간이 너무 오래 걸린다. 뭔가 문제가 있는것 같다. 이럴 경우에는 상단의 Administration > Projects > Background Tasks 로 들어가본다. 그럼 Pending 인 프로젝트가 있을수도 있을수도 있다. 이거는 오래걸리는 작업때문에 작업이 지연되고 있는 작업이다. 즉 이 Pending 프로젝트가 원인이 아니라 아래에 In Progress인 작업이 문제인것이다. 이 작업을 종료시켜줘야한다. 하지만 종료를 시킬수 있는 방법은 없다. Sonarqube 재시작을..
일전에 Spring Batch가 수행을 하다가 실패를 해도 Jenkins에서는 SUCCESS를 찍는 문제가 있다고 글을 쓴적이 있다. Jenkins Log Parser 사용해서 Application 오류 처리하기 엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하 oingdaddy.tistory.com 이런 글인데 이것은 어플리케이션을 수행하고 성공이든 실패든 Jenkins의 Job은 SUCCESS로 출력을 하는데 이 과정의 로그를 분석하여 Jenkins의 Job의 상태를 변경해주는 방법이었다. 어떻게 보면 원칙적인..
소스의 정적분석을 도와주는 대표적인 솔루션은 Sonarqube이다. 보통은 이 Sonarqube를 서버에 별도로 설치를 하고 소스를 이곳으로 보내 분석을 한다. 그렇기 때문에 개발자는 소스를 모두 deploy하고 Sonarqube를 돌리기 전에는 자신의 소스가 어떤 상태인지 알수 없다. 이런 단점을 극복하고 자신의 소스를 가볍게 분석해줄수 있는것이 SonarLint라는 Eclipse plugin이다. SonarLint 설치방법 여느 플러그인을 설치하는 것처럼 이클립스 상단의 Help > Eclipse Marketplace 로 진입 sonarlint로 검색해 보면 위와 같이 나온다. Install을 해준다. 설치과정에 나오는 license는 물론 agree 해준다. 설치가 끝나면 재시작을 하겠다고 한다. ..