logWatchを導入してLOGチェックを効率化していましたがデフォルト設定のlogWatchで監視できるWebサーバはApacheのみです。Nginxのログを監視する場合はLogwatcheの監視設定にNginxの設定を追加しましょう。
調査したところ、Apacheの設定をコピーしてそれを基に修正すれば簡単にNginx用の設定を作成できるようです。
1.設定ファイルのコピー
Apache用のアクセスログ監視設定とエラーログ監視設定をコピーします。元の設定ファイルとは異なる/etc/logwatchにコピーするのはアップデート時に削除されるのを防ぐためらしい。コピー対象は3行セットとなっていて、上から順にプログラム,監視対象の設定ファイル,ログ設定ファイルです。
1 2 3 4 5 6 7 8 |
# アクセスログ監視設定 cp /usr/share/logwatch/scripts/services/http /etc/logwatch/scripts/services/nginx cp /usr/share/logwatch/default.conf/services/http.conf /etc/logwatch/conf/services/nginx.conf cp /usr/share/logwatch/default.conf/logfiles/http.conf /etc/logwatch/conf/logfiles/nginx.conf # エラーログ監視設定 cp /usr/share/logwatch/scripts/services/http-error /etc/logwatch/scripts/services/nginx-error cp /usr/share/logwatch/default.conf/services/http-error.conf /etc/logwatch/conf/services/nginx-error.conf cp /usr/share/logwatch/default.conf/logfiles/http-error.conf /etc/logwatch/conf/logfiles/nginx-error.conf |
2.監視対象の設定ファイルの変更
修正するのは、以下の2ファイルで変更点は、httpd→Nginxの2行のみです。
# vi /etc/logwatch/conf/services/nginx.conf
1 2 3 4 |
-Title = "httpd" -LogFile = http +Title = "nginx" +LogFile = nginx |
# vi /etc/logwatch/conf/services/nginx-error.conf
1 2 3 4 |
-Title = httpd errors -LogFile = httpd-error +Title = nginx errors +LogFile = nginx-error |
3.ログ設定ファイルの変更
監視対象とするログファイルを特定する設定をNginx用に変更します。ログファイル用とログアーカイブファイル用の2箇所を変更します。対象は監視ログファイル用設定とエラーログファイル用設定の2ファイルです。
# vi /etc/logwatch/conf/logfiles/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# ログファイル用 -LogFile = httpd/*access_log -LogFile = apache/*access.log.1 -LogFile = apache/*access.log -LogFile = apache2/*access.log.1 -LogFile = apache2/*access.log -LogFile = apache2/*access_log -LogFile = apache-ssl/*access.log.1 -LogFile = apache-ssl/*access.log +LogFile = nginx/*access.log* #アーカイブ用 -Archive = archiv/httpd/*access_log.* -Archive = httpd/*access_log.* -Archive = apache/*access.log.*.gz -Archive = apache2/*access.log.*.gz -Archive = apache2/*access_log.*.gz -Archive = apache-ssl/*access.log.*.gz -Archive = archiv/httpd/*access_log-* -Archive = httpd/*access_log-* -Archive = apache/*access.log-*.gz -Archive = apache2/*access.log-*.gz -Archive = apache2/*access_log-*.gz -Archive = apache-ssl/*access.log-*.gz +Archive = nginx/*access.log-*.gz |
#vi /etc/logwatch/conf/logfiles/nginx-error.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# ログファイル用 -LogFile = httpd/*error_log -LogFile = apache/*error.log.1 -LogFile = apache/*error.log -LogFile = apache2/*error.log.1 -LogFile = apache2/*error.log -LogFile = apache2/*error_log -LogFile = apache-ssl/*error.log.1 -LogFile = apache-ssl/*error.log +LogFile = nginx/*error.log* #アーカイブ用 -Archive = archiv/httpd/*error_log.* -Archive = httpd/*error_log.* -Archive = apache/*error.log.*.gz -Archive = apache2/*error.log.*.gz -Archive = apache2/*error_log.*.gz -Archive = apache-ssl/*error.log.*.gz -Archive = varnish/*error.log.*.gz -Archive = archiv/httpd/*error_log-* -Archive = httpd/*error_log-* -Archive = apache/*error.log-*.gz -Archive = apache2/*error.log-*.gz -Archive = apache2/*error_log-*.gz -Archive = apache-ssl/*error.log-*.gz +Archive = nginx/*error.log-*.gz |
4.テスト
期待通りにnginxのログが出力されるかテストします。Nginxサービスだけのログを以下のコマンドで標準出力に出力します。
1 2 3 4 5 6 |
# logwatch --output stdout --service nginx ################### Logwatch 7.4.0 (03/01/11) #################### ... --------------------- nginx Begin ------------------------ ... ---------------------- nginx End ------------------------ |
成功しました。
5.参考にさせて頂いたサイト
【Logwatch】nginx 用の設定を作ってログを監視します!
さくらVPSでログを監視する(CentOS7+nginx+Logwatch)
ありがとうございます。