[OS]/Embedded&Linux

[네트워크 이야기] 넌 딱 걸렸어, log ③

하늘을닮은호수M 2006. 3. 21. 17:48
반응형
[네트워크 이야기] 넌 딱 걸렸어, log ③
출판일 :2005년 9월호

지난 호까지 네트워크를 구축하고 운영하는데 있어 가장 기반이 되는 기술에 대해 소개했다. 이번호부터는 실제로 현장에서 네트워크를 운영함에 있어서 쉽게 부딪힐 수 있는 문제와 이에 대한 해결책에 대해 살펴보자. 이번호에는 그 첫 번째로 로그에 대해 자세히 알아본다. 로그 관리는 지난 2003년 1.25 대란을 거치면서 그 중요성이 더욱 부각된 요소로 로그의 형태와 장비별 로그의 차이, 시스로그 서버 운영법 등에 대해 소개한다.

최성열 | 파이오링크 기술지원센터장

(화면 5)는 필자의 회사에서 만드는 4/7계층 스위치(Piolink Application Switch)의 GUI 화면에서 시스로그를 설정한 것으로, 대부분의 장비가 그렇듯이 시스로그 서버를 설정하는 일은 그리 어렵지가 않다. 로그서버의 IP를 설정하고 기능과 단계를 설정하면 된다. 다시 한 번 강조하지만 처음부터 'Debug'로 설정하는 것은 장비의 부하를 가중시킬 수 있으며, 설령 로그를 받는다 하더라도 로그가 너무 많고 난해해서 분석 그 자체가 부담스러울 수 있다는 점을 명심하자.

공개용 시스로그 서버 운영하기
시스로그는 원래 유닉스 계열에서 시작된 것으로 기능, 단계를 비롯한 대부분의 기능이 유닉스 시스템에서 사용하던 형태들이다. 비록 네트워크 장비가 유닉스 시스템과 다른 형태를 갖고 있지만 시스로그 서버의 대부분이 이들 형태를 그대로 유지하고 있다. 그래서 유닉스 계열인 리눅스 등에서는 별도의 시스로그 프로그램 없이 기본적으로 제공하는 'syslogd'라는 데몬을 이용하면 쉽게 시스로그 서버를 이용할 수 있다.
참고로 리눅스에서는 '-r' 옵션을 두어 syslogd 데몬을 구동하면 원격에서 보낸 로그 메시지도 받을 수 있다. 필자의 경우 로그 관리가 필요할 경우 리눅스 서버에서 간단하게 운영을 한다. 하지만 종종 리눅스 시스템을 별도로 구축해야 하거나 리눅스 등의 운영이 여의치 않은 경우가 있는데 이때는 윈도우가 운영되는 컴퓨터 또는 서버에서 시스로그가 가능하도록 해야 한다.
인터넷에서 '로그 또는 시스로그' 라고 검색했을 때 가장 많이 등장하는 방법이 바로 '키위(Kiwi)'라는 프로그램이다. 키위는 외국에서 만들어진 툴이긴 하지만 공개용으로 가장 많이 사용되는 시스로그 서버다.
키위는 설치 방법을 별도로 소개할 필요가 없는 정말 간단한 프로그램으로, 설치부터 기본적인 운영까지 모두 굉장히 쉽게 구성돼 있다. 키위 시스로그 데몬은 www.kiwisyslog.com에서 다운로드 받을 수 있다.
이 프로그램은 기본적으로 공개용(Freeware)이지만 다양한 부가기능(다양한 로그 필터링, ODBC 데이터베이스로의 전달 등)이 필요할 경우 라이선스당 99달러 정도를(한화로 10만원 조금 넘는 비용) 지급하면 된다. 하지만 기본적인 기능만으로도 시스로그 서버를 운영하는데는 큰 문제가 없을 것으로 생각한다.

(화면 6) 윈도우에서 운영되는 키위 서버

(화면 6)에서 보듯이 실제 네트워크 장비의 포트를 뽑았다 연결하기도 하고, 로그인 실수(패스워드 오류)를 하기도 해서 로그를 생성시켜보았다. 윈도우 상에서 운영되는 키위 서버는 아주 보기 쉽게 시간(Date, Time)과 기능을 나타내고 있다. 이와 같은 로그는 실제 장비에서는 (화면 7)과 같이 남아있게 된다.

