gray log

김경현·2023년 8월 6일
0

https://yunhyeonglee.tistory.com/34

로그란?

  • 사용자에게 시스템이 돌아가는 상황, 행위, 이벤트 정보를 시간에 따라 알려주는 기록
  • 특히 사고나 장애 발생 시 원인을 파악하고 대처할 수 있도록 해주는 귀중한 데이터!
  • 대표적인 로그 프로그램으로 log4j 가 있다. (보안강화)

로깅 시스템

  1. 로깅의 가독성 좋게 변경할 수 있다.
  2. 로그 레벨에 따라 환경에 맞게 설정할 수 있다. (개발 서버면 debug 레벨, 운영서버면 info 레벨 등)
  3. Console에만 출력하는게 아니라 네트워크나 파일로도 남길 수 있다.
  4. 성능측인 측면도 System.out보다 월등하다.(보인 이슈)
  5. 로그를 파일로 남길시 용량에 따라 분리도 가능하다.

System.out.println()의 문제점

대부분의 개발자들은 로그를 찍기 위해서 System.out.println() 메서드를 사용한 시스템 로그를 많이 사용한다. 가장 편하고, 확인하기 좋은 방법이지만 성능에 영향을 많이 주는 경우가 빈번하게 발생한다. System.out.prinln() 메서드로 로그가 출력되는 윈도 콘솔을 활성화시키면 그렇지 않을 때와 현저하게 차이가 발생한다. 특히 커널 CPU가 많이 발생하는데, 윈도에서 화면을 출력할 때 커널 CPU를 많이 점유하기 때문이다.이 결과는 어느 사이트의 화면을 튜닝했을 때의 결과이다. 변경 1은 로거를 사용하면서 로그 사용 여부를 false로 했을 경우이며, 변경 2는 모든 로거를 주석 처리하고 System.out.println()을 제거한 경우이다. 변경 1을 반영하자 성능이 39% 개선되었고, 변경 2를 반영하자 146%가 개선되었다.
다음과 같은 사례도 있다. 한 번 요청할 때 5,000명의 사용자 정보를 요청하고, 처리하는 과정에서 응답 시간이 약 20초에 달하는 사이트가 있었다. 원인을 파악해 본 결과 애플리케이션이 5,000명의 정보를 모두 System.out.println()으로 처리하도록 되어 있다. 이 한 줄을 지우자 응답 시간은 6초로 개선되었다.
따라서 시스템 로그를 프린트하면 반드시 성능에 영향을 주게 된다.
https://velog.io/@jsj3282/10.-%EB%A1%9C%EA%B7%B8%EB%8A%94-%EB%B0%98%EB%93%9C%EC%8B%9C-%ED%95%84%EC%9A%94%ED%95%9C-%EB%82%B4%EC%9A%A9%EB%A7%8C-%EC%B0%8D%EC%9E%90

로그를 사용하기 좋은 환경

mongodb, elasticsearch

Graylog의 특징

Graylog Server는 Syslog TCP/UDP, GELF TCP/UDP 스트림을 바로 수신할 수 있다. 실제 로그를 생성하는 애플리케이션에서는 Graylog Server를 수신지로 바로 로그를 전송하면 된다. 즉, 애플리케이션에서는 로그 데이터를 1차원의 Key-Value 구조로 GELF 포맷으로 전송하기만 하면 Graylog에 의해 Elasticsearch에 적재하고 시각화된 정보로 가공하여 즉시 이용할 수 있다.

TCP(Transmission Control Protocol)은 연결지향적 프로토콜을 말한다. 연결지향 프로토콜이란 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다.

UDP PUser Datagram Protocol 의 약자로 TCP 통신과 더불어 데이터를 주고받는 통신 체계이다. 데이터그램 통신 프로토콜 이라고도 하며, 연결지향인 TCP와 달리 비연결성 프로토콜이다.


Graylog의 작동방식



Graylog 설명

https://yunhyeonglee.tistory.com/34

공부

elasticsearch(무료) 공부

0개의 댓글

관련 채용 정보