18 February 2010

(Ubuntu) Logwatchの結果をメールで送信する

Ubuntu 9.10でのLogwatchメール送信の設定メモ。

■ Logwatch インストール

# apt-get install logwatch

インストーラが自動的にcronのcron.dailyにスクリプトを作っているので、念のために確認する。

/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

■ 設定ファイル

設定ファイルが”標準ではインストールされない”ので、テンプレートよりコピーする。 なお、servicesディレクトリ内で、”チェックしたくない”ログに対する設定スクリプトはコピーしなくてもよい。

# cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/ # cp /usr/share/logwatch/default.conf/services/* /etc/logwatch/conf/services/

設定ファイルを編集する。

/etc/logwatch/conf/logwatch.conf
# Default Log Directory # All log-files are assumed to be given relative to this directory. LogDir = /var/log # You can override the default temp directory (/tmp) here TmpDir = /var/cache/logwatch #Output/Format Options #By default Logwatch will print to stdout in text with no encoding. #To make email Default set Output = mail to save to file set Output = file #Output = stdout Output = mail #To make Html the default formatting Format = html Format = text #To make Base64 [aka uuencode] Encode = base64 Encode = none # Default person to mail reports to. Can be a local account or a # complete email address. Variable Output should be set to mail, or # --output mail should be passed on command line to enable mail feature. #MailTo = root MailTo = myname@example.com # Default person to mail reports from. Can be a local account or a # complete email address. MailFrom = Logwatch #Archives = No # Range = All # The default time range for the report... # The current choices are All, Today, Yesterday Range = yesterday # The default detail level for the report. # This can either be Low, Med, High or a number. # Low = 0 # Med = 5 # High = 10 Detail = Low # The 'Service' option expects either the name of a filter # (in /usr/share/logwatch/scripts/services/*) or 'All'. # The default service(s) to report on. This should be left as All for # most people. Service = All mailer = "/usr/sbin/sendmail -t"

■ テスト

次のコマンドのいずれかを実行して、チェック結果のメールが着信するか確認すればよい。

# /etc/cron.daily/00logwatch  ~ または ~ # logwatch

テスト時に、作業用ディレクトリ /var/cache/logwatch が無いとエラーが表示された場合は、作業用ディレクトリを作成する。