(화면 7) 장비에서 직접 확인한 로그

하지만 이 로그들은 장비의 메모리에 저장돼 있어 혹시라도 재부팅되거나 일정량의 로그 이상이 되면 로그가 로테이션돼(로그의 저장 용량이 한정되어 있다) 이전의 로그는 지워지게 돼 있다. 하지만 시스로그 서버를 별도로 운영만 하고 있다면 장비에서 로그를 얻을 수 없다 하더라도 8월 23일 13:08분경에 스위치에 포트3이 다운됐다가 연결된 사실과 210.97.247.224라는 컴퓨터를 통해서 누가 접속을 하려고 했으나 잘못된 패스워드로 했었다는 것을 알 수 있다. 혹자는 실제로 이런 시시콜콜(?)한 것들을 알아야 하는가라고 반문할지도 모르겠다. 필자의 대답은 '물론'이다. 아무 문제없이 시스템이 운영될 때는 상관없지만 문제가 발생할 경우에는 아주 실력 좋은 선배보다 더 확실한 도움을 줄 수 있기 때문이다.
참고로 (화면 8)은 같은 시간에 스위치에서 발생한 로그를 리눅스 시스로그 서버로도 같이 보내 본 것이다(실시간으로 여러 대의 시스로그 서버에 정보를 보낼 수 있다).

(화면 8) 리눅스 시스로그 서버에서 받은 스위치 로그

리눅스에서는 간단하게 '-r' 옵션을 추가해서 시스로그 서버를 구축했다. 리눅스에서 운영할 경우는 관리자가 리눅스에 조금만 익숙하다면 특별히 운영하는데 문제는 없을 것으로 보인다.

<여러 대의 로그를 분석하는 팁>
네트워크 상에서는 하나의 시스템이 여러 가지 다른 네트워크 장비와 연결되는 경우가 대부분이다. 그래서 필요에 따라서는 2, 3계층 스위치, 라우터, 서버, 파이어월 등의 여러 시스템들과의 연계성을 따져야 할 때가 많다. 이때 시스로그에서 각 장비에 대한 이벤트 정보만 얻을 수 있으면 문제가 발생했을 때 가장 엔지니어답게 문제를 해결할 수 있지 않겠는가. 하지만 이렇게 여러 장비의 로그 또는 단일 시스로그 서버에서 얻은 로그를 분석할 때 가장 중요한 것은 바로 시간상 오차를 계산해야 한다는 점이다. 하나의 시스로그 서버에서 얻은 경우는 시스로그 서버의 시간이 기록되기 때문에 시간 순서가 정확할 수 있다. 하지만 여러 대의 장비에서 각각 로그를 분석할 때는 대부분의 장비가 몇 분에서 몇 시간까지 시간차이를 보이는 경우가 종종 있어 오류를 범할 수 있다.
예를 들어 어떤 장비의 포트가 링크 다운된 후에 페일오버(Failover) 등이 발생해야 하는데 시간차를 고려하지 않으면 페일오버된 후에 링크 다운이 발생한 것처럼 인식할 수도 있다. 실제로 이런 일들은 종종 발생한다. 때문에 분산된 장비에서의 로그를 각각 분석할 때는 시간오차가 어떻게 되는지를 반드시 확인하기 바란다.
(화면 6, 7, 8)의 3가지 로그를 살펴보면 시간들이 맞는 것처럼 보이지만 다들 조금씩 차이를 보이는 것을 알 수 있을 것이다.
이런 문제를 해결하기 위해 운영을 잘하는 엔지니어들은 시스템 운영시 NTP(Network Time Protocol) 서버를 직접 운영하거나 외부의 공개용 NTP 서버를 활용해 시간을 동기화 시킨다.

