PostgreSQL 로그를 syslog 로 남길 수 있도록 7.1 에서 변경되었습니다. (그런 기능이 지원되지요) 처음에 syslog 로 남길수 있다는 글을 읽고 흥분된 마음에 설정을 해서 사용해 봤습니다. 몇가지 문제점이 눈에 뛰더군요.
1. syslog 의 기록 시간에 time/sequential writing 이 아니라는 점입니다.
이것은 충분한 시간 차이가 난다면 당연히 시간순서대로 기록이 됩니다.
하지만 거의 동시에 약간의 차이를 두고 두개의 log 내용이 발생했다면
이 둘의 syslog 기록시간은 뒤바뀔 소지가 있습니다. 이것은 PostgreSQL
자체의 문제가 아닌 syslog 자체가 로그 기록을 하는데 있어서의 특징인
것입니다. (syslog 는 로그 발생시간을 초단위까지만 점검을 하고, 초단위
까지 같다면 그냥 같은 시간에 발생한 로그로 생각하고, syslog 에 로그
기록 요청이 들어오는 대로 기록하게 되어 있습니다.)
이것은 생각보다는 상당히 큰 문제로서 syslog 에 남아 있는 PosrgreSQL
의 로그 내용으로 자료 복구에 사용할 수 없다는 결론이 나옵니다.
2. log 의 양.
물론 log level 을 조정할 수 있지만 정말 필요한 로그를 모두 기록하기
위해서는 엄청난 공간을 요구한다는 사실입니다. 이곳 DSN 에서 이틀
기록량이 GB 단위 였습니다.
3. system loading
안타깝게도 syslog 자체가 system 로딩을 제법 잡아 먹습니다. PostgreSQL
이 바쁘게 동작하는 사이트라면 이것은 무시못할 로딩을 주게 됩니다.
====================================
결론
====================================
대형사이트를 운영한다면 syslog 는 아직은 사용하지 않는것이 옳다고 생각한다.
로그 서버를 따로 두는 것도 하나의 방법은 될 수 있으나 여전히 time/sequential
violation 문제만큼은 해결이 되지 않는다.
이 모든 문제가 해결될려면 PostgreSQL 은 로그의 발생시간을 micro/second 까지
분류해서 보고할 수 있어야 하며, 이를 기록하는 자체 로그 기록 기능을 가져야
할 것 같다.
|