Apache 오픈소스를 이용한 외부 확장모듈 개발 방법론

sysmoon의 이미지

안녕하세요

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에 저장하기 위한 모니터링 프로그램 개발을 위한
방법론에 어떤 것이 있을까요? (되도록 파이썬을 이용하여 개발하고자 합니다.)

익명 사용자의 이미지

그냥 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와 3은 불가능 합니다.

또 다른 방법은 libpcap 을 이용해서 80번을 dump 하는 방법이 있겠네요. 이 방법이라면 python으로 가능할 것 같습니다. python에도 libpcap module이 있을테니까요. (ruby는 확실히 있는 걸 아는데, python은 확신(!)은 못하겠군요)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.