Pages

2011/04/05

nginxのログをsyslogに投げる

名前つきパイプの例、古典的なやり方。

rm /var/log/nginx/access.log
mkfifo /var/log/nginx/access.log




パイプの取り出し側にはそれなりに工夫が必要だと思うが、
とりあえずnginxを起動してから。
# cat /var/log/nginx/access.log | logger -p local4.info


とすると、loggerがsyslogに投げてくれる。

1301982441 local4.info prox01 "xx.xxx.xxx.xxx - - [05/Apr/2011:14:47:21 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0""

(フォーマットは少々いじっている。)


syslog-ngならsourceに指定することもできそうだ。


ただこれをやると、nginxがパイプの処理を待つようになっちゃうので使いどころ注意。

0 件のコメント:

コメントを投稿