Logwatchでサーバの稼働監視を行う!(Ubuntu Server 20.04)

Ubuntu 20.04では、logwatchを使用すると簡単にサーバの監視を始めることができます。

logwatchをインストールする!

Ubuntu 20.04に、logwatchをインストールします。

$ sudo apt install logwatch

logwatchの動作確認を行う!

logwatchの動作確認を行います。

$ sudo logwatch --output stdout

Apache、Postfix、OpenSSH、Disk Space等の情報が表示されます。

logwatchの内容がメールで送信されるか確認する!

logwatchの内容がメールで送信されるか確認します。デフォルトでは、root宛に送信されます。

$ sudo logwatch --output mail

logwatchのデフォルト設定を確認する!

設定変更を行う前に、デフォルトの設定を確認しておきましょう。以下は、設定内容の抜粋です。

$ cat /usr/share/logwatch/default.conf/logwatch.conf
LogDir = /var/log
TmpDir = /var/cache/logwatch
Output = stdout
Format = text
Encode = none
MailTo = root
MailFrom = Logwatch
#Filename = /tmp/logwatch
#Archives = No
Range = yesterday
Detail = Low
Service = All
Service = "-zz-network"
Service = "-zz-sys"
Service = "-eximstats"
#Service = ftpd-messages   # Processes ftpd messages in /var/log/messages
#Service = ftpd-xferlog    # Processes ftpd messages in /var/log/xferlog
#Service = pam_pwdb        # PAM_pwdb messages - usually quite a bit
#Service = pam             # General PAM messages... usually not many
#LogFile = messages
mailer = "/usr/sbin/sendmail -t"
#HostLimit = myhost
#AppendVarAdmToLogDirs = 1
#AppendVarLogToLogDirs = 1
#AppendCWDToLogDirs = 1
# vi: shiftwidth=3 tabstop=3 et

メール送信先を変更する場合は、以下の設定を変更します。

MailTo = root

logwatchの設定を変更する!

デフォルト設定をコピーして設定変更してみましょう。本来は、「/etc/logwatch/conf/logwatch.conf」に設定ファイルを配置するのですが、なぜかエラーが発生するため、デフォルト設定を変更します。本サイトでは、「MailTo」はGmailの宛先に、「Detail」の値を「High」に変更して運用しています。

$ sudo cp -p  /usr/share/logwatch/default.conf/logwatch.conf /usr/share/logwatch/default.conf/logwatch.conf.bak
$ sudo vi /usr/share/logwatch/default.conf/logwatch.conf
...

logwatchを実行しても何も表示されない!

サーバを構築してすぐの場合は、logwatchを実行しても何も表示されないことがあります。何も出力されない場合は、「Detail」の値を「High」に変更して実行してみましょう。ログがなくても出力される項目も出力対象になるので、動作確認を行うことができます。

logwatchを定期実行する!

サーバの監視は、定期的に行うことが大切です。デフォルトで、以下に自動実行されるように設定されています。

$ cat /etc/cron.daily/00logwatch 
#!/bin/bash

#Check if removed-but-not-purged
test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0

#execute
/usr/sbin/logwatch --output mail

#Note: It's possible to force the recipient in above command
#Just pass --mailto address@a.com instead of --output mail

スケジュールは、/etc/crontabを確認します。

$ cat /etc/crontab
...
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
...

おわりに

logwatchをインストールすれば、簡単にサーバの状態監視を始めることができます。