Supporting access_log to a pipe?

I need to monitor access log in a separated application, to identify
frequent visits like DoS attack.

Now I’m using apache httpd. CustomLog directive of httpd (equivalent to
access_log directive in Ngnix) supports write log lines to the stdin of
a piped application.

Quote from http://httpd.apache.org/docs/2.2/mod/mod_log_config.html

Syntax: CustomLog file|pipe format|nickname environment-variable]
pipe
The pipe character “|”, followed by the path to a program to receive the
log information on its standard input.

Will Ngnix support this feature? Or is there any solution to monitor
every log line of access_log?

regards

-Wesley

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,3015,3015#msg-3015

On Wed, Jun 17, 2009 at 11:53:27AM -0400, wesleywu wrote:

Will Ngnix support this feature? Or is there any solution to monitor every log line of access_log?

No, nginx will not support logging to a pipe since this is simlpy waste
of CPU.
You may try
tail -F /path/to/log | app
This is almost the same waste of CPU as piped log.

Thanks for your kindly response, Igor :slight_smile:

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,3015,3026#msg-3026

On Wed, 2009-06-17 at 11:53 -0400, wesleywu wrote:

Will Ngnix support this feature? Or is there any solution to monitor every log line of access_log?

You might consider using a different syslogd such as metalog which
supports event handling and see if you can get this patch to work
(apparently it’s widely used, so I have some faith in its stability):

For 0.6.x:
http://www.ruby-forum.com/topic/153141

For 0.7.x:
http://www.ruby-forum.com/topic/178502

Regards,
Cliff