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/
テンプレートに存在しない、任意の解析レポートを作成したい場合は… 『logwatchでsyslogファイルの解析やhddのS.M.A.R.T.データ出力を行う』を参照。
sendmailでログを送信する設定
設定ファイルを編集する。
/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 が無いとエラーが表示された場合は、作業用ディレクトリを作成する。
結果をテキストファイルに出力し、ユーザ指定のメール送信スクリプトを使う設定
/etc/cron.daily/00logwatch
#!/bin/bash #Check if removed-but-not-purged test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0 #output filename strFile="/tmp/logwatch_"`date "+%Y-%m-%d_%Hh%Mm"` #execute /usr/sbin/logwatch > $strFile # mail to /usr/local/bin/ユーザ指定のメールスクリプト.pl --to=test@example.com --to_name="root (ThinkCentre M720q)" --subject="Logwatch report (Ubuntu 18.04)" --debug=0 $strFile
/etc/logwatch/conf/logwatch.conf
LogDir = /var/log
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
Format = text
Encode = none
# 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
Service = All