저는 아직 로깅시스템에 대해서 들어본적도 구경해 본적도 없습니다.

하지만 아주 큰 시스템에서는 이미 사용하고 있겠거니...

제가 생각하는 개념과는 조금 다른 형태로 사용하고 있겠거니 생각은 합니다.^^;;



제가 말하는 로깅시스템은 프로그램으로 구현한 로깅시스템이 아닙니다.

제가 말씀드리고자 하는 것은 단순히 로그만 담아 놓는 시스템입니다.

로깅만을 위해서 로깅 전용 서버를 하나 추가해야 합니다.

비용적으로 문제가 될 수 도 있습니다.

하지만 제가 아래설명하는 것들은 그 비용에 대한 충분한 역할을 할 수 있을 것이라 생각이 됩니다.




왜!! 로깅시스템을 말하는가?

로그는 아주 중요합니다.

누구도 부인할 수 없을것입니다.

개발자의 판단에 의해서 필요한 로그만 남긴다고요?

하지만 여러분은 개발을 하면서 필요없는 로그를 남기고 있다는 생각이 드 실수도 있고.

디버깅중에 필요한 로그가 없어서 코드에 필요한 로그를 넣는 경우도 있습니다.



로깅을 많이 하면 좋긴 합니다..

하지만 시스템에서 그것을 처리하려면 하드를 엑세스 해야 합니다.

알고 계시듯 하드를 엑세스하는 것은 메모리를 엑세스하는 것보다.

몇배는 느리고..시스템에 부하가 있을 수 있습니다.

그리고 그 로그를 모니터링 하신다고요?

그 로그를 실시간 모니터링 하기 위해..

Unix같은 시스템에서 "tail -f" 같은 명령...그리고..

필요에 따라 "grep" 명령을 이용해서 모니터링을 하게 됩니다.



작은 규모의 시스템에서는 필요치 않을 수 있습니다.

하지만 모니터링을 하는 사람이 200명 가량되는..

프로그램을 개발한 개발자가 200명 가량 되는 프로젝트에서는.

(현재 제가 있는 KOCOM 차세대 시스템은 200명 가량이 개발/운용 모니터링 중입니다.)

모니터링에서 엄청난 부하를 주게 됩니다.

물론 개발중에도......시스템이 200명의 개발자를 버티지 못하고...

느리게 돌아가는 경우도 자주 있스빈다..



얼마전 모니터링을 하는데...전화가 오더군요..

시스템팀 : 지금 "tail -f log | grep" 몇개 나 띄워 두셨죠?
저          : "tail -f" 8개, "tail -f log | grep" 4개 띄웠습니다.
시스템팀 : 지금 운용시스템에 부하가 가서 그런데, 중요한것만 모니터링 하시고, 나머지
               모니터링은 오후에 해주실 수 없는지요?
저          : 운용에 지장이 된다면....그러도록 하겠습니다.

이런일은 충분히 일어날 가능성이 있습니다.

제가 직접 겪어 보았고요...

돈이 왔다갔다 하는 업무를 하고 있다 보니..

모니터링을 계속하게됩니다..

특히 운용초반에는 말이죠..

사소한 에러도 큰 사고가 될 수 있으니 말이죠...



자...이런일을 해소 하기 위해서..

로깅을 담당하는 서버를 하나 두는건 어떨 까요?

로깅 시스템이 로깅하는데만 도움이 될 것 같다고요?

저는 스템 전반적 성능의 향상도 가져올 수 있다고 생각합니다.

우선적으로!! 하드에 엑세스 하는 일이 줄어듭니다..

물론 큐 + 쓰레드로 구현을 해 놓았겠죠..

물론 성능 향상만 생각한다면 로깅용 "HDD"를 추가 하면 되겠지요..

하지만 실시간 모니터링이 가능해지는 것과..

중요한 로그들을 모두 담아 둘 수 있는 여유가 생기니..

그것이 이득이 될 것 같네요..



그리고 모니터링 시스템과 별개의 말씀인데..

로그를 담을때..

개발자의 판단으로 로그를 담는 것 외에.

시스템이 일괄적으로 로깅을 해주었으면 좋겠다는 생각이 듭니다.

예를 든다면.. memcpy 같은 함수를 사용할때나..

DB 엑세스를 할때...

DB엑세스에서 In/Out/처리 메시지 등등..

소켓통신시에서도.. In/Out/처리메시지 등등을..

일괄적으로 남겨 두고..

처리메시지가 "에러"인경우는 에러의 레벨을 높게...

형태로 에러를 모아두는 것입니다..

개발자가 필요에 의해 디버깅을 하는데..

로그가 남아 있지 않으면 낭패 이잖아요..

운용중에는 더 큰 문제가 될 수도 있습니다..

사용자가 에러를 발생시켰는데..

로그가 부족해서 판단이 안되는 경우가 생기면..

사용자한테 전화해서...

똑같은 상황을 한번 더 재현해달라고 부탁해야 합니까?

그런 아니잖아요,.^^

'컴퓨터 이야기' 카테고리의 다른 글

코드 뭉개기에 당하다.ㄱ-;;  (16) 2007.03.08
코드뭉개기 놀이(?)  (15) 2007.03.06
[개발자이야기] 전산개론의 중요성  (7) 2007.02.21
윈도우 비스타 출시와 Active X  (8) 2007.02.14
UNIX 아주 간단한 awk #2  (0) 2007.02.14

+ Recent posts