Apache 오픈소스를 이용한 외부 확장모듈 개발 방법론
글쓴이: sysmoon / 작성시간: 금, 2011/06/24 - 9:40오전
안녕하세요
Apache 오픈 소스를 이용하여 서버에서 송수신되는 HTTP 메시지를 실시간으로 분석하여 필요한 정보를 DB에 저장하고자 합니다. Apache 오픈 소스 내에서 개발하면 될 것 같지만, 좀더 쉬운 개발 방법론을 고민하고 있습니다.
개발 방법론을 고민하니 다음과 같은 방법들이 있는 듯 합니다.
1. Apache 소스 자체 수정 (C언어, Mysql 연동 모듈)
- 이 방법이 가장 확실하겠지만, 개발 기간이 긴 것이 단점입니다.
2. mod_python 이용
- 파이썬이라는 편리한 언어를 사용할 수 있지만, mod_python에 대한 예제를 보면 http://~~/test.py 이렇게
파이썬 확장자를 요청했을 경우 test.py가 동작하도록 하는 기능 제공
- Apache가 실행될 때 파이썬으로 개발한 실시간 모니터링 프로그램이 항상 실행되어 서버로 송수신되는 메시지 모니터링이 구현 가능한지 모르겠음.
3. CGI
- 이 또한 별도의 모니터링 프로세서로써 동작 가능한지 모르겠고, CGI는 시스템 자원 낭비가 심하기 때문에 되도록이면 사용하지 않을려고 함.
즉, Apache 내부 송수신되는 HTTP 메시지를 분석해서 DB에 저장하기 위한 모니터링 프로그램 개발을 위한
방법론에 어떤 것이 있을까요? (되도록 파이썬을 이용하여 개발하고자 합니다.)
Forums:
그냥 log를 분석하면 되지 않을까요? pipe로
그냥 log를 분석하면 되지 않을까요?
pipe로 외부 프로그램으로 보내는 방법을 지원한다고 합니다.
예를 들어 multilog를 통해서...
CustomLog "| /usr/local/bin/setuidgid loguser /usr/local/bin/multilog t /web/logs/access" combined
http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#customlog 참조.
모든 http protocol을 분석하시려면 2와
모든 http protocol을 분석하시려면 2와 3은 불가능 합니다.
또 다른 방법은 libpcap 을 이용해서 80번을 dump 하는 방법이 있겠네요. 이 방법이라면 python으로 가능할 것 같습니다. python에도 libpcap module이 있을테니까요. (ruby는 확실히 있는 걸 아는데, python은 확신(!)은 못하겠군요)
댓글 달기