KR20230054046A - 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법 - Google Patents

통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법 Download PDF

Info

Publication number
KR20230054046A
KR20230054046A KR1020210137607A KR20210137607A KR20230054046A KR 20230054046 A KR20230054046 A KR 20230054046A KR 1020210137607 A KR1020210137607 A KR 1020210137607A KR 20210137607 A KR20210137607 A KR 20210137607A KR 20230054046 A KR20230054046 A KR 20230054046A
Authority
KR
South Korea
Prior art keywords
log
index
received
management server
client
Prior art date
Application number
KR1020210137607A
Other languages
English (en)
Inventor
임진용
Original Assignee
한화시스템 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한화시스템 주식회사 filed Critical 한화시스템 주식회사
Priority to KR1020210137607A priority Critical patent/KR20230054046A/ko
Publication of KR20230054046A publication Critical patent/KR20230054046A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시 예는 로그 레벨이 원격 저장 레벨에 포함된 경우, UDP loopback을 이용하여 동일 노드의 로그 관리 데몬으로 해당 로그를 전달한다. 로그 관리 데몬은 이렇게 응용소프트웨어로부터 수신한 로그에 대해 순차적으로 인덱스를 붙인 뒤 UDP multicast 통신을 통해 로그 관리 서버로 송신한다.

Description