키위 시스로그 발생기
키위 웹사이트에 가 보면 몇 가지 유용한 프로그램이 있는데 그 중에서도 키위 시스로그 서버 테스트에 손쉽게 사용할 수 있는 툴이 있는데 그것은 바로 'Kiwi SyslogGen' 이다. 이 툴에 사용된 'Gen'은 'Generator'의 약자로, 무엇인가를 발생시킨다는 뜻이다.
일단 시스로그 서버를 구축했지만 별도로 테스트하기가 쉽지 않다면 이 툴을 이용해서 간단하게 시스로그를 보내보는 테스트를 할 수가 있다. 키위 툴이 모두 윈도우 기반이듯이 이 툴도 윈도우 기반이며, 여러분의 컴퓨터에 두개의 프로그램을 동시에 설치하면 관련 테스트를 해 볼 수가 있다. (화면 9, 10)은 필자의 컴퓨터에서 두 개의 데몬을 설치해 테스트를 한 화면이다.

(화면 9) 여러 가지 옵션을 가진 syslog Generator


(화면 10) Generator에서 발생한 로그를 받은 키위 시스로그 서버

Generator는 다양한 옵션을 갖고 있는데 특히 'Priority' 부분을 원하는 여러 가지 옵션으로 수정할 수 있도록 해서 보다 능숙하게 키위를 사용할 수 있도록 했다. (화면 10)을 보면 'Random' 형태로 기능(Facility)과 단계(Level)를 받아볼 수가 있다. 별도의 네트워크 장비나 시스템을 이용하기 힘들 경우에 정말 간단하게 테스트해 볼 수 있으니 많은 도움이 될 것이다.

전자우편으로 로그 받기
시스로그는 IT 시스템 운영에서 간단하지만 중요하게 사용되는 기능이다. 하지만 이 방법 외에도 발생한 로그를 미리 설정한 관리자 메일 주소로 전달하도록 하는 방법도 있다. 이 방법은 사용자가 시스로그 서버처럼 일일이 찾아가서 확인해야 하는 번거러움을 해소시키기 위해 도입된 방법으로 기능(Facility)과 단계(Level)를 조절해 일정시간마다 관리자에게 로그파일들을 보내주는 기능을 제공한다.


(화면 11) 일정시간마다 로그를 보내주는 기능

이 같은 기능은 이벤트가 적고 위험 단계가 높은 수준(Warning or Error)의 로그만을 받도록 설정한다면 하루에 한번 정도 네트워크를 점검하는데 유용하게 사용할 수 있을 것이다(Notice 정도의 단계는 매일 확인하기에 부담이 될 수도 있고 자칫 그냥 불편해져서 삭제해 버리는 경우가 발생할 수도 있다).
이 같은 기능은 일정시간마다 로그를 보내주는데, 장비 중에는 이벤트가 발생했을 때마다 메일을 보내주는 기능을 제공하는 경우도 있다. 하지만 잦은 로그 생성이 시스템에 부하를 주는 것처럼 메일 역시 장비가 메일 클라이언트로 동작해야 하기 때문에 일반 시스로그 보다 부하를 더 느낄 수가 있으므로 신중하게 기능 선택을 해야 한다. 참고로 키위 시스로그 툴에도 전자우편으로 보내기 기능이 제공된다.
앞서 시스로그가 사용하는 포트는 UDP 514 포트라고 했는데, 시스코의 PIX 파이어월 등의 일부는 UDP가 아닌 TCP를 사용해 로그를 보내는 경우가 있다(다행히 키위가 이 부분을 지원하기 때문에 문제는 없지만 미리 알아둘 필요는 있다. 이때 사용하는 포트는 TCP 514가 아니라 TCP 1468이다. 이는 파이어월이라서 로그의 손실을 막기 위해서 사용하는 것으로 보인다).
이번호부터 다루게 되는 주제에 대해 어떤 독자는 '잡기술'이라고 생각할 수도 있을 것이다. 하지만 1.25 인터넷 대란을 생각해 보라. 어디서 문제가 발생했는지.... 8월호까지 연재된 기술들은 어디서나 쉽게 접할 수 있는 것들이지만 지금부터의 연재될 기술들은 현장에서 일을 할 때 그 중요성을 실제 피부로 느낄 수 있는 아주 중요한 것들이 될 것이다.

출처]

반응형