syslog管理


外部からの侵入を防ぐには、まず、システムに何が起こっているかを知ることが重要です。

Linux(unix)には、syslogと呼ばれるプログラムが存在しています。

このsyslogは、さまざまなアプリケーションの情報、(これをログといいます。)を記録しています。(これをロギングといいます。)

このsyslogを調べることにより、誰が、いつログインをしたのか?、誰がログインに失敗したのか?、などを教えてくれます。

例えば、あるユーザーが数十回もログインに失敗しているようであれば、誰かがそのパスワードを

破ろうとしている可能性もあります。また、syslogをファイルやプリントアウトすることも可能です。



  1. syslog.confの設定

  2. ログの項目名の設定方法

  3. ログのローテーション


syslog.confの設定

syslogは、/etc/sbin/syslogdというプログラムです。
このプログラムは、/etc/rc.d/rc.Mファイルで実行するように記述されていますので、システムが起動して、
マルチユーザーモードに移行したときに自動的に実行され、ログ情報が採られます。
採られたログ情報はデフォルトでは/var/logファイルに格納されます。

syslog.conf
 syslogの設定を変更するには、/etc/syslog.confを修正する必要があります。
 syslog.confは。次のような書式で記述されます。
# /etc/syslog.conf
# For info about the format of this file, see "man syslog.conf"
# and /usr/doc/sysklogd/README.linux.  Note the '-' prefixing some
# of these entries;  this omits syncing the file after every logging.
# In the event of a crash, some log information might be lost, so
# if this is a concern to you then you might want to remove the '-'.
# Be advised this will cause a performation loss if you're using
# programs that do heavy logging.

# Uncomment this to see kernel messages on the console.
#kern.*							/dev/console  ←カーネルからの全てのメッセージをコンソールに出力します。

# Log anything 'info' or higher, but lower than 'warn'.
# Exclude authpriv, cron, mail, and news.  These are logged elsewhere.
*.info;*.!warn;\
	authpriv.none;cron.none;mail.none;news.none	-/var/log/messages

# Log anything 'warn' or higher.
# Exclude authpriv, cron, mail, and news.  These are logged elsewhere.
*.warn;\
	authpriv.none;cron.none;mail.none;news.none	-/var/log/syslog

# Debugging information is logged here.
*.=debug						-/var/log/debug

# Private authentication message logging:
authpriv.*						-/var/log/secure

# Cron related logs:
cron.*							-/var/log/cron

# Mail related logs:
mail.*							-/var/log/maillog

# Emergency level messages go to all users:
*.emerg							*

# This log is for news and uucp errors:
uucp,news.crit						-/var/log/spooler

# Uncomment these if you'd like INN to keep logs on everything.
# You won't need this if you don't run INN (the InterNetNews daemon).
#news.=crit					-/var/log/news/news.crit
#news.=err					-/var/log/news/news.err
#news.notice					-/var/log/news/news.notice

syslog.confは。次のような書式で記述されます。
ログの項目名 出力先ファイル名

「ログの項目名」と「出力先ファイル名」は、必ず1つ以上のタブで区切ります。空白で区切ると正しく動作しません。

出力先ファイル名とは、そのログ項目を出力するファイル名のことです。通常は/etc/logデレクトリー内の
ファイル名を指定します。指定したファイルが存在しない場合には自動的に新規に作成されます。

ログの項目名とは、以下のファシリティとプライオリティの組み合わせで設定します。

ファシリティ。
ファシリティとは、ログの種別のことを意味します。linuxの場合は以下の表に示すファシリティがあります。

ファシリティ意味
auth,security認証サービス
auth-priv認証サービス(プライベートな利用)
daemon各種デーモン(ネットワークなどのサービスを提供するアプリケーション)
kernカーネル
lpr印刷サービス
mailメール・サービス
newsニュース・サービス
syslogsyslogのログ
userユーザ・プログラム
uucpUUCP転送を行うプログラム
local0?local7アプリケーションに依存、特に用途は定まっていない。

プライオリティ。
 プライオリティとは、そのログの重要度を意味しています。linuxの場合は以下の表に示すプライオリティがあります。

プライオリティ意味
debugデバッグ用のメッセージ
info各種情報のメッセージ
notice注意のメッセージ
warn,warning警告のメッセージ(warnとwarningは同一意味)
err,errorエラーメッセージ
crit致命的なエラーメッセージ
alert直ちに修復しなければならないような重大なメッセージ
emerg,panic非常に重大なメッセージ、これ以上処理が続行できないことを意味
※下に行く程、プライオリティが高い



トップへ戻る

ログの項目名の設定方法

ログの項目名は「ファシリティ」と「プライオリティ」を「.」(ピリオード)で区切って指定します。
プライオリティに関しては次の2つの表記があります。