통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법{SYSTEM AND METHOD FOR REMOTELY STORING LOG IN COMMUNICATION SYSTEM}
본 발명은 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법에 관한 것이다.
로그는 컴퓨터의 처리 내용이나 이용 상황을 시간의 흐름에 따라 기록한 것, 혹은 기록하는 것이다. 로그는 사고가 발생했을 때 데이터의 복원이나 사고 원인의 규명 등에 도움이 되고, 네트워크의 부정 이용이나 데이터 파괴의 방지, 이용 요금의 산정의 기본 등에 쓰인다. 또 PC(개인용 컴퓨터) 통신에서 메일 등 통신 내용의 기록을 로그라 하고, 그 파일을 로그 파일이라고 한다.
이러한 로그의 경우 대부분 로컬 저장소에 파일의 형태로 저장하지만, 특정 경우 중앙화 된 서버에서 해당 로그를 수집하며, 이를 이용해 시스템의 전체적인 구성 및 상황을 파악할 수 있다.
클라이언트의 로그를 로그 서버에 저장하는 경우, UDP(User Datagram Protocol) 통신 또는 TCP(transmission control protocol) 통신을 사용한다. 이때, UDP 통신의 신뢰성 문제를 극복하기 위해 TCP 통신이 주로 사용된다. 그러나 1대의 서버와 N대의 클라이언트가 지속적으로 TCP 통신을 일 대 다로 연결하는 경우, 이러한 연결을 유지하기 위한 네트워크 및 시스템 부하가 서버에 집중되는 문제점이 있다.
본 발명은 응용소프트웨어에서 기록하는 로그를 원격지 컴퓨터에 저장하는 시스템 및 방법을 제공한다.
본 발명은 1대의 서버와 N대의 클라이언트간 통신에도 네트워크 및 시스템 부하가 서버에 집중되지 않도록 하는 시스템 및 방법을 제공한다.
본 발명의 실시 예에 따른 시스템은, 미리 지정된 로그 레벨이 원격 저장 레벨인 경우, UDP 루프백(loopback)을 이용하여 제1 로그 관리 데몬으로 해당 로그를 전송하는 응용 스프트웨어와, 및 상기 응용소프트웨어로부터 수신한 상기 로그에 순차적으로 로그 인덱스를 붙인 후, UDP multicast 통신을 통해 로그 관리 서버로 전송하는 상기 제1 로그 관리 데몬을 포함하는 클라이언트; 및 상기 로그를 수신하고, 로컬 경로의 파일과 함께 메모리에 저장하고, 수신된 로그의 인덱스를 검사하는 제2 로그 관리 데몬을 포함하는 상기 로그 관리 서버를 포함한다.
본 발명의 실시 예에 따른 방법은, 클라이언트의 소프트웨어에서, 미리 지정된 로그 레벨이 원격 저장 레벨인 경우, UDP 루프백(loopback)을 이용하여 제1 로그 관리 데몬으로 해당 로그를 전송하는 과정; 상기 클라이언트의 상기 제1 로그 관리 데몬에서, 상기 응용소프트웨어로부터 수신한 상기 로그에 순차적으로 로그 인덱스를 붙인 후, UDP multicast 통신을 통해 로그 관리 서버로 전송하는 과정; 및 상기 로그 관리 서버의 제2 로그 관리 데몬에서, 상기 로그를 수신하고, 로컬 경로의 파일과 함께 메모리에 저장하고, 수신된 로그의 인덱스를 검사하는 과정을 포함한다.
본 발명은 UDP 통신을 통해 클라이언트의 로그를 로그 관리 서버로 전송함으로써 로그 관리 서버에 집중되던 부하를 감소시킬 수 있다.
본 발명은 다수의 클라이언트에서 전송하는 원격 로그를 2대의 서버에서 이중화하여 저장할 수 있으며, 서버에 저장되는 로그 또한 로그인덱스 검사를 통해 중간에 누락된 로그 없이 저장 가능할 수 있다.
도 1은 rsyslog의 구성도이다.
도 2는 TCP 통신 연결 절차를 나타낸 흐름도이다.
도 3은 TCP 통신 메시지를 전송하는 예시도이다.
도 4는 본 발명의 실시 예에 따른 로그 관리 서비스 구성도이다.
도 5는 본 발명의 실시 예에 따른 통신 시스템에서 로그를 원격으로 저장하는 시스템 구성도이다.
도 6은 본 발명의 실시 예에 따른 로그 관리 데몬에서의 동작을 나타낸 예시도이다.
도 7은 본 발명의 실시 예에 따른 로그 관리 데몬(서버)에서의 동작을 나타낸 예시도이다.
도 8은 본 발명의 실시 예에 따른 로그 이중화 동작을 나타낸 예시도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 발명에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 발명에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 발명에서 사용된 "제 1", "제 2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 발명에 기재된 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상술한 어떤 구성요소가 상술한 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 어떤 구성요소와 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 발명에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 AP(application processor))를 의미할 수 있다.
본 발명에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 발명에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 발명에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 발명에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 발명에서 정의된 용어일지라도 본 발명의 실시 예들을 배제하도록 해석될 수 없다.
유닉스 계열의 운영체제는 syslog 표준 인터페이스를 이용해 커널과 응용소프트웨어에서 발생하는 로그를 생성 및 관리한다. 최근 기존 syslog의 단점을 보완한 rsyslog를 사용하고 있으며, 이를 통해 사용자는 응용소프트웨어에서 발생하는 로그를 로컬 및 원격지에 저장 및 확인할 수 있다.
도 1은 rsyslog의 구성도이다.
rsyslog의 동작은 로그데몬(100)을 통해 이루어지며, 사용자는 설정파일을 통해 세부적인 동작을 정할 수 있다. 이러한 동작을 위해 여러 파일이 존재하며 각 파일 별 설명은 아래와 같다.
- /etc/rc.d/init.d/rsyslog: 데몬 동작 스크립트
- /etc/rsyslog.conf: 데몬 환경설정 파일
- /etc/sysconfig/rsyslog: 데몬 실행 관련 옵션 설정 파일
- /sbin/rsyslogd: 실제 데몬 실행 명령
로그데몬(100)은 응용소프트웨어(102) 혹은 시스템커널(104)에서 전달 받은 로그에 대해 로컬저장파일(108)에 로컬저장, 콘솔출력(110), 외부서버(112)로의 전송을 진행한다.
외부서버(112)에 로그를 전송할 경우 환경설정 파일을 통해 통신방식을 선택할 수 있다. 기본 설정은 UDP 통신으로 되어 있지만 로그 전송의 신뢰성을 높이기 위해 사용자들은 대부분 TCP 통신을 통한 로그 전송을 사용한다.
또한, 로그를 원격지의 로그 서버에 저장할 경우 UDP 혹은 TCP 통신을 사용하게 된다. 이때, 많은 사용자들은 UDP 통신의 신뢰성 문제를 극복하기 위해 TCP 통신을 사용한다.
그러나 1대의 서버와 N대의 클라이언트가 지속적으로 TCP 통신을 연결하고 있을 경우 이러한 연결을 유지하기 위한 네트워크 및 시스템 부하가 서버에 집중 될 수 있다. 이런 문제점을 해결하기 위해 본 발명의 실시 예에서는 비연결지향인 UDP 통신을 이용해서 신뢰성 있는 원격 로그 저장을 하고자 한다.
UDP 통신의 경우 송신측에서 메시지를 송신한 뒤 수신측에서 해당 메시지에 대한 수신여부를 확인하지 않기 때문에 트래픽이 증가하여 네트워크 상황이 좋지 않을 경우 해당 메시지가 누락될 가능성이 존재한다. 따라서 메시지 전송에 대한 높은 신뢰성이 필요한 경우 TCP 통신을 사용하게 된다.
도 2는 TCP 통신 연결 절차를 나타낸 흐름도이다.
도 2를 참조하면, TCP 통신은 2대의 노드가 클라이언트(200)와 서버(210)로 구성된다. 클라이언트(200)는 서버(210)로 접속 요청(202)을 보내고, 해당 요청을 수신한 서버(210)는 응답(204)을 클라이언트(200)로 보낸 뒤 클라이언트(200)에서 접속을 완료했다는 메시지(206)를 다시 서버(210)로 보내며 연결을 이루게 된다.
도 3은 TCP 통신 메시지를 전송하는 예시도이다.
서버(210)는 메시지의 경우 처음 보내는 메시지부터 시퀀스 넘버를 확인하게 되며, 해당 메시지 수신 시 응답으로 ACK 메시지(302)를 보내게 된다. 서버(210)는 참조번호 302와 같이, 메시지를 송신한 뒤 참조번호 304와 같이, 해당 메시지의 시퀀스와 동일한 시퀀스의 ACK 메시지가 오지 않을 경우 상대 노드(클라이언트)는 메시지를 수신하지 못하였다 판단하여 재전송(306)이 반복해서 이뤄지게 된다.
또한, TCP 통신을 사용하는 노드의 경우 지속적인 통신을 위해서는 클라이언트와 서버간의 연결을 유지하고 있어야 한다. 이 경우 다수의 노드와 1 개의 노드가 연결할 경우 1 개의 노드에서는 해당 TCP 통신 연결들에 대해 통신 상태를 지속적으로 확인하며 이는 리소스 소모로 이어지게 된다. 만약 이벤트성으로 발생하는 메시지에 대한 전송을 위해 메시지 전송시에만 통신을 연결하더라도 TCP 통신 연결 및 종료를 위한 메시지 전송에 따라 네트워크 부하가 추가될 가능성이 있다.
도 4는 본 발명의 실시 예에 따른 로그 관리 서비스 구성도이다.
응용소프트웨어(410)에서는 로그 관리 서비스 라이브러리(400)에서 제공하는 API(application programming interface)를 통해 로그를 저장(450), 출력(440) 및 전송(430) 할 수 있다. 해당 API 사용 시 응용소프트웨어(410)의 종류, 이름, 로그 레벨, 출력 파일 및 라인 번호, 로그 내용을 입력하여 추후 해당 응용소프트웨어와 시스템의 유지보수에 도움을 준다.
로그 레벨의 경우 총 20개의 레벨로 구성되며 설정 파일을 통해 저장, 출력 및 전송을 수행 할 로그 레벨을 변경 할 수 있다. 응용소프트웨어에서 로그 레벨을 지정하여 로그 관리 서비스 라이브러리(400)에서 제공하는 API를 호출하면 로그 관리 서비스 라이브러리(400)는 해당 로그 레벨이 설정 파일에 설정되어 있는 저장, 출력 및 전송 중 가능한 동작을 수행한다. 설정 파일에 전송을 수행할 로그의 레벨에 응용소프트웨어(410)에서 API 호출 시 지정한 로그의 레벨이 포함되어 있을 경우 로그 관리 데몬(420)으로 해당 로그가 전달되며, 이 로그는 원격지의 외부서버(430)에 UDP 통신을 통해 송신된다.
도 5는 본 발명의 실시 예에 따른 통신 시스템에서 로그를 원격으로 저장하는 시스템 구성도이다.
본 발명의 실시 예에 따른 통신 시스템에서 로그를 원격으로 저장하는 시스템은 2 개의 로그 관리 서버(510-1, 510-2), 스위치(520), 복수 개의 클라이언트(500-1, 500-2, ... , 500-n) 등을 포함하여 구성될 수 있다.
로그의 원격 저장을 위한 로그 관리 데몬(500-1, 500-2, ... , 500-n, 510-1, 510-2)은 모든 노드에서 실행되며, 클라이언트/서버 역할로 구분되어 동작한다. 동작의 경우 서버의 IP(internet protocol)를 특정해서 동작하거나 실행 시 입력 인자를 통해 동작을 구분한다.
도 6은 본 발명의 실시 예에 따른 로그 관리 데몬(클라이언트)에서의 동작을 나타낸 예시도이다.
응용소프트웨어에서 로그 관리 서비스 라이브러리(400)에서 제공하는 API를 통해 로그를 남길 경우 해당 로그의 레벨을 지정하게 된다. 이때 지정된 로그는 3가지 출력이 가능하고 이는 설정 파일에 있는 값에 따라 동작하게 된다.
해당 로그 레벨이 설정 파일에 지정된 로컬 저장 로그 레벨에 포함되어 있을 경우 파일에 저장하며, 콘솔 출력에 지정된 로그 레벨에 포함되어 있을 경우 콘솔 화면에 해당 로그를 출력한다.
로그 레벨이 원격 저장 레벨에 포함된 경우, UDP loopback을 이용하여 동일 노드의 로그 관리 데몬으로 해당 로그를 전달한다. 로그 관리 데몬은 이렇게 응용소프트웨어로부터 수신한 로그에 대해 순차적으로 인덱스를 붙인 뒤 UDP multicast 통신을 통해 로그 관리 서버로 송신한다.
도 7은 본 발명의 실시 예에 따른 로그 관리 데몬(서버)에서의 동작을 나타낸 예시도이다.
로그 관리 서버에서 실행되는 로그 관리 데몬(서버)는 시스템 내부의 다른 노드의 로그 관리 데몬(클라이언트)가 송신한 로그를 수신한다. 해당 로그를 수신 뒤 로컬 경로의 파일과 메모리에 저장을 수행한다. 지속적으로 수신된 로그의 인덱스가 원격 로그 최대 저장 개수에 도달 할 경우 이후 수신된 로그를 저장할 로그 파일을 새롭게 생성한다(701). 예컨대, 도 7을 참조하면, 수신된 로그의 인덱스가 원격 로그 최대 저장 개수 500에 도달하면, 501번 로그 수신 시, 참조번호 701과 같이, 로그 파일을 재생성할 수 있다.
도 8은 본 발명의 실시 예에 따른 로그 이중화 동작을 나타낸 예시도이다.
클라이언트는 송신 중인 로그의 인덱스가 최대 로그 저장 횟수에 도달 할 경우 로그 관리 서버로 로그 확인 요청 메시지를 송신(801)한다. 로그 확인 요청 메시지를 수신한 로그 관리 서버는 기존에 원격 로그 수신 시 값을 변경했던 수신 여부 저장 배열에서 각 로그 인덱스에 따른 수신 여부를 확인한다. 로그 관리 서버는 로그 인덱스에 기반하여 수신 여부 검사 후 미수신 로그에 대해서는 해당 로그의 인덱스 값을 포함한 미수신 로그 요청 메시지(803)를 클라이언트에 송신한다.
미수신 로그 요청 메시지를 수신한 클라이언트는 이중화용 메모리에 저장되어 있는 로그 중 해당 인덱스를 가지는 로그의 내용을 로그 관리 서버로 UDP unicast 통신을 통해 재전송(805)한다. 재전송을 통해 로그 관리 서버에서 미수신 로그가 존재하지 않을 경우 로그 수신 완료 메시지를 전송(807)한다.
이후 로그 관리 서버는 수신한 로그를 클라이언트 IP로 만든 폴더 하위에 저장하고, 다음 로그 수신을 위한 루틴에 진입한다. 클라이언트는 기존에 저장하고 있던 이중화용 메모리를 해제하고, 응용소프트웨어로부터 전달 받은 원격 저장 로그를 지속적으로 로그 관리 서버로 송신한다.
이와 같이, 본 발명의 실시 예는 로그 인덱스 값에 기반하여 UDP 통신을 통한 원격 저장 로그 전송 중 누락된 로그에 대해 재전송을 통해 클라이언트가 송신한 원격 저장 로그를 2대의 로그 관리 서버에 동일한 내용이 저장되도록 한다.
본 발명의 실시 예는 기존 UDP 통신을 통해 원격지의 서버에 클라이언트의 로그를 전송하는 방법의 로그 누락을 방지하며, TCP 통신을 통한 방식의 과도한 리소스 사용을 개선할 수 있다.
UDP 통신의 경우 비연결지향형 통신으로써 송신측에서 수신측의 수신여부를 확인하지 않는다. 때문에 클라이언트의 로그를 원격지 서버로 UDP 통신을 통해 전송 할 경우 의도치 않게 누락되는 로그가 발생할 가능성이 있으며, 특히 이러한 상황은 네트워크의 혼잡 등 로그 분석이 필요한 시점에서 발생 가능성이 증가할 수 있다.
TCP 통신을 사용할 경우 연결지향형 통신이기 때문에 송신측에서 수신측의 수신완료 신호를 확인 후 다음 메시지를 송신하게 된다. 이러한 방식은 UDP 통신과 비교해서 상대적으로 통신속도가 낮아지는 원인이 된다. 또한, TCP 통신을 이용해 메시지를 주고 받는 서버와 클라이언트는 항상 연결을 유지하고 있어야하는데, 이때 단일 서버에 많은 클라이언트가 연결되어 있는 경우 자원소모가 증가하는 단점이 있다.
본 발명은 위의 문제를 해결하기 위해 UDP 통신을 이용해 로그를 전송하며, 누락된 로그에 대한 처리를 따로 해줌으로써 UDP 통신을 통한 단점을 극복할 수 있다. 또한, 기본적인 로그의 전송은 UDP multicast 통신을 통해 다수의 원격지 서버에서 수신이 가능하며 이후 로그 인덱스를 검사하여 누락된 로그에 대해 재전송을 진행한다.
본 발명의 실시 예는 이러한 방식을 통하여 다수의 클라이언트에서 전송하는 원격 로그를 2대의 서버에서 이중화하여 저장할 수 있으며, 서버에 저장되는 로그 또한 로그인덱스 검사를 통해 중간에 누락된 로그 없이 저장 가능할 수 있다.
전술된 내용은 본 발명가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시 예들은 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술적 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (6)

  1. 미리 지정된 로그 레벨이 원격 저장 레벨인 경우, UDP 루프백(loopback)을 이용하여 제1 로그 관리 데몬으로 해당 로그를 전송하는 응용 스프트웨어와, 및 상기 응용소프트웨어로부터 수신한 상기 로그에 순차적으로 로그 인덱스를 붙인 후, UDP multicast 통신을 통해 로그 관리 서버로 전송하는 상기 제1 로그 관리 데몬을 포함하는 클라이언트; 및
    상기 로그를 수신하고, 로컬 경로의 파일과 함께 메모리에 저장하고, 수신된 로그의 인덱스를 검사하는 제2 로그 관리 데몬을 포함하는 상기 로그 관리 서버를 포함하는 통신 시스템에서 로그를 원격으로 저장하는 시스템.
  2. 제1항에 있어서, 상기 로그 관리 서버는,
    상기 수신된 로그의 인덱스가 원격 로그 최대 저장 개수에 도달한 경우, 이후 수신된 로그를 저장할 로그 파일을 재생성함을 특징으로 하는 통신 시스템에서 로그를 원격으로 저장하는 시스템.
  3. 제2항에 있어서,
    상기 UDP multicast 통신 시 전송되는 메시지는 상기 클라이언트의 IP 주소, 상기 로그 인덱스, 로그 내용(LogContents)을 포함하고,
    상기 클라이언트는 송신 중인 로그의 인덱스가 최대 로그 저장 횟수에 도달 할 경우 로그 관리 서버에 로그 확인 요청 메시지를 송신하고, 및 상기 로그 관리 서버로부터 미수신 로그 요청 메시지를 수신하면, 이중화용 메모리에 저장되어 있는 로그 중 해당 인덱스를 가지는 로그의 내용을 상기 로그 관리 서버로 UDP unicast 통신을 통해 재전송하고,
    상기 로그 관리 서버는 상기 로그 확인 요청 메시지를 수신할 경우, 기존에 원격 로그 수신 시 값을 변경했던 수신 여부 저장 배열에서 각 로그 인덱스에 따른 수신 여부를 확인하고, 상기 로그 인덱스에 기반하여 수신 여부 검사 후 미수신 로그에 대해서는 해당 로그의 인덱스 값을 포함한 상기 미수신 로그 요청 메시지를 상기 클라이언트로 송신함을 특징으로 하는 통신 시스템에서 로그를 원격으로 저장하는 시스템.
  4. 클라이언트의 소프트웨어에서, 미리 지정된 로그 레벨이 원격 저장 레벨인 경우, UDP 루프백(loopback)을 이용하여 제1 로그 관리 데몬으로 해당 로그를 전송하는 과정;
    상기 클라이언트의 상기 제1 로그 관리 데몬에서, 상기 응용소프트웨어로부터 수신한 상기 로그에 순차적으로 로그 인덱스를 붙인 후, UDP multicast 통신을 통해 로그 관리 서버로 전송하는 과정; 및
    상기 로그 관리 서버의 제2 로그 관리 데몬에서, 상기 로그를 수신하고, 로컬 경로의 파일과 함께 메모리에 저장하고, 수신된 로그의 인덱스를 검사하는 과정을 포함하는 통신 시스템에서 로그를 원격으로 저장하는 방법.
  5. 제4항에 있어서, 상기 수신된 로그의 인덱스를 검사하는 과정은,
    수신된 로그의 인덱스가 원격 로그 최대 저장 개수에 도달한 경우, 이후 수신된 로그를 저장할 로그 파일을 재생성하는 과정을 포함함을 특징으로 하는 통신 시스템에서 로그를 원격으로 저장하는 방법.
  6. 제5항에 있어서,
    상기 UDP multicast 통신 시 전송되는 메시지는 상기 클라이언트의 IP 주소, 상기 로그 인덱스, 로그 내용(LogContents)을 포함하고,
    상기 클라이언트는 송신 중인 로그의 인덱스가 최대 로그 저장 횟수에 도달 할 경우 로그 관리 서버에 로그 확인 요청 메시지를 송신하고, 및 상기 로그 관리 서버로부터 미수신 로그 요청 메시지를 수신하면, 이중화용 메모리에 저장되어 있는 로그 중 해당 인덱스를 가지는 로그의 내용을 상기 로그 관리 서버로 UDP unicast 통신을 통해 재전송하고,
    상기 로그 관리 서버는 상기 로그 확인 요청 메시지를 수신할 경우, 기존에 원격 로그 수신 시 값을 변경했던 수신 여부 저장 배열에서 각 로그 인덱스에 따른 수신 여부를 확인하고, 상기 로그 인덱스에 기반하여 수신 여부 검사 후 미수신 로그에 대해서는 해당 로그의 인덱스 값을 포함한 상기 미수신 로그 요청 메시지를 상기 클라이언트로 송신함을 특징으로 하는 통신 시스템에서 로그를 원격으로 저장하는 방법.
