2012/02/24

nginxのログをLogWatchにセットする

nginxのログをLogwatchにセットしておくのを忘れていました。
ということで設定します。

Logwatchの設定ファイルを ユーザ設定ディレクトリに作成します。
# touch /etc/logwatch/conf/logfiles/httpd.conf
作成したファイルをエディタで開いて...
# vi /etc/logwatch/conf/logfiles/http.conf
LogFile = nginx/*access.log
Archive = nginx/*access.log.*.gz
*ExpandRepeats
*ApplyhttpDate 
という感じで、nginxのログファイル名とアーカイブファイル名、オプションを記述。

尚、nginxの設定によりログは/var/log/nginx/下に出力するよう設定しています (→前記事)。
また、ログローテートはlogrotateを利用しており、/etc/logrotate.d/nginxで設定済みです。

ちなみに、Logwatchの設定ファイルの配置構成ですが・・・
(※間違っている可能性があります)

  • /usr/share/logwatch/default.conf/ - デフォルトの定義設定が格納されたディレクトリ
    • logfiles/〇〇〇.conf - ログファイルグループの定義設定
       ("ログファイルのパス"が指定されている。)
    • services/△△△.conf - サービスフィルタの定義設定
       (サービスフィルタが処理する"ログファイルグループ名(○○○)"が指定されている。)
  • /usr/share/logwatch/dist.conf/ - ディストリによる定義設定が格納されたディレクトリ
  • /usr/share/logwatch/scripts/ - デフォルトのサービスフィルタ(処理スクリプト)が格納されたディレクトリ
    • logfiles/〇〇〇 - ログファイルフィルタ (Perlスクリプト)
       (ログファイルグループ"○○○"に対する処理スクリプト)
    • services/△△△ - サービスフィルタ (Perlスクリプト)
       ("△△△"のログ内容に対する処理スクリプト)
    • shared/***
  • /etc/logwatch/conf/ - ユーザによる定義設定を格納するディレクトリ
    • logfiles/〇〇〇.conf - ログファイルグループの定義設定
    • services/△△△.conf - サービスフィルタの定義設定
  • /etc/logwatch/scripts/ - ユーザによるサービスフィルタ(処理スクリプト)を格納するディレクトリ
    • logfiles/〇〇〇 - ログファイルフィルタ (Perlスクリプト)
    • services/△△△ - サービスフィルタ (Perlスクリプト)
となっているようです。たぶん。(間違いあれば、ご指摘お願いします!)

元々、/usr/share/logwatch/default.conf/logfiles/下には"http.conf"が存在しており、
そこにApacheのためのログファイルグループ定義が記述されています。


今回はさらに、/etc/logwatch/conf/logfiles/下に"httpd.conf"を新しく作成して
そこにnginxのための定義を記述しました。
こうすることで.../usr/share/logwatch/default.conf/logfiles/下の"http.conf"で定義された内容に加えて(上書きではなく追加で)、今回の定義した内容が追加されて処理されるようです。
つまり、nginxの定義設定を Apacheのための定義設定に追加したことになります。
そのため、ログの処理は、Apacheのためのスクリプトがそのまま利用されます。
nginxのログはApacheのログと形式が殆ど同じであるためにこれが可能なのですね。
尚、実際のログレポートは、Apacheとnginxのログが混ざった形で送られてきます。
(Apacheのためのログファイルグループ定義を上書きしたのではなく、あくまでそこに追加しただけであるからです。)

LogWatchによって生成されるレポートメールは
# logwatch -service http -print
でテスト出力を行うこともできます。
(この例では、httpサービスフィルタのテスト。)
あと、設定にもよりますが・・・
動作チェックのためにわざとログに残るようなアクセスをしてみても、
Logwatchのレポート出力範囲が”昨日分”だったりするので、
うっかり忘れていたりすると戸惑いましたw 注意ですね(^^;))


参考にさせていただきました(感謝♪):

0 件のコメント:

コメントを投稿

お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。