@「ファシリティ.プライオリティ」と表記の場合
 ファシリティ.プライオリティと表記した場合は、そのプラオリティより高いものが、全て対象となります。
 例えば、「mail.warn」と表記した場合は「mail.warn」、「mail.err」、「mail.crit」、「mail.alert」
 「mail.panic」がログ項目の対象となります。

A「ファシリティ.=プライオリティ」と表記の場合
 ファシリティ.=プライオリティと表記した場合は、そのプラオリティだけを対象となります。

●ログの項目名は「!」で否定を示すことができます。「*」で全て示すこともできます。また、「;」で複数のログの項目名の指定ができます。

例,メール(mail)に関するすべてのログを/var/log/mailに記録したい場合は、以下のように指定します。
mail.* /var/log/mail

例,メール(mail)に関するエラーログ(err)と警告ログ(notice)を/var/log/mailに記録したい場合は、以下のように指定します。
mail.=err;mail.=notice /var/log/mail

例,認証ログ(auth)に関するログでと警告ログ(notice)よりもプライロティの高いものを/var/log/authに記録するが、致命的なエラー(crit)は記録しない。
auth.warn;auth.!crit /var/log/auth

例,すべてのファシリティのエラーログ(err)は/var/log/err記録するが、メール(mail)を除外したい場合は、以下のように指定します。
*.err;!mail.* /var/log/err


トップへ戻る

ログのローテーション

syslogは次々と追加されていくものですが、1つのログファイルに対して永久に記録し続けることはできません。
そこで、syslogは定期的に交換する必要があります。このことをlogrotateといいます。
logrotateはログのローテーションおよび圧縮を行うコマンドです。
たとえば、/var/log/messagesというファイルをローテーションする場合は、/var/log/maessageを/var/log/message1に
/var/log/maessage1を/var/log/message2に・・・・と順次名称を変更し/var/log/maessage4を廃棄します。
切り替えのタイミングやファイル名、何世代目で廃棄するかなどを/etc/logrotate.confファイルで設定します。

# /etc/logrotate.conf
#
# logrotate is designed to ease administration of systems that generate large
# numbers of log files.  It allows automatic rotation, compression, removal, and
# mailing of log files.  Each log file may be handled daily, weekly, monthly, or
# when it grows too large.
#
# logrotate is normally run daily from root's crontab.
#
# For more details, see "man logrotate".

# rotate log files weekly:
weekly       ←ローテート周期を1週間とする。monthlyとすると1ヶ月周期になります。

# keep 4 weeks worth of backlogs:
rotate 4     ←バックアップログを4世代保存する。10とすると10世代保存されます。

# create new (empty) log files after rotating old ones:
create      ←ローテートさせたら、空のログファイルを作成します。

# uncomment this if you want your log files compressed:
#compress   ←#を外すとログファイルを圧縮します。

# some packages install log rotation information in this directory:
include /etc/logrotate.d    ←/etc/logrotate.dファイル内のファイルを読み込みます。

# Rotate /var/log/wtmp:
/var/log/wtmp {
    monthly                 ←月単位でローテートします。
    create 0664 root utmp   ←空のログファイルのパーミション設定です。
    rotate 1                ←バックアップは1ヶ月分
}

# Note that /var/log/lastlog is not rotated.  This is intentional, and it should
# not be.  The lastlog file is a database, and is also a sparse file that takes
# up much less space on the drive than it appears.

# system-specific logs may be also be configured below:

logrotate.confの主なパラメータは以下のとおりです。
daily1日ごとにローテートする
weekly1週ごとにローテートする
monthly1月ごとにローテートする
rotate数値ローテートの回数、0の場合はローテートしないで削除されます
start数値ローテートの最初の数
createローテート後、空のログファイルを作成する
nocreate空のログファイルを作成しない
copy元のログファイルをコピーする
nocopyログファイルをコピーしない
copytruncate同上
nocopytruncate同上
ifemptyログファイルが空でもローテートする(デフォルト)
noifemptyログファイルが空ならばローテートしない
missingokログファイルがなくても無視する
nomissingokログファイルがない場合、エラーを通知する(デフォルト)
mailアドレス破棄されるログをメールで送る
mailfirstメールを送信してからログを削除する(mailオプションを指定した場合)
maillastログを削除してからメールを送信する
nomailメール送信を行はない
compress圧縮を行う
compresscmdコマンド圧縮用のコマンド(デフォルトはgzip)
extention拡張子ログの拡張子
includeディレクトリ外部設定ファイル、または設定ファイルを保存したディレクトリ


トップへ戻る

ここで再起動を行います。



前ページへ戻る

ご感想・ご意見 - 免責事項



Copyright (C) 1998 hero-island. All Rights Reserved.