ログの設定(syslog)


FreeBSDのログを集中管理してくれるのが、syslogです。
ソフトやツールによっては、syslogを通さないでログを吐き出すものもありますが、多くはsyslogによって管理されます。
syslogの設定は、syslog.confで行い、ログは/var/log以下のディレクトリに作成されます。

/etc/syslog.confの中身
    # $FreeBSD$
    #
    #       Spaces ARE valid field separators in this file. However,
    #       other *nix-like systems still insist on using tabs as field
    #       separators. If you are sharing this file between systems, you
    #       may want to use only tabs as field separators here.
    #       Consult the syslog.conf(5) manpage.
    *.err;kern.debug;auth.notice;mail.crit          /dev/console
    *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
    security.*                                      /var/log/security
    mail.info                                       /var/log/maillog
    lpr.info                                        /var/log/lpd-errs
    cron.*                                          /var/log/cron
    *.err                                           root
    *.notice;news.err                               root
    *.alert                                         root
    *.emerg                                         *
    # uncomment this to log all writes to /dev/console to /var/log/console.log
    #console.info                                   /var/log/console.log
    # uncomment this to enable logging of all log messages to /var/log/all.log
    #*.*                                            /var/log/all.log
    # uncomment this to enable logging to a remote loghost named loghost
    #*.*                                            @loghost
    # uncomment these if you're running inn
    # news.crit                                     /var/log/news/news.crit
    # news.err                                      /var/log/news/news.err
    # news.notice                                   /var/log/news/news.notice
    !startslip
    *.*                                             /var/log/slip.log
    !ppp
    *.*                                             /var/log/ppp.log


書式は、以下の様になります。

facility.priority   出力先


※出力先のログファイルは、あらかじめ作成しておく必要があります。

ログの種類

auth.log sshやsuなどの認証に関するログ
cron cronが実行した記録
dmesg.today 現在の起動時のログ
dmesg.yesterday 前回起動したときの起動時のログ
lpd-errs lpdのエラーログ
maillog メールサーバのログ
messages さまざまな情報
mount.today 現在のファイルシステムに関する情報
mount.yesterday 前回起動したときのファイルシステムに関する情報
ppp.log pppの接続情報
security セキュリティに関する情報
setuid.today setuid/setgidされているファイルの一覧
setuid.yesterday 昨日のsetuid/setgidされているファイルの一覧
slip.log slipの接続情報
userlog ユーザやグループの追加や削除に関するログ
wtmp ログイン記録(バイナリ)

facility

auth 認証メッセージ
authpriv プライベートな認証メッセージ。
console コンソールから出力されるメッセージ
daemon daemon メッセージ
cron cron メッセージ
ftp ftp メッセージ
kern ローカルのカーネルメッセージ。
ローカルでない場合は user に変換される。
lpr lpr メッセージ
mail メールメッセージ
mark 20分毎に ``info'' の優先度を持つメッセージ。システム用
news ニュースメッセージ
ntp 時刻補正メッセージ
security security メッセージ
syslog syslog メッセージ
user ユーザプロセスメッセージ
uucp uucp メッセージ
local0 から local7 ユーザ定義用

priority

emerg 非常事態
alert すぐに対応が必要
crit 重大なエラー
err エラー
warning 注意
notice 重要な情報
info 情報
debug デバッグ

別のホストにログを送信する

送信側のホストの設定
/etc/syslog.confの修正
#カスタマイズはお好きなように
*.notice;kern.debug;lpr.info;mail.crit;news.err @hoge.foo.jp #重要なログだけ送信の場合
*.*                                             @hoge.foo.jp #全てのログを送信する場合

@hoge.foo.jpは送信するホストのホスト名です。

そしてsyslogd にシグナルを送って再起動・・・。

hoge# kill -HUP `cat /var/run/syslog.pid `
受信側のホストの設定
ps -ax | grep syslogdとコマンドを打ち込むと、現在のsyslogの設定が表示されます。

hoge# ps -ax | grep syslogd
   70  ??  Ss     0:00.09 /usr/sbin/syslogd -s

-sオプションが付いていると外部のサーバーからログを受け取らないので、それを設定してやります。

/etc/rc.confに設定してやります。
syslogd_flags="-4 -n -a xxx.xxx.xxx.xxx/xx" 

-4はIPv4のみでIPv6を使用しないうオプション
-nはsyslogに含まれるIPをDNSへ問い合わせしないというオプション

syslogの使用するポート

デフォルトでは、syslogはudp 514のポートを使用してログを送信します。パケットフィルタリングをしている場合は、ポートの開放が必要。
ポートの変更は、/etc/servicesのファイルを編集してで行います。

BACK