728x90
OS 입출력
OS/Linux 2023. 5. 16. 15:23

리눅스 장치, 파일 디스크립터 표준 입출력 장치 정보를 받아들이는 장치 : 표준 입력 장치 정보를 출력하는 장치 : 표준 출력 장치 오류 메시지를 내보내는 장치 : 표준 오류 장치 파일 디스크립터 파일 디스크립터 이름 정의 0 stdin 표준 입력 1 stdout 표준 출력 2 stderr 표준 오류 리다이렉션 표준 입출력 장치를 파일로 바꾸는 것 출력 리다이렉션 명령어에 '>' 은 기존 파일의 내용을 삭제하고 새로 결과를 저장할 때 ex) cat > file2.txt 파일이름 명령 > 파일이름 명령 1에서 1은 파일 디스크립터 1 을 의미. 생략 가능 쉘은 '>'을 사용한 리다이렉션에서 지정한 파일의 이름이 없으면 파일을 생성하여 명령의 수행 결과를 저장. 지정한 이름의 파일이 있으면 이전의 내용은 없..

좋은 객체 지향 설계의 5가지 SOLID
이것저것/스프링 2022. 11. 15. 05:33

SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP : 단일 책임 원칙(single responsibility principle) OCP : 개방-폐쇄 원칙(Open/Closed principle) LSP : 리스코프 치환 원칙(Liskov substitution priciple) ISP : 인터페이스 분리 원칙(Interface segregation principle) DIP : 의존관계 역전 원칙(Dependency inversion principle) SRP 단일 책임 원칙 하나의 클래스는 하나의 책임만 가져야한다. 하나의 책임이라는 것은 모호하다. 1. 클 수 있고, 작을 수 있다. 2. 문맥과 상황에 따라 다르다.중요한 기준은 변경이다. 변경이 있을 때 ..

Linux 스케줄러
OS/Linux 2022. 11. 4. 10:42

CentOS 6.10 버전을 기준으로 작성했습니다. 서비스 배포시 logs_$date 로 나오는 로그 백업 폴더가 쌓이고 쌓여서 서버용량을 가득 채워서 스케줄러를 통해서 매일 오전 5시에 bzip 으로 압축하는 스케줄러를 작성했습니다. 1. 스케줄러 리스트 crontabl -l 45 19 * * * /home/user/test.sh 17 20 * * * /home/user/test2.sh현재 스케줄러가 어떤게 돌아가고 있는지 확인 가능 2. 스케줄러 등록할 스크립트 생성 및 작성 cd /home/user sudo vi logs_bzip.sh #실행 권한 sudo chmod +x logs_bzip.sh#!/bin/sh # crontab every thursday am 5:00 이런식으로 주석으로 스케줄러 ..

Fluentd Http Test
Fluentd/적용 2022. 10. 25. 17:49

Fluentd 에서 http로 다른 서버로 로그 전송 후 로그를 받은 서버에서 log analytics로 전송하도록 만들었다. 로그 전송 서버 @type tail encoding utf-8 @type regexp expression /^\[(?\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]\[(?.*?)\] \[(?.*?)\] (?.*?)$/ path /%Y-%m-%d.txt pos_file /tmp/fluent/log_file.pos tag test.t1 @type record_modifier char_encoding utf-8 host_ip "#{Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_addr..

Linux Signal
OS/Linux 2022. 8. 10. 18:58

Linux에는 signal 이 있다. kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMI..

Elasticsearch APM 적용기..
검색엔진/Elasticsearch 2022. 8. 10. 18:32

elasticsearch apm 을 사용해서 어플리케이션의 상태를 알아보려고 한다. 이 글에서 사용하는 elasticsearch 의 버전은 7.11.1 이다. elasticsearch 7.11.1 과 호환 되는 elastic 소프트웨어는 여기 에 자세하게 나와 있다. 사용중인 OS의 버전에 맞게 호환되는 elasticsearch, kibana, apm 등이 있으니 다른 버전으로 할 때 위 페이지에서 확인 후 설치 ElasticDocs 자세한 내용은 여기 ElasticDocs 에서 확인하면 된다. elasticsearch 와 kibana , apm server 는 동일한 버전으로 맞춰준다. 환경 centos 8 jdk 1.7 버전 정보 elasticsearch 7.11.1 kibana 7.11.1 apm-..

Fluentd from ASCII-8BIT to UTF-8 error
Fluentd/적용 2022. 7. 31. 18:30

Fluentd 를 실제 서버에 올려놓고 로그 수집을 기다리던 중에 중국어 와 json 로그를 전송하던 중에 \xE6 from ASCII-8BIT to UTF-8 에러가 나와서 로그가 정상적으로 발송되지 않는 현상이 일어났다. 이러한 에러는 서버에서 보내는 로그 형식이 UTF-8 인데 인코딩이 잘못되는 경우이다. 지금 회사의 경우에는 대만 회사여서 중국어가 로그에 포함되는 경우가 있는데 이 때 발생하는 에러 같다. 그래서 태그 안에서 tail 밑에 encoding UTF8을 적어서 하면 중국어는 깨져서 나와도 정상적으로 로그가 발송되는 것이 확인이 되었다. @type tail encoding utf8 ... 문제는 json 형식으로 보낼 때 \xE6 에러가 아닌 \xC 계열로 예외가 발생하는데 이 때는 f..

Jenkins 역프록시 설정이 잘못됨
이것저것 2022. 7. 25. 13:21

먼저 내가 Jenkins의 Jenkins 관리에 들어갔을 때 보았던 문장이 역방향 프록시 설정이 잘못되었다고 뜸. 이런 메시지가 나왔을 때의 해결법. 가상호스트 파일의 수정 Jenkins Location의 url 부분이 현재 들어와 있는 url과 다를 시 저기 보이는 Jenkins Location 부분을 현재 url 포트번호까지 복사해서 넣어주면 해결이 된다

728x90