@tooljpさんをフォロー

1. syslog

(1)syslog を確認する

Linux に関するログは基本的に syslog に記録されます。障害が発生した場合には、まず始めに syslog を確認します。syslog は以下に出力されています。

/var/log/messages



参照する場合には less,tail,more などのコマンドを使用します。
以下の例では tail コマンドを使用して syslog の最後の10行を表示しています。

# tail -10 /var/log/messages
Jun 12 19:25:36 localhost rtkit-daemon[1950]: Sucessfully made thread 1956 of process 1948 (/usr/bin/pulseaudio) owned by '42' RT at priority 5.
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.676291] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.812699] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.814166] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name
Jun 12 19:26:19 localhost pam: gdm-password[1975]: WARNING: unable to log session
Jun 12 19:26:22 localhost seahorse-daemon[2059]: init gpgme version 1.1.8
Jun 12 19:26:22 localhost kernel: fuse init (API version 7.13)
Jun 12 19:26:28 localhost pulseaudio[2150]: pid.c: Stale PID file, overwriting.
Jun 12 19:26:28 localhost pulseaudio[2150]: alsa-util.c: Disabling timer-based scheduling because running inside a VM.
Jun 12 19:26:28 localhost pulseaudio[2150]: alsa-util.c: Disabling timer-based scheduling because running inside a VM.

syslog から "error" という文字が含まれている行のみ表示には grep コマンドを使用します。

# grep error /var/log/messages
Jun 12 19:25:01 localhost dbus: avc: netlink poll: error 4
Jun 12 19:25:05 localhost NetworkManager[1279]: <warn> bluez error getting default adapter: The name org.bluez was not provided by any .service files
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.676291] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.812699] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name
Jun 12 19:26:19 localhost NetworkManager[1279]: <error> [1339496779.814166] [nm-manager.c:1360] user_proxy_init(): could not init user settings proxy: (3) Could not get owner of name 'org.freedesktop.NetworkManagerUserSettings': no such name


(2)syslogの設定を行う


syslog にはファシリティとプライオリティという考えがあります。詳細は syslogのファシリティ、プライオリティ を参照してください。

ただし syslog はすべてのプライオリティが syslogに記録されるので、どのログが重要なのか分かりにくい欠点があります。そこで例えば以下のようにプライオリティにより出力ファイルを変更する工夫が有効です。

以下の例では プライオリティ = warning を /var/log/warningmsgプライオリティ err 以上のすべてのメッセージを /var/log/errmsg に出力します。

/etc/rsyslog.conf (ただし rsyslog ではなく syslog を使用する場合は /etc/syslog.conf )

*.err /var/log/errmsg
*.=warning /var/log/warningmsg

エンタープライズ環境では、別途管理ツールである IBM Systems Director サーバなどを導入し/var/log/errmsgの変更を監視すれば、システムで err 以上のログが記録された場合に通報することができます。

[Redhat Linux 障害解析ガイドへ戻る]