회사에서 서버 모니터링을 위해 MRTG를 사용하고 있습니다. 개발하는 입장에서 실시간으로 서버트래픽을 확인하고 싶을때가 많이 있는데, 이럴때 아주 훌륭하더군요.


커스터마이즈하기도 그다지 복잡하지 않아서, 저같은 경우는 위에서 보시듯이 분당 쿼리수(Query per minute)를 출력해주는 스크립트 하나 짠 뒤에 MRTG와 붙여서 DB서버의 부하를 측정하는 용도로 사용하고 있습니다.

지금까지는 apache + php가 올라가있는 서버에서 돌리고 있었는데, 몇몇 프로그램에서 .html도 PHP로 인식하도록 handler 설정을 변경하게 될 일이 생겼는데요, 하필이면 그때부터 MRTG가 PHP 파싱 에러를 내더군요!!

왜 이런 에러가 나는지 봤더니 MRTG가 만들어낸 html 아웃풋 앞쪽에 다음과 같은 XML 헤더가 붙어있더군요.
<?xml version="1.0" encoding="iso-8859-1" ?>

이놈의 헤더가 <? ~ ?> 안쪽에 있는 xml 헤더를 php 스크립트인것처럼 인식하게 만든거죠.

해당 부분을 주석처리하려고 mrtg 소스 디렉토리에서 *.c와 *.h를 대상으로 'xml'을 검색해보니.. 세상에 아무것도 안나오더군요.

혹시나 해서 mrtg 실행파일을 직접 vi로 열어보니... 털썩... PERL 스크립트였다는...
역시나 텍스트기반의 데이터 처리에는 PERL을 따라갈 자가 없는 것인가봅니다.

ps. xml 헤더 출력부분은 #으로 주석처리해서 끝~
  1. Favicon of http://mwultong.blogspot.com/ BlogIcon mwultong 2006.08.22 15:10 신고 댓글주소 | 수정 | 삭제 | 댓글

    저의 경우에는 텍스트뿐 아니라 거의 모든 작업을 펄로 하고 있습니다. 펄처럼 간편한 언어는 없더군요.

    (∩_∩)





티스토리 툴바