Do Not Think!!!

Posted
Filed under 01010101

brew
$ brew update
$ brew upgrade


npm
$ npm update -g
Posted
Filed under 01010101
이전 버전
https://dont.pe.kr/tc/513


업데이트

$ sudo apt update ; sudo apt upgrade -y


zsh

$ sudo apt install zsh
$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
$ sudo chsh -s $(which zsh) ubuntu



java (spring boot application 실행을 위해)

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
$ sudo echo 'deb http://repos.azulsystems.com/debian stable main' > /etc/apt/sources.list.d/zulu.list
$ sudo apt update
$ sudo apt install zulu-8



nginx (웹서버 및 SSL 적용을 위해)

nginx 설치
$ echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
$ curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
$ sudo apt-key fingerprint ABF5BD827BD9BF62
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 uid [ unknown] nginx signing key <signing-key@nginx.com> $ sudo apt-get update
$ sudo apt-get update
$ sudo apt-get install nginx


nginx 설정

ssl 설정

badbot blocker
https://github.com/mariusv/nginx-badbot-blocker/tree/master/VERSION_2

Posted
Filed under 글로 기록하기
로그로 남기면 좋은 것들

1.6. Log Domains

로그를 남기는 이유는 몇가지로 분류될수 있습니다.

1.6.1. 개발 로그(Development Log)

개발자가 디버깅 및 흐름 추적을 위해 기록하는 내용입니다.보통 debug, trace레벨로 기록합니다.

1.6.2. 운영 로그(Maintenance Log)

운영에 관련된 로그입니다. 디스크가 꽉 찼거나, 인터페이싱 과정에서 타입아웃이 발생했거나 하는등 운영을 모니터링하기 위한 용도의 로그입니다. 보통 WARNING이나 ERROR로 기록됩니다.

1.6.3. 비지니스 로그(Business log)

비지니스적으로 의미가 있고 추후 추적하기 위한 로그입니다. 장바구니 상품추가, 로그인, 결제등이 대표적입니다. 보통 INFO로 기록합니다.

1.6.4. 감사 로그(Audit log)

감사 로그는 보안 관련 시간순 기록, 기록 집합 및 / 또는 대상 및 기록 데이터 소스입니다. 특정 작업, 절차 또는 기록에 언제든지 영향을 미친 활동 순서에 대한 증빙 자료를 제공하기 위해 기록됩니다. 보통 INFO이지만 운영자가 수정가능하지 않는 곳에 저장합니다.

1.7. 로그로 남기면 좋은 것들

  • 중요한 기동관련 설정

  • 에러

  • 경고

  • DB에 저장해야 하는 변경된 데이터

  • 주요 시스템간 요청과 응답

  • 중요한 상태 변화

  • 사용자 Interaction

  • 실패할 가능성이 있는 호출

  • 특정 상태를 기다리는데 시간이 걸릴때

  • 오래 걸리는 작업에 대해 주기적으로 진행상태 기록

  • 중요한 로직 분기점과 그 분기로 이끈 상태

  • 고수준 함수를 처리하는 스텝이나 이벤트에 대한 요약 ( 저수준 복잡한 프로세스의 매 스텝마다 로그를 남기는것은 피할것)

1.8. 로그로 남기지 말것

  • 함수 진입. 중요한 함수에 대해서만 기록할것. 또는 디버그 레벨로만 기록할것

  • 반복문 안의 데이터. 많은 반복을 가지는 데이터를 기록하지 말것. 작은 반복은 OK. 큰 반복에 대해서는 주기적으로 요약 형태로 기록

  • 큰 메시지나 파일 내용을 로그로 기록하지 말것. 디버깅을 위해 일부만 기록하거나 요약만 기록할것

  • 인자한 에러. 실제로는 오류가 아닌 오류. 읽는 사람을 혼란스럽게 할수 있음. 오류 처리가 정상 실행 경로의 일부일때 발생함

  • 반복적 에러: 동일하거나 유사한 로그를 반복적으로 기록하지 말것. 로그를 에러로 가득채우게 되며 실제 오류를 숨기게 됨. 에러 타입의 빈도는 로그 모니터링에 중요함.


출처 : https://narusas.github.io/2017/11/14/logging.html
Posted
Filed under 01010101
http://deepoove.com/swagger-diff/

이전 버전의 API 와 신규 버전의 API 를 비교하여 변경 내용을 html 파일로 출력
$ java -jar swagger-diff.jar \
-old http://petstore.swagger.io/v2/swagger.json \
-new http://petstore.swagger.io/v2/swagger.json \
-v 2.0 \
-output-mode html > diff.html


Posted
Filed under 01010101

운영 상태

nginx + spring boot application


에러 증상

실제 spring boot application 실행 완료후 브라우저 접속하면 무한 대기상태


에러 로그

SessionIdGeneratorBase        : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [xxx,xxx] milliseconds


에러 해결

spring boot application 실행 옵션 추가
-Djava.security.egd=file:/dev/./urandom
Posted
Filed under 01010101

운용 환경

nginx + spring boot embedded tomcat
spring security login page

현상

다른 페이지는 접속이 잘 되지만 로그인이 필요한 화면은 한번에 접속이 안되는 현상

해결

nginx 설정
proxy_set_header Connection "";
proxy_pass http://localhost:5000;


참고

https://stackoverflow.com/questions/24453388/nginx-reverse-proxy-causing-504-gateway-timeout#36589120
https://yckwon2nd.blogspot.com/2018/06/nginx-http-proxy-protocol-http-502-case.html

Posted
Filed under 01010101

MariaDB 암호화


참고문서: Data at Rest Encryption

키 생성

$ openssl enc -aes-256-cbc -P -md sha1
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
salt=AB748EBD04D3F18C
key=D8ED4A206B8A8FFD56072AA4AF3560590EE960E9EFE6F916A0B544FE037DBD48
iv =B8E1FCF32932F1DDE85565032D505DC


키 파일 생성

$ vi keys.txt
1;B8E1FCF32932F1DDE85565032D505DC4;D8ED4A206B8A8FFD56072AA4AF3560590EE960E9EFE6F916A0B544FE037DBD48


암호화 플러그인 설치

$ vi my.cnf
plugin-load-add = file_key_management.so
file-key-management-filename = keys.txt


MariaDB 재시작



테이블 변경

MariaDB> alter table tests encrypted=yes encryption_key_id=1;

데이터 확인

$ vi test.ibd
암호화 전/후 비교