KR1020210137607A 2021-10-15 2021-10-15 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법 KR20230054046A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210137607A KR20230054046A (ko) 2021-10-15 2021-10-15 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210137607A KR20230054046A (ko) 2021-10-15 2021-10-15 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20230054046A true KR20230054046A (ko) 2023-04-24

Family

ID=86141514

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210137607A KR20230054046A (ko) 2021-10-15 2021-10-15 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20230054046A (ko)

Similar Documents

Publication Publication Date Title
US8959530B1 (en) Messaging middleware processing thread count based events
US7752630B2 (en) System sending behavior modification hint to client to suggest alternative servers based on operating conditions of current server
US7840682B2 (en) Distributed kernel operating system
KR101203275B1 (ko) 서브큐를 이용한 로컬 메시지 프로세싱 개선
US8667184B2 (en) Distributed kernel operating system
WO2002001826A2 (en) Method and apparatus for restraining a connection request stream associated with a high volume burst client in a distributed network
US20060265492A1 (en) On-demand test environment using automated chat clients
US8275905B2 (en) System and method for store-and-forward for highly available message production
US7313635B1 (en) Method and apparatus for simulating a load on an application server in a network
AU2003225991B2 (en) Retry technique for multi-tier network communication systems
US20120124430A1 (en) Mechanism to Prevent Escaped Associations in Multi-Association RPC Based Protocols
CN112055088B (zh) 一种基于光闸的文件可靠传输系统及其方法
US8370443B2 (en) Reliable messaging using publish subscribe mechanism
KR20230054046A (ko) 통신 시스템에서 로그를 원격으로 저장하는 시스템 및 방법
US20190081875A1 (en) Identification of candidate problem network entities
US7366960B2 (en) Use of incarnation number for resource state cycling
CN108880994B (zh) 一种重发邮件的方法和装置
JP6182779B1 (ja) 転送装置、転送方法およびプログラム
JP2961873B2 (ja) 障害通知方式
JP2023057210A (ja) 情報処理装置,情報処理方法および情報処理プログラム
CN117061636A (zh) 消息交换方法和装置
Jia Communicating object group and protocols for distributed systems
CN112835728A (zh) 消息处理方法、装置、计算机设备和存储介质
Ding et al. Churn Tolerance Algorithm for State Machine Replication
CN115484004A (zh) 报错报文重试方法、装置、电子设备及存储介质