II-9-7. サーバにおけるログ管理

ネットワークサーバの管理業務を構成する重要な作業であるログ管理について解説する。syslogの導入と管理の説明に加え、logwatch、logrotate、swatchといった様々なログ管理ツールの導入と設定方法を説明する。

【学習の要点】

* サーバで出力されるログには、サーバの異常を示すログ、ユーザのログイン履歴や認証時のログ、プログラムの動作ログなど、さまざまな種類が存在し、多くはログ制御システム(syslog)を介して出力される。

* syslogはサーバのプログラムsyslogdで出力し、出力する内容は設定ファイル(syslog.conf)により決定する。

* syslogにより出力されるログから異常値を発見することは困難であり、logwatch等で特定の情報が出力された時に自動的に通知を行うことが有効である。

* syslogにより作成されるログファイルには膨大な量のログが出力される。cronでlogrotateを実行すログファイルを何世代かに分割し肥大化を防ぐ。

図II-9-7. syslogによるログ管理

【解説】

1) サーバで出力するログ

ネットワークサーバの各サービスプログラムではサーバの異常を示すログ、ユーザのログイン履歴や認証時のログ、プログラムの動作ログなどをログとして記録している。

このログを検証することにより、サービスが問題なく提供されているか、また不正なアクセスが行われていないかなどの検収が可能となる。

出力するログの多くはsyslogサービスを使用して出力される。またログを管理し検証を行うツールとしてlogwatchコマンドやlogrotateコマンドなどがある。

2) syslog

syslogを使用してログを出力することにより、ログの出力方法をシステム内で統一することが可能となり、ログの解析や問題の発見などが容易となる。

syslogはLinuxに標準で導入されているサービスで、システム起動時に自動的に起動するようになっている。動作の設定は/etc/syslog.confにて行い、以下のように設定を行う。

<ファシリティ>.<レベル>  <アクション>

* ファシリティ

syslogで出力するログをどのカテゴリで出力するかを指定する。

auth(認証時)、cron(クーロン)、daemonm(デーモン)、user(ユーザ)などがある。

* レベル

出力するログの重要度や緊急度を指定する。

emerg(システム不能)、crit(致命的)、err(一般エラー)、warning(警告)などがある。

* アクション

ファシリティとレベルで指定したログのアクションを指定する。

出力するファイル名やメッセージを送信するホスト名、ユーザ名などがある。

syslogはUDPを用いたクライアント・サーバ方式で動作しているため、アクションに送信先ホスト名を指定することにより、特定のサーバでログを集中管理することが可能となる。

3) logwatchコマンド

ログファイルには様々な情報が膨大に出力されるため、その中から問題のある情報を抜き出す作業は大変である。logwatchコマンドを利用することにより、問題のあるログを容易に抜き出すことが可能となる。logwatchではサービスごとに予め問題として判定するログの条件を設定しておき、条件に一致したログだけを抽出し、指定したメールアドレスへ送信する。

問題を迅速に発見するためには、cronにて定期的にコマンドを実行する必要がある。

4) logrotateコマンド

ログファイルを出力したログファイルをそのまま使用していると、サイズが大きくなりすぎて検証を行う際に範囲が広すぎて時間が掛かるなど問題が発生する可能性がある。logrotateコマンドを利用することにより、ログファイルを分割して管理することが可能となる。logrotateコマンドを実行すると現在のログファイルのファイル名を変更し、新規に空のログファイルを作成し、ログファイルのローテーションを行う。

ログファイルのローテーションはcronにて定期的に実行することでログ管理が容易となる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

記事配信

コンテンツ配信

ユーザログイン