logwatchとは
サーバでは色々なサービスからのログを収集しています。
そのログを確認・解析することで「障害の兆候」や「原因」「稼働状況」等が分かりますが、収集されるログの量が多い場合はログの確認・解析作業がとても大変になります。
logwatchはログを自動的に解析し、その結果をリポートとして知らせて運用をサポートしてくれるソフトとなります。
logwatchインストール
logwatchはyumで簡単にインストールすることができます。
# yum install logwatch
logwatchをインストールすると、自動的にcronに登録されて毎日logwatchが実行されるようになります。(設定ファイルは/etc/cron.daily/0logwatch)
設定
logwatchデフォルトの設定が下記のファイルとなります。
/usr/share/logwatch/default.conf/logwatch.conf
デフォルトの設定から変更したい項目を、下記ファイルに記述することで設定を変更することができます。
/etc/logwatch/conf/logwatch.conf
「/etc/logwatch/conf/logwatch.conf」の中身を見てみると、デフォルト設定が「/usr/share/logwatch/default.conf/logwatch.conf」で、ローカル設定をここで設定するという旨の記述がされています。
# cat logwatch.conf # Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)
「/etc/logwatch/conf/logwatch.conf」には、デフォルトの設定から変更したい項目を記述すれば良いのですが、私は一つ一つ設定項目を記述していくのが面倒なのでデフォルトの設定を「/etc/logwatch/conf/logwatch.conf」に全部コピーして使用しています。
# cp -p /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf # cd /etc/logwatch/conf # vi logwatch.conf
この辺は好みの問題なので、変更したい項目のみ記述していく方法で設定を行って頂いても良いです。
設定変更項目
私がlogwatchを使用する際に変更している設定項目について説明していきます。
メール通知先設定
logwatchからのログ解析結果を受信するメールアドレスを設定します。
変更前
MailTo = root
変更前
MailTo = log@server-memo.net
メールの送信先をローカルの「root」ユーザから「log@server-memo.net」宛に変更しています。
メール送信先は好きなメールアドレスへ変更してください。(サーバ上のローカルユーザ宛にメールを送信することもできます)
ログの情報レベル設定
通知するログの解析結果の情報表示レベル設定します。
変更前
Detail = Low
変更後
Detail = Hight
私は詳しい情報まで見たいので「High」に設定変更していますが、設定できるレベルは「Low (0)」「Med (5)」「High (10)」があり、それぞれ文字または数字で設定をすることができるので、好みに合わせてレベル設定を行ってください。
メールの差出人設定
Logwatchから出されるメールの差出人を設定します。
複数サーバがある場合などは、一目でどのサーバから送信されてきたのかを判断しやすいものにすると良いでしょう。
変更前
MailFrom = Logwatch
変更後
MailFrom = www
webサーバからのリポートと分かるようにwwwと設定してみました。
その他の設定
その他の設定項目についてこのページの下部にて説明をしていますので、変更を行いたい項目があれば変更を行ってください。
動作確認
設定の変更作業が完了したら、次に動作確認を行っていきます。
動作確認の方法として、標準出力にレポートを出力する方法と、メールでレポートを送信する方法について説明していきます。
ログレポートを標準出力へ表示
レポートを出力する先は「--output」オプションで指定することが出来ます。
「stdout」を指定することで、レポートを標準出力に表示させることが出来ます。
# logwatch --output stdout
ログレポートのメール送信テスト
標準出力にログレポートを表示させて表示内容に問題がなければ、次にレポートのメール送信試験を行います。
「--output」オプションで「mail」を指定することで、レポートをメールで送信することができます。
# logwatch --output mail
設定項目一覧
その他の設定項目も説明させていただきます。
項目 | 初期値 | 設定内容 |
---|---|---|
LogDir | /var/log | ログが格納されているディレクトリを設定 |
TmpDir | /var/cache/logwatch | logwatchが使用する一時ファイルを作成するディレクトリを設定 |
Output | stdout |
ログレポートの出力方法を設定
|
Format | text | 通知されるレポートのフォーマット設定 「text」または「html」から設定 |
Encode | none | レポートのエンコード設定 エンコードを「Base64」にする場合は「base64」と設定 |
MailTo | root | logwatchからのメール送信先設定 ローカルアカウントまたはe-mailアドレスを設定 |
Mailto_host1 ※初期設定ではコメント化されている |
user@example.com | --multiemailオプションを使用している際に設定することで、リポート送信先を複数していることが可能 ※私の環境ではUnknown option: multiemailと表示されて使用できませんでした |
MailFrom | Logwatch | logwatchが送信するメールのFromを設定 |
Filename ※初期設定ではコメント化されている |
/tmp/logwatch |
リポート結果を保存するファイルを設定 初期設定ではコメントとなっている |
Archives | Yes ※設定ファイル上は#Archives = Noと記述されている |
「/var/log/messages-yyyymmdd」「/var/log/messages.1」といったアーカイブされたログファイルも解析対象にするかどうかの設定 デフォルトでは「Yes」に設定されてるので、「No」にする場合は「#」削除してアンコメントを行う |
Range | yesterday |
解析するログの時間範囲を設定 「All」「Today」「Yesterday」から選んで設定 |
Detail | Low |
ログレポートの情報レベル設定 設定レベルは「Low」「Med」「High」または数字で設定します 「Low = 0」 「Med = 5」 「High = 10」 |
Service | All "-zz-network" "-zz-sys" "-eximstats" |
ログを解析するサービスを設定 「/usr/share/logwatch/scripts/services/」ディレクトリ内のサービスから選択するか「All」を設定 「All」を設定した場合は、サービス名の前に「-」を付けることでログの解析を行わないサービスを設定することも可能 初期設定では「zz-network」「zz-sys」「eximstats」のログについては解析を行わない設定となっている |
LogFile ※初期設定ではコメント化されている |
messages | 解析するログファイル指定する場合に使用 この設定が有効となると、そのログのみが解析対象となる |
mailer | "/usr/sbin/sendmail -t" | メールを送信するためのMTAを設定 |
HostLimit ※初期設定ではコメント化されている |
myhost |
複数ホストからログを収集している場合ログの解析を行うホスト名を設定 カンマ「,」で区切ることで複数ホストを設定可能 |
設定いろいろ
レポートの送信先を複数登録
ログレポートのメール送信先を複数にしたい場合の設定方法です。
「MailTo」でレポート送信先メールアドレスを設定する際に、スペース区切ることで複数のメールアドレスを設定することができます。
MailTo = tamohiko@server-memo.net log@server-memo.net
コメント