さくら VPS でログを監視する (CentOS7 + nginx + Logwatch)
はじめに
さくらの VPS (CentOS7 + nginx) の環境に Logwatch を入れてログを監視します。
注意事項
コマンドはすべて root 権限での操作です。
目次
環境
- VPS : さくらVPS 1G SSD
- OS : CentOs 7.3
- その他 : nginx/1.10.2, Logwatch 7.4.0
Logwatch とは
カスタマイズ可能な、ログモニタリングシステムで、一定期間のログのレポートを作成してくれます。
Logwatch のインストール
yum コマンドでパッケージをインストールします。
# yum install logwatch
Logwatch の設定
logwatch の設定ファイルを変更する場合は、/usr/share/logwatch/default.conf/logwatch.conf
の内容から、変更したい箇所を /etc/logwatch/conf/logwatch.conf
へ追記して修正します。
メールの宛先を変更する場合は、以下のように追記します。
# vi /etc/logwatch/conf/logwatch.conf
logwatch.conf
MailTo = xxx@goodlife.tech
ログレポートの確認
ログレポートを標準出力に出力するには、何も指定せずに実行するか、--output stdout
と指定して実行します。デフォルトの出力先は logwatch.conf で設定されていて、stdout です。
# logwatch
# logwatch --output stdout
サービスを指定してログを表示する場合は、--service
オプションを指定します。cron のログを表示する場合は以下の通りです。
# logwatch --service cron
nginx 用の設定
logwatch には、標準で nginx 用の設定ファイルが存在しないため、httpd 用の設定ファイルをコピーして作成します。
cp /usr/share/logwatch/default.conf/logfiles/http.conf /etc/logwatch/conf/logfiles/nginx.conf
cp /usr/share/logwatch/default.conf/services/http.conf /etc/logwatch/conf/services/nginx.conf
cp /usr/share/logwatch/scripts/services/http /etc/logwatch/scripts/services/nginx
cp /usr/share/logwatch/default.conf/logfiles/http-error.conf /etc/logwatch/conf/logfiles/nginx-error.conf
cp /usr/share/logwatch/default.conf/services/http-error.conf /etc/logwatch/conf/services/nginx-error.conf
cp /usr/share/logwatch/scripts/services/http-error /etc/logwatch/scripts/services/nginx-error
設定ファイルを変更する
nginx のサービス設定ファイルを以下のように変更します。
# vi /etc/logwatch/conf/services/nginx.conf
/etc/logwatch/conf/services/nginx.conf
- Title = "httpd"
+ Title = "nginx"
- LogFile = http
+ LogFile = nginx
nginx のログファイルの形式を設定します。
# vi /etc/logwatch/conf/logfiles/nginx.conf
/etc/logwatch/conf/logfiles/nginx.conf
- 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 = /var/log/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 = /var/log/nginx/access.log-*.gz
nginx-error のサービス設定ファイルを以下のように変更します。
# vi /etc/logwatch/conf/services/nginx-error.conf
/etc/logwatch/conf/services/nginx-error.conf
- Title = http errors
+ Title = nginx errors
- LogFile = http-error
+ LogFile = nginx-error
nginx-error のログファイルの形式を設定します。
# vi /etc/logwatch/conf/logfiles/nginx-error.conf
/etc/logwatch/conf/logfiles/nginx-error.conf
- 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 = /var/log/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 = /var/log/nginx/error.log-*.gz
Logwatch を実行して、nginx のログが出力されれば成功です。
# logwatch --output stdout --service nginx
--------------------- nginx Begin ------------------------
(略)
---------------------- nginx End -------------------------