로그 (컴퓨터)
로그(log)는 컴퓨터의 처리 내용이나 이용 상황을 시간의 흐름에 따른 기록이다. 사고가 발생했을 때 데이터의 복원이나 사고 원인의 규명 등에 도움이 되고, 네트워크의 부정 이용이나 데이터 파괴의 방지와 이용 요금의 산정의 기본 등에 쓰인다. 또한, 개인용 컴퓨터 통신에서 메일 등 통신 내용의 기록이며, 그 파일을 로그 파일(log file)이라고 한다.
개요
컴퓨터 등에 접속한 기록 등이 컴퓨터 내에 남아있는 것을 로그라고 한다. 네트워크에 접속 시 아이피 주소나 접속한 운영체제 등이 서버 컴퓨터에 남는다. 어원은 통나무라는 의미의 로그가 통나무 집이나 목선 등으로 의미가 확장되었는데, 승선을 로그인(log in)이나 로그온(log on)으로 사용하고 하선을 로그아웃(log out)이나 로그오프(log off)로 부르게 된 것이다. 컴퓨터 시대가 오면서 이 의미는 컴퓨터에도 확장되었고, 컴퓨터에 접속하거나 종료한 것뿐만 아니라 사용기록 전반 기록하는 것을 뜻하는 단어로까지 의미가 발전하게 되었다. 시스템 보안이나 보수유지에서 언제나 나오는 방식이며, 현대 수사방식 중에서 포렌식 기법이 있는데, 시스템을 뒤져보기 전에 로그 파일을 분석한다. 이 작업만으로도 어느 정도 필요한 정보들을 회수할 가능성이 있다. 즉, 시스템 전반의 상태를 알 수 있는 중요한 키워드 중 하나인 셈이다. 참고로 한 세대의 운영체제들은 모든 동작을 수행할 때마다 많은 로그를 생성한다. 부팅 및 종료에 관련된 사항은 물론, 서비스 및 시작 프로그램의 정상 실행 여부라든지, 드라이버 로딩의 오류, 예상치 못한 커널 패닉, 심지어 로그를 생성했다는 로그까지도 생성을 한다. 이러한 과정에서 약간의 오버헤드 및 디스크 사용이 발생한다. 특히, 에스에스디(SSD) 수명에 영향이 있다고 로그 생성 기능을 끄면 안된다. 로그는 시스템 내부에서도 유지보수에 큰 영향을 끼치며, 성능과 수명상 영향도 별로 없다. 그리고, 로그를 잘못된 동작 및 데이터의 손실을 복구하는 데 이용할 수도 있다. 대표적인 예가 데이터베이스의 트랜젝션 로그를 이용한 복원이다.[1]
특징
로그 파일
로그 파일이란, 컴퓨터의 모든 사용내역을 기록하고 있는 파일이며, 해킹 등의 사건이 발생했을 때, 로그파일을 분석하여 사건의 원인을 파악한다. 리눅스(Linux) 및 유닉스(Unix)의 대부분의 로그 파일 저장 경로는 '/var/log'에 저장된다. 리눅스 로그 파일은 텍스트 형식으로 저장되며, 텍스트 형식의 로그 파일은 캣(cat)과 레스(less) 등의 명령어와 브이아이편집기(vi editor)로 내용 확인이 가능하다. 텍스트 형식이 아닌 바이너리 형식의 로그 파일은 btmp 및 wtmp 로그는 텍스트 형식이 아니어서 캣, 레스와 브이아이편집기로 하려고 하면, 내용이 제대로 나오지 않기 때문에 특정 명령어를 쳐야 확인이 가능하다. 윈도우 로그 파일(Windows Log File)은 이벤트라는 정보로 시스템 운영 전반에 걸쳐 저장된다. 기본 이벤트는 시스템의 모든 이벤트의 상황들을 저장하는 응용 프로그램 이벤트, 시스템 이벤트, 보안 이벤트가 존재한다. IIS 서버를 운영하는 경우에는 웹, FTP 로그가 존재한다.[2]
로깅
컴퓨팅에서 로그파일은 운영체제나 다른 소프트웨어가 실행 중에 발생하는 이벤트나 각기 다른 사용자의 통신 소프트웨어 간의 메시지를 기록한 파일이다. 그 로그를 기록하는 것이 로깅이다. 트랜잭션 로그는 시스템과 해당 시스템 사용자 간 통신에 대한 파일이거나, 시스템에 속하는 터미널의 사용자가 발생시킨 트랜잭션의 종류, 내용, 시간을 자동으로 캡처한 데이터 수집 방식이다. 수많은 운영 체제, 소프트웨어 프레임워크, 프로그램들은 로깅 시스템을 포함한다. 널리 쓰이는 로깅 표준은 시스로그(syslog)이며, 인터넷 표준기구(IETF RFC 5424)에 정의되어 있다.
- 이벤트 로그 : 감사 추적 제공을 위해 시스템 실행 시 발생하는 이벤트를 기록하며, 시스템 활동을 이해하고 문제를 진단하는 데 사용된다. 복잡한 시스템의 활동을 이해하는 데 필수적이며, 특히 서버 애플리케이션처럼 사용자 상호 작용이 거의 없는 응용 프로그램에 사용된다.
- 트랜잭션 로그 : 데이터베이스 로그라고 불리기도 하며, 데이터베이스에서 충돌이나 하드웨어 고장이 있어도 데이터베이스 관리 시스템(DBMS)의 ACID 특성을 보장하기 위한 조작 이력을 나타낸다. 로그는 전원이 끊겨도 데이터를 저장할 수 있는 보조 기억 장치에 파일에 출력되는 경우가 많다. 데이터베이스를 시작한 후 일관성 없는 상태이거나 제대로 종료되지 않은 것을 감지하면, 데이터베이스 관리 시스템은 트랜잭션 로그를 읽고 다음과 같이 실시한다. 데이터 무결성과 지속성을 보장하기 위해 필요 하다.
- 메시지 로그 : 인터넷 릴레이 챗, 인스턴트 메신저, 대화 기능이 있는 쌍방향 파일 전송 시스템 파일 공유 클라이언트와 멀티플레이어 게임들은 사용자들끼리 공적으로나 사적으로 주고받는 대화 메시지를 기록한다.[3]
로그 기록 관리
로그 기록 관리 태스크 그룹은 시스템 로그 기록 관리 태스크로 표시한다. 로그 기록이란 구성요소 또는 애플리케이션 내에서 작성하여 파일, 데이터베이스, 콘솔 화면 등과 같은 출력 대상으로 보내는 메세지와 데이터를 말한다. 오브젝트 요청 브로커(Tivoli Kemel Service)는 국지 및 단일 환경 내에서의 로그 기록과 분배 및 다중 환경에서의 로그 기록 유형의 로그 기록을 지원한다. 오브젝트 요청 브로커(Tivoli Kernel Services)의 로그 기록 서브 시스템은 여러 오브젝트를 사용하여 시스템 이벤트를 기록한다. 이러한 오브젝트에는 로그 기록기, 핸들러, 필터 등이 있다. 로그 작성기는 구성요소가 작동되는 동안 발생하는 이벤트를 기록하는 소프트웨어 오브젝트이다. 로그 기록 서브 시스템은 메세지 로그 작성기 및 추적 로그 작성기의 두 가지 유형을 지원한다. 메시지 로그 작성기능 오브젝트 요청 브로커(Tivoli Kernel Services) 구성요소의 텍스트 메세지를 기록하는 데 사용된다. 이러한 메세지는 각 로케일에 맞게 국제화 된다. 또한, 메세지 로그 작성기와 연관된 메세지 유형이며, 기본적으로 모두 사용 가능한 상태이다. 정보용 메세지는 참고할 필요는 있지만 사용자가 예방 조치를 취하거나 동작을 수행하지 않아도 되는 상태이며, 경고 메세지는 사용자가 알아야 할 상태가 발견되었음을 알려 사용자가 필요한 조치를 반드시 취해야 한다는 것을 나타내지는 않는다. 예를 들어, 이 메세지 유형은 프로그램의 일부가 예상대로 수행되지 않았지만, 기본값이 적용되기 때문에 프로그램은 계속 작동되며 결과물의 유효성을 검사해야 한다는 것을 의미할 수 있다. 또한, 메세지 로그 작성기와 연관된 메세지 유형은 구성요소가 데이터베이스 항목을 쓰는 데 실패한 것과 같은 심각한 이벤트를 사용자에게 알리는 오류 메세지, ORB를 다시 시작해야 하거나 오류 복구에 실패하여 구성요소를 종료해야 하는 등의 조치가 필요한 가장 심각한 오류가 나타내는 치명적 메세지가 있다.
추적 로그 작성기는 구성요소 코드가 예상대로 작동하지 못했을 때 운영 환경에 대한 정보를 캡처하는 데 사용된다. 고객 지원부의 직원은 추적 로그 작성기가 캡처한 정보를 사용해서 문제가 발생한 출처를 추적하거나 오류의 발생 원인을 파악한다. 일반적으로 이 정보는 기본적으로 사용되지 않는다. 추적 메세지는 지원 부서의 직원을 위한 메세지이기 때문에 보통은 검사 도중에 볼 수 있는 파일에 기록된다. 핸들러는 로그 작성기가 기록한 메세지를 목적지로 향하게 하는 소프트웨어이다. 메세지를 파일, 데이터베이스, 콘솔 화면 등으로 직접 보낼 수 있다. 핸들러는 로그 작성기가 기록한 정보를 원하는 목적지로 보내기 위해 로그 작성기와 연결된다. 필터는 로그 작성기, 핸들러에 적용되거나 로그 작성기와 핸들러 모두에 적용될 수 있다. 로그 작성기에 적용될 때 필터는 로그 작성기가 처리하는 메세지와 추적 레코드의 유형을 판별한다. 필터는 로그 레코드 유형을 기준 또는 필터에 포함된 조회와 비교한다. 로그 작성기, 핸들러 및 필터의 수가 많으면 로그 기록 관리 부담이 커질 수 있다. 이러한 경우, 그룹을 작성하여 관리 부담을 줄일 수 있다. 그룹에는 공통 특성을 가진 로그 작성기, 핸들러 또는 마스크가 포함되어 있다. 새로 작성한 로그 작성기, 핸들러 또는 마스크를 설정 취소 특성과 함께 작성하면 그룹의 해당 특성에 대한 값을 계승할 수 있다. 로그 작성기, 핸들러, 마스크가 그룹에 속하고 해당 특성이 갱신되면 그 그룹에 있는 나머지 로그 작성기, 핸들러, 마스크의 특성도 갱신된다. 따라서 개별 로그 작성기, 핸들러, 마스크 특성을 수동으로 갱신할 필요가 없다.[4]
- 핸들러 및 마스크 구성
- 오브젝트 요청 브로커(Tivoli Kernel Services) 설치에서 시스템 로그 작성기, 핸들러, 마스크를 보고 구성하며 액세스하려면 포트폴리오의 로그 기록 관리 태스크 그룹에서 로그 기록 구성 태스크를 선핵해야 한다. 로그 기록 구성 창에서는 특성 편집, 연관된 로그 기록 오브젝트 나열 또는 삭제와 같이 로그 작성기, 핸들러 및 마스크를 관리할 수 있다. 태스크를 수행하기 전에 데이터베이스 핸들러 구성을 포함한 로그 기록 구성 및 설정에 대한 문제점 해결은 오브젝트 요청 브로커(Tivoli Kernel Services) 정보를 참조하면 해결가능 하다.
- 로그 보기
- 모든 시스템 로그를 보려면 포트폴리오의 로그 기록 관리 태스크 그룹에서 로그 모두 보기 태스크를 선택해야 한다. 변환 가능한 시스템 로그에 대한 자세한 정보를 보려면 포트폴리오의 로그 기록 관리 태스크 그룹에서 변환된 로그 보기 태스크를 선택해야 한다. 변환된 로그 보기 창은 모든 로그 보기 창과 같다. 로그 모두 보기 창에서는 특정 로그 항목을 선택하고 해당 내용을 자세히 확인할 수 있다.
각주
- ↑ 로그 나무위키 - https://namu.wiki/w/%EB%A1%9C%EA%B7%B8?from=log#s-1.4
- ↑ 딘딩, 〈로그파일이란?〉, 《티스토리》, 2016-12-13
- ↑ 로그파일 위키백과 - https://ko.wikipedia.org/wiki/%EB%A1%9C%EA%B7%B8%ED%8C%8C%EC%9D%BC
- ↑ 〈Tivoli Kernel Services 관리 소개〉, 《티볼리》
참고자료
- 로그 나무위키 - https://namu.wiki/w/%EB%A1%9C%EA%B7%B8?from=log#s-1.4
- 로그파일 위키백과 - https://ko.wikipedia.org/wiki/%EB%A1%9C%EA%B7%B8%ED%8C%8C%EC%9D%BC
- 전자용어사전, 〈로그〉, 《네이버 지식백과》
- 딘딩, 〈로그파일이란?〉, 《티스토리》, 2016-12-13
- 〈Tivoli Kernel Services 관리 소개〉, 《티볼리》
같이 보기