Tree Size를 이용해서 ssd를 정리하던중 이상한걸 발견했다.윈도우에서는 간단한 연습용 리눅스 서버나 DB가 올라가있는 docker가 data로 용량을 14.6GB나 차지하고 있었다.요즘 docker는 쓰지도 않았고 매번 필요없는 volume도 정리했었는데 이상하다원인 추적Docker에서 실제로 사용중인 용량을 확인해봤다.docker system df총 사용 용량이 3GB 밖에 안되는데 폴더는 14.6GB이다.Docker Desktop for Windows는 두가지 방식으로 동작한다는 것을 알아냈다.Hyper-V 백엔드 (구형 방식)WSL2 백엔드 (최신 방식)wsl --list -vdocker-desktop-data라는 WSL2 가 있으며 Docker의 모든 데이터를 저장하는 곳이다.이는 가상 ..
1. SSH 접속과 키 기반 인증 이해하기ssh 접속이란?ssh는 네트워크를 통해서 원격 서버에 안전하게 접속하기 위한 프로토콜이다. 단순한 Telnet과 달리 모든 데이터를 암호화 해서 전송해서 보완성이 더 좋다.ssh 접속 시퀀스ssh접속은 다음 단계로 진행된다.TCP 연결클라이언트 (접속하는 PC or VM)이 서버의 22번 포트로 연결을 시도함서버 Hosy Key 확인서버는 자신을 증명하기 위한 Host Key를 제공함클라이언트는 known_hosts 파일을 확인해서 이전에 본적있는 서버인지 검증이때 known_hosts에 없는 경우는 다른로직을 진행한다. 이는 서버 설정에 따라 진행된다.인증두가지 방식이 있다.1. 비밀번호 인증 : 서버 계정 비밀번호를 입력 -> 보안 취약점 높음사유로는 피싱,..
1. ssh 키파일 쌍 생성mobaxterm을 설치한 이후에 tools를 클릭하자Generate를 누르고 지금 ssh-rsa가 있는 부분에 마우스를 마구마구 흔들면 키가 생성된다.여기서publickey랑 Public key for pasting into OpenSSH server 에있는 ssh-rsa ~~~부분을 메모장에 저장해두자위에있는 Conversions를 누르고 Export OpenSSH key를 눌러서 private key를 .pem방식으로 생성하자여기까지 마무리했다면 모든 창을 닫아도된다.2. VM 계정 생성계정 생성# 1. 사용자 추가sudo adduser idname# 2. SSH 디렉토리 생성sudo mkdir -p /home/idname/.ssh# 3. 디렉토리 소유자 변경sudo ch..
이번글은 Loki를 사용해서 dashboard를 만들고는 싶으나 돈이없어서 서버에 구축하기엔 아깝고 모니터링은 하고싶은 사람을 위한 글이다. 한국에서는 Grafana Cloud를 사용하는 글이 없어서 한번 작성해보려고 한다.어떻게 발전할지는 몰라서 목차는 없다 ㅎㅎ이번글에서 작성하는 내용은 Grafana Cloud를 통해서 Loki를 띄우고 promtail을 통해서 발송해보는 과정이다.이전 글에서 사용한 promtail이나 loki를 docker로 설치하지 않고 공식 문서에 있는 방식으로 promtail을 설치한다.이번글에서는 앞의 내용을 토대로 promtail을 docker로 띄워보고 Loki로 로그를 발송해보고 간단하게 grafana 화면을 구성해보려고한다.앞의 내용은 하기와 같다. [Monitori..
이번글은 Loki를 사용해서 dashboard를 만들고는 싶으나 돈이없어서 서버에 구축하기엔 아깝고 모니터링은 하고싶은 사람을 위한 글이다. 한국에서는 Grafana Cloud를 사용하는 글이 없어서 한번 작성해보려고 한다.어떻게 발전할지는 몰라서 목차는 없다 ㅎㅎ이번글에서 작성하는 내용은 Grafana Cloud를 통해서 Loki를 띄우고 promtail을 통해서 발송해보는 과정이다.이전 글에서 사용한 promtail이나 loki를 docker로 설치하지 않고 공식 문서에 있는 방식으로 promtail을 설치한다.이번글에서는 기초적인 회원가입 & Labs 구경 & 인증 인가를 설정하겠다.진행 황경Window11docker desktopGrafana Cloud1. Grafana Cloud Grafana:..
JDK 8을 JDK 17로 마이그레이션 하는중 생긴 문제이다.LineNumberReader lnr = new LineNumberReader(new FileReader(file));lnr.skip(Long.MAX_VALUE);int lineCount = lnr.getLineNumber();targetCnt = prevTargetCount + lnr.getLineNumber() - lineToSkipCount + 1;파일 끝까지 쭉 스킵하고 라인 수를 가져오는 로직이다.JDK 8 시절에는 +1 보정을 넣어서 타겟 수를 계산했다.근데 마이그레이션 이후 같은 로직인데 값이 달라지기 시작했다.문제의 주범https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8230342H..