ログ管理

HOMELinuxtips > ログ管理

ログ管理:記事リスト

ログ管理のカテゴリーには以下の記事がリストされています。

cronのログファイル「/var/log/cron」を確認する

2017年11月14日
Linuxシステムで、
コマンドやプログラムを定期的に自動実行させる
スケジューリング機能にcronがあります。

cronを利用するには、crontabコマンドを使用しますが、
cornの実行結果のログを確認にするには、
/var/log/cronファイルを確認します。

crontabについては、下記ページをご確認ください。
crontabコマンド

続きを読む "cronのログファイル「/var/log/cron」を確認する"

CentOS7でログ容量制限を設定する

2017年8月 9日

ログが肥大化すると、システムファイルの空き容量が無くなり、
システムの動作に悪影響を及ぼします。
そのため、ログ容量を予め設定しておくのが一般的です。

CentOS7から採用されているjournaldは、デフォルトでファイルシステムの
10%がログの容量として割り当てられています。

また、journaldには、ログの肥大化を防ぐために、ログの最大サイズの指定して、
古いログを自動的に削除するログローテート機能、従来のsyslogデーモン、
カーネルログバッファ(kmsg)にログ転送するなどの機能があります。

■ログの容量制限をする
journaldで生成されるログの容量を制限するには、
「/etc/systemd/journald.conf」ファイルの「SystemMaxUse」パラメータを設定します。
下記例ではログの容量を256MBに制限しています。

# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details

[Journal]
#Storage=auto
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=login
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
SystemMaxUse=256M ←追加します。

追加したら「:wq」で保存終了します。

■journaldサービスを再起動します。
設定を変更したら、journaldサービスを再起動します。
# systemctl restart systemd-journald.service


■journaldで管理されているすべてのログ容量を確認する
journalctlコマンドに「--disk-usage」を付けて実行します。
# journalctl --disk-usage
Journals take up 24.0M on disk.

CentOS7でログ保存設定をする

2017年8月 8日

CentOS7のjournaldのログファイルは、/run/log/journalディレクトリに保存されます。
しかし、/runディレクトリは、tmpsファイルシステムでマウントされているため、
OSの再起動を行うと、/run/log/journalディレクトリ配下に保存されている
ログファイルは、削除されてしまいます。

# df -HT | grep tmpfs
devtmpfs devtmpfs 504M 0 504M 0% /dev
tmpfs tmpfs 514M 0 514M 0% /dev/shm
tmpfs tmpfs 514M 14M 501M 3% /run ←tmpfsでマウント
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup

そこで、OSを再起動してもログが削除されないようにするには、
journaldの設定ファイル「/etc/systemd/journald.conf」に
「Storage=persistent<」を追加します。


■ファイルを編集します。
# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details

[Journal]
#Storage=auto
Storage=persistent ←追加する

追加したら「:wq」で保存終了します。


■journaldサービスを再起動します。
# systemctl restart systemd-journald.service

「Storage=persistent」設定を行うと、ログの保存先ディレクトリが、
「/run/log/journal」から「/var/log/journal/」に変更され、
その配下にmachine-id名が付与されたディレクトリが作成されます。
そのディレクトリ内にログが永続的に保存されます。

# ls -l /var/log/journal/
合計 0
drwxr-xr-x 2 root root 27 8月 8 15:40 c035188450f4455691b947425145773d

※「c035188450f4455691b947425145773d」がmachine-id名が作成されたディレクトリ
※machine-idは、/etc/machine-idファイルで確認できます。

また、/etc/systemd/journald.confファイルに「Storage=auto」を設定した場合、
「/var/log/journal/」ディレクトリが存在する場合は、「/var/log/journal/」に保存し、
存在しない場合は、「/run/log/journal」に保存します。

CentOS7のログ管理(systemd、journald)

2017年8月 4日
CentOS7では、これまでログ管理を行っていたsyslogベースの管理手法から
systemdがログ管理を行う新しい仕組みが導入されています。

従来のsyslogは、複数システムのログをネットワーク経由で一括管理出来たり、
多くの管理ソフトウェア製品とも連携が可能でしたが、
膨大なログの中から欲しい情報を抽出するには、
様々なコマンドやツールを駆使する必要がありました。

そこでCentOS7では、syslogでのログ抽出作業量を軽減するために、
以前と比べて格段に情報を抽出しやすい仕組みに変更されています。


■journaldの状態を確認する
CentOS7では、ログ収集の仕組みとして、「journald」を使用します。
サービス名は「systemd-journald.service」です。

journaldの起動確認は、systemctlコマンドを実行します。
# systemctl status systemd-journald.service
systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since 金 2017-08-04 13:39:06 JST; 46min ago
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 712 (systemd-journal)
Status: "Processing requests..."
CGroup: /system.slice/systemd-journald.service
mq712 /usr/lib/systemd/systemd-journald

8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Journal started
8月 04 13:39:07 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
Hint: Some lines were ellipsized, use -l to show in full.


■ブートログを確認する
journaldが収集したログを出力するためのコマンドは、「journalctl」になります。
サーバーに搭載されている各種ハードウェアの情報を確認するには、
CentOS7が起動した時のブートログを確認します。
ブートログを確認するには、journalctlコマンドにオプション「-b」を付けて実行します。

# journalctl -b
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:29:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:


■ログを日時でフィルタリングする
journalctlコマンドには、日時でログをフィルタリングする機能が備わっています。
日時開始を「--since=""」で、日時終了を「--until=""」で指定します。

下記例では、2017年8月4日 14時29分〜14時33分1秒までのログを出力しています。
# journalctl --since="2017-08-04 14:29:00" --until="2017-08-04 14:33:01"
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:35:01 JST. --
8月 04 14:29:01 Tiger systemd[1]: Starting Session 62 of user root.
8月 04 14:29:01 Tiger systemd[1]: Started Session 62 of user root.
8月 04 14:29:01 Tiger CROND[5038]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 63 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 63 of user root.
8月 04 14:30:01 Tiger CROND[5046]: (root) CMD (/usr/lib64/sa/sa1 1 1)
8月 04 14:30:01 Tiger CROND[5047]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:31:01 Tiger systemd[1]: Starting Session 65 of user root.
8月 04 14:31:01 Tiger systemd[1]: Started Session 65 of user root.
8月 04 14:31:01 Tiger CROND[5056]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:32:01 Tiger systemd[1]: Starting Session 66 of user root.
8月 04 14:32:01 Tiger systemd[1]: Started Session 66 of user root.
8月 04 14:32:01 Tiger CROND[5061]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)

デフォルトでは、自動的にlessページャが起動するので、
スペースでページ送りをしますが、
不要な場合は、「--no-pager」オプションを付与します。


■今日のログを出力する
実行日当時のログを出力したい場合は、--sinceオプションに「today」を指定します。
# journalctl --since=today
- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:40:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:

他にも「yesterday」や何に使うか分かりませんが「tomorrow」も指定できます。


■特定のサービスに絞ってログを表示する
特定のサービスのみのログを出力したい場合は、
「-u」オプションにサービス名を付けて実行します。

下記例では、SSHサービスのログを出力しています。
# journalctl --since="2017-08-03 14:29:00" --until="2017-08-04 14:33:01" -u sshd.service
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:44:01 JST. --
8月 04 13:39:09 Tiger systemd[1]: Starting OpenSSH server daemon...
8月 04 13:39:09 Tiger systemd[1]: Started OpenSSH server daemon.
8月 04 13:39:09 Tiger sshd[1106]: Server listening on 0.0.0.0 port 2222.
8月 04 14:24:24 Tiger sshd[3972]: Accepted publickey for pakira from 192.168.0.80 port 50700 ssh2:


■リアルタイムでログを確認する
現在、リアルタイムで出力しているログを表示させたい場合は、
journalctlコマンドに「-f」オプションを付けて実行します。
従来の「tail -f /var/log/messages」と同様な表示ができます。

# journalctl -f
-- Logs begin at 金 2017-08-04 13:39:02 JST. --
8月 04 18:32:01 Tiger systemd[1]: Started Session 267 of user root.
8月 04 18:32:01 Tiger CROND[11781]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:33:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:33:01 Tiger systemd[1]: Starting Session 268 of user root.
8月 04 18:33:01 Tiger systemd[1]: Started Session 268 of user root.
8月 04 18:33:01 Tiger CROND[11787]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:34:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:34:01 Tiger systemd[1]: Starting Session 269 of user root.
8月 04 18:34:01 Tiger systemd[1]: Started Session 269 of user root.
8月 04 18:34:01 Tiger CROND[11793]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)


■プライオリティによるログのフィルタリング
syslogでは、ログのプライオリティ(緊急度)に応じた管理ができましたが、
journalctlでも同様の出力が行なえます。
プライオリティには、緊急度の高いものからemerg、alert、err、warning、
notice、debugがあります。

■warningプライオリティを表示する
特定のプライオリティを表示させるには、journalctlにオプション「-p」を付けて、
フィルタリングしたいプライオリティを指定します。

下記例では、warningプライオリティを表示しています。

# journalctl -p warning
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:42:01 JST. --
8月 04 13:39:02 Tiger kernel: ACPI: RSDP 00000000000f6a10 00024 (v02 PTLTD )
8月 04 13:39:02 Tiger kernel: ACPI: XSDT 000000003feea65b 0005C (v01 INTEL 440BX 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: FACP 000000003fefee73 000F4 (v04 INTEL 440BX 06040000 PTL
8月 04 13:39:02 Tiger kernel: ACPI: DSDT 000000003feec3fc 12A77 (v01 PTLTD Custom 06040000 MSFT
8月 04 13:39:02 Tiger kernel: ACPI: FACS 000000003fefffc0 00040
8月 04 13:39:02 Tiger kernel: ACPI: BOOT 000000003feec3d4 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: APIC 000000003feeb8bd 00742 (v01 PTLTD ? APIC 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: MCFG 000000003feeb881 0003C (v01 PTLTD $PCITBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: SRAT 000000003feea757 008A8 (v02 VMWARE MEMPLUG 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: HPET 000000003feea71f 00038 (v01 VMWARE VMW HPET 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: WAET 000000003feea6f7 00028 (v01 VMWARE VMW WAET 06040000 VMW
8月 04 13:39:02 Tiger kernel: kexec: crashkernel=auto resulted in zero bytes of reserved memory.


■errプライオリティを表示する
# journalctl -p err
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:44:01 JST. --
8月 04 13:39:02 Tiger kernel: Detected CPU family 6 model 78
8月 04 13:39:02 Tiger kernel: Warning: Intel CPU model - this hardware has not undergone upstream t
8月 04 13:39:03 Tiger kernel: sd 0:0:0:0: [sda] Assuming drive cache: write through
8月 04 13:39:07 Tiger kernel: piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!
8月 04 13:39:08 Tiger NetworkManager[839]: _nl_get_vtable: assertion 'vtable.handle' failed
8月 04 13:39:23 Tiger systemd[1]: Failed to start Crash recovery kernel arming.

これまでの例では各プライオリティ名を指定してフィルタリングしましたが、
これをプライオリティの値で指定することも可能です。
各プライオリティと値は下記の対応となっています。
emerg 0
alert 1
crit 2
err 3
warning 4
notice 5
debug 6

■emergプライオリティのログをプライオリティ値で表示する
emergログが存在しないので、loggerコマンドを使用してテストログを吐き出し、
その後プライオリティ値「0」でemergログを表示します。

# logger -p daemon.emerg "TEST LOG EMERG"
#
Message from syslogd@Tiger at Aug 7 16:23:46 ...
pakira:TEST LOG EMERG

# journalctl -p 0
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:23:46 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG


■alertプライオリティのログをプライオリティ値で表示する
プライオリティ値「1」でalertログを表示します。

# logger -p daemon.alert "TEST LOG ALERT"
# journalctl -p 1
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:26:26 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG
8月 07 16:26:26 Tiger pakira[3789]: TEST LOG ALERT

journalctlを実行すると、alertよりプライオリティの高い
emergプライオリティも表示されていることが分かります。


■カーネルログを表示する
カーネルログを表示するには、
journalctlコマンドにオプション「-k」を付けて実行します。
従来の「dmesg」コマンドに相当します。

# journalctl -k
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:29:01 JST. --
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuset
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpu
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuacct
8月 07 15:57:16 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 07 15:57:16 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 07 15:57:16 Tiger kernel: Disabled fast string operations
8月 07 15:57:16 Tiger kernel: e820: BIOS-provided physical RAM map:
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000100000-0x000000003fedffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003fee0000-0x000000003fefefff] ACPI data
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003feff000-0x000000003fefffff] ACPI NVS
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003ff00000-0x000000003fffffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved


■特定のプロセスIDのログを表示する
特定のプロセスIDに関係するログを表示する場合は、
journalctlコマンドに「_PID=プロセス番号」を付けて実行します。

# journalctl _PID=1112
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:32:01 JST. --
8月 07 15:57:23 Tiger clamd[1112]: clamd daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
8月 07 15:57:23 Tiger clamd[1112]: Running as user amavis (UID 991, GID 991)
8月 07 15:57:23 Tiger clamd[1112]: Log file size limited to 1048576 bytes.
8月 07 15:57:23 Tiger clamd[1112]: Reading databases from /var/lib/clamav
8月 07 15:57:23 Tiger clamd[1112]: Not loading PUA signatures.
8月 07 15:57:23 Tiger clamd[1112]: Bytecode: Security mode set to "TrustSigned".


■実行ファイルのパス指定でのログ表示
journalctlコマンドにサービスを提供する実行ファイルのパスを指定して
それに関連するログを表示することができます。
下記例では、SSHサービスの実行ファイルである「/usr/sbin/sshd」関連のログを
表示しています。

# journalctl /usr/sbin/sshd
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:34:06 JST. --
8月 07 15:57:23 Tiger sshd[1105]: Server listening on 0.0.0.0 port 22.
8月 07 16:22:03 Tiger sshd[3308]: Accepted publickey for pakira from 192.168.0.80 port 54097 ssh2:
8月 07 16:22:04 Tiger sshd[3308]: pam_unix(sshd:session): session opened for user pakira by (uid=0)

ログを記録する際のパフォーマンスを上げる

2012年10月13日

ログの記録先は、/etc/rsyslog.confファイルのアクションにフルパスを設定します。
mailファシリティのアクションには、/var/log/maillogが設定されていますが、
先頭に「-」が付加されています。

# Log all the mail messages in one place.
mail.*                    -/var/log/maillog

このようにログの記録先に「-」を付けると、ログのパフォーマンスが上がります。
ただしログを頻繁にハードディスクに書き込まないため、システムクラッシュの際には、
記録中のログが消失する可能性が高くなります。
「-」の記述はパフォーマンスを優先するか、ログの記録を優先するかよく検討を行った上で
設定する必要があります。


ログのレベルや出力先を設定する

2012年10月12日

Linuxシステムのログのレベルや出力先を設定するには、/etc/rsyslog.confファイルを編集します。
このファイルで「プライオリティ」や「アクション」を設定します。
また、ログのカテゴリを設定するには、「ファシリティ」を設定します。

[root@Tiger ~]# vi /etc/rsyslog.conf
#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog


# Log cron stuff
cron.* /var/log/cron

# Everybody gets emergency messages
*.emerg *

# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log
local7.* /var/log/boot.log

下記の設定を例に説明をします。
local7.* /var/log/boot.log
ファシリティとは、ログを出力するカテゴリーです。上記の例では、local7になります。

プライオリティは、ログの重要度を指定するものになります。
プライオリティを指定するには「=」を使用します。
例えば、debugのみを指定する場合は、「=debug」と指定します。
上記例では「*」がプライオリティになり、意味としてはワイルドカードとして
すべてのプライオリティを出力します。

また、ファシリティとプライオリティを合わせてセレクタと呼びます。
なお、プライオリティに「none」を指定すると、そのファシリティを除く事ができます。

アクションは、出力先になり、上記例では、「/var/log/boot.log」になります。
出力先はファイルの他に、別のコンピューターを指定することもできます。
@ホスト名や@IPアドレスにより別のコンピューターへUDPプロトコルを使い、
ログを転送できます。

/etc/rsyslog.confファイルを編集した後は、設定を反映させるため、rsyslogを再起動します。
[root@Tiger ~]# /etc/rc.d/init.d/rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]

■ファシリティ
auth    認証メッセージ
authpriv 認証メッセージ
cron    cronメッセージ
daemon デーモンメッセージ
kern    カーネルメッセージ
lpr     プリンタメッセージ
mail    メールメッセージ
news   ニュースメッセージ
syslog  syslogメッセージ

■プライオリティ
debug   デバッグ
info     情報
notice   通知
warning  警告
err     エラー
crit     致命的な問題
alert    すぐに修正すべき問題
emerg   システム不能の非常事態

Linuxシステム起動時の情報を表示する

2012年10月11日

Linuxシステムを起動すると、バージョンによってはシステムに関連した各種情報が表示されます。
※CentOS6からは、スプラッシュ画面が表示されます。
 CentOS6の起動時に詳細情報を表示する

これらの情報は、/var/log/dmesgファイルに出力されています。
このファイルは、tailやless、moreコマンドで参照することができますが、
/bin/dmesgコマンドでも参照可能です。

[root@Tiger ~]# dmesg
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-279.el6.i686 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 10:59:55 UTC 2012
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
NSC Geode by NSC
Cyrix CyrixInstead
Centaur CentaurHauls
Transmeta GenuineTMx86
Transmeta TransmetaCPU
UMC UMC UMC UMC
Disabled fast string operations
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fef0000 (usable)
BIOS-e820: 000000003fef0000 - 000000003feff000 (ACPI data)
BIOS-e820: 000000003feff000 - 000000003ff00000 (ACPI NVS)
BIOS-e820: 000000003ff00000 - 0000000040000000 (usable)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)

〜以下省略〜


dmesgで取得できる情報には、CPUやメモリ、認識されたデバイスに関するものになりますが、
表示される情報量が多いため、↓のようにgrepコマンドなどを使用して情報を絞って生じすると良いでしょう。

[root@Tiger ~]# dmesg | grep CPU
Transmeta TransmetaCPU
SMP: Allowing 1 CPUs, 0 hotplug CPUs
NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:1 nr_node_ids:1
PERCPU: Embedded 14 pages/cpu @c2400000 s35928 r0 d21416 u2097152
Initializing CPU#0
CPU: Physical Processor ID: 0
mce: CPU supports 0 MCE banks
CPU0: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz stepping 02
Brought up 1 CPUs
microcode: CPU0 sig=0x20652, pf=0x1, revision=0xc

ユーザーのログイン履歴を確認する

2012年10月10日

ユーザーのログイン履歴は、/var/run/utmp、/var/log/wtmpファイルに出力されます。
このファイルは、/var/log/lastlog、/var/log/btmpファイルと同様に
バイナリファイルな為、lessコマンドやcatコマンド、tailコマンドで表示できません。
表示するには、専用の/usr/bin/lastコマンドを使用します。

[root@Tiger ~]# last
pakira pts/0 192.168.0.162 Wed Oct 10 12:21 still logged in
reboot system boot 2.6.32-279.el6.i Wed Oct 10 12:20 - 12:37 (00:17)
root tty1 Fri Aug 24 13:45 - down (00:00)
pakira ftpd1456 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01)
pakira ftpd1455 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01)
pakira ftpd1446 192.168.0.162 Fri Aug 24 13:42 - down (00:03)

■ユーザー名を指定してログイン履歴を表示する
 引数にユーザー名を指定して実行すると、特定ユーザーのログイン履歴が表示できます。
[root@Tiger ~]# last pakira
pakira pts/0 192.168.0.162 Wed Oct 10 12:21 still logged in
pakira ftpd1456 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01)
pakira ftpd1455 192.168.0.162 Fri Aug 24 13:43 - 13:44 (00:01)
pakira ftpd1446 192.168.0.162 Fri Aug 24 13:42 - down (00:03)
pakira pts/0 192.168.0.162 Fri Aug 24 13:20 - down (00:15)
pakira pts/0 192.168.0.162 Fri Aug 24 12:35 - 13:03 (00:28)
pakira ftpd1586 192.168.0.162 Fri Aug 24 11:54 - 11:55 (00:01)

ユーザーがログインに失敗した記録を確認する

2012年10月10日

ユーザーがログインに失敗した記録は、/var/log/btmpファイルに出力されます。
このファイルは、/var/log/lastlog、/var/log/wtmpファイルと同様にバイナリファイルなので、
tailコマンドで確認できません。

確認するには、/usr/bin/lastbコマンドを使用します。

[root@Tiger ~]# lastb
pakira ssh:notty 192.168.0.162 Wed Oct 10 12:34 - 12:34 (00:00)
pakira ssh:notty 192.168.0.162 Wed Oct 10 12:33 - 12:33 (00:00)

上記の例では、pakiraユーザーがログインに失敗していることがわかります。

ユーザーの最後のログイン記録を確認する

2012年10月10日

Linuxシステムでユーザーが最後にログインした記録は、/var/log/lastlogファイルに出力されます。
このファイルはバイナリファイルなので、
/var/log/wtmp、/var/log/btmpファイル同様にtailコマンドでは表示できません。
ファイルを読むには、/usr/bin/lastlogコマンドを使用します。

[root@Tiger ~]# lastlog
ユーザ名 ポート 場所 最近のログイン
root tty1 金 8月 24 13:45:27 +0900 2012
bin **一度もログインしていません**
daemon **一度もログインしていません**
adm **一度もログインしていません**
lp **一度もログインしていません**
sync **一度もログインしていません**
shutdown **一度もログインしていません**
〜中略〜
sshd **一度もログインしていません**
tcpdump **一度もログインしていません**
pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

■特定ユーザーのログイン記録を表示する

 lastlogコマンドに、オプション「-u」を付けてユーザー名を指定します。
[root@Tiger ~]# lastlog -u pakira
ユーザ名 ポート 場所 最近のログイン
pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

セキュリティ関連のログを表示する

2012年10月10日

Linuxシステムの認証メッセージは、/var/log/secureファイルに出力します。
セキュリティ関連のログを把握する場合は、/var/log/secureファイルを確認します。

[root@Tiger ~]# tail /var/log/secure
Aug 24 13:45:27 Tiger login: ROOT LOGIN ON tty1
Aug 24 13:45:30 Tiger login: pam_unix(login:session): session closed for user root
Aug 24 13:45:32 Tiger sshd[1157]: Received signal 15; terminating.
Oct 10 12:20:17 Tiger su: pam_unix(su-l:session): session opened for user postgres by (uid=0)
Oct 10 12:20:17 Tiger su: pam_unix(su-l:session): session closed for user postgres
Oct 10 12:21:19 Tiger sshd[1350]: Accepted password for pakira from 192.168.0.162 port 54751 ssh2
Oct 10 12:21:19 Tiger sshd[1350]: pam_unix(sshd:session): session opened for user pakira by (uid=0)
Oct 10 12:21:22 Tiger su: pam_unix(su-l:auth): authentication failure; logname=pakira uid=500 euid=0 tty=pts/0 ruser=pakira rhost= user=root

上記の例では、pakiraユーザーがroot認証に失敗していることがわかります。

ログをリアルタイムで表示するには

2012年10月 9日

Linuxのシステムログをリアルタイムで把握、表示するには、
tailコマンドに「-f」オプションを付けて、/var/log/messagesファイルを表示します。

実行すると、10件分のログが表示され、
その後リアルタイムでログが更新されて表示されます。

[root@Tiger ~]# tail -f /var/log/messages
Oct 9 02:03:49 Tiger kernel: imklog 5.8.10, log source = /proc/kmsg started.
Oct 9 02:03:49 Tiger rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1673" x-info="http://www.rsyslog.com"] start
Oct 9 02:04:01 Tiger kernel: Kernel logging (proc) stopped.
Oct 9 02:04:01 Tiger rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1673" x-info="http://www.rsyslog.com"] exiting on signal 15.
Oct 9 02:04:01 Tiger kernel: imklog 5.8.10, log source = /proc/kmsg started.
Oct 9 02:04:01 Tiger rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1686" x-info="http://www.rsyslog.com"] start
Oct 9 02:06:43 Tiger kernel: Kernel logging (proc) stopped.
Oct 9 02:06:43 Tiger rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1686" x-info="http://www.rsyslog.com"] exiting on signal 15.
Oct 9 02:07:01 Tiger kernel: imklog 5.8.10, log source = /proc/kmsg started.
Oct 9 02:07:01 Tiger rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1723" x-info="http://www.rsyslog.com"] start

上記例では、rsyslog関連のログが表示されています。

rsyslogを起動、停止するには

2012年10月 9日

rsyslogは、RHEL6、CentOS6から新たに採用された
syslogの信頼性を向上させたシステムロガーです。

syslogとrsyslogの違いとしては、次の点が挙げられます。

・ログ転送にTCPが使える
・ログの転送先にMySQLなどのDBを指定できる
・暗号化転送が可能
・syslogd 互換

■rsyslogのステータスを確認する
[root@Tiger ~]# /etc/init.d/rsyslog status
rsyslogd (pid 1121) を実行中...

■rsyslogのステータスを停止する
[root@Tiger ~]# /etc/init.d/rsyslog stop
システムロガーを停止中: [ OK ]

■rsyslogのステータスを起動する
[root@Tiger ~]# /etc/init.d/rsyslog start
システムロガーを起動中: [ OK ]

■rsyslogのステータスを再起動する
[root@Tiger ~]# /etc/init.d/rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]

■rsyslogのステータスを条件付き再起動する
[root@Tiger ~]# /etc/init.d/rsyslog condrestart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]


condrestartとは、
condrestartは、conditional restartを意味し、起動しているかどうかをチェックを行い、
起動していた場合は、stopとstartを実行して再起動します。
また、停止していた場合は、何もせず、停止したままになります。

restartは、起動しているかどうかに関わらずstopとstartを実行するので、
停止している状態でも起動を実行します。

インストールログを確認する

2012年9月29日

Linuxのインストールが完了すると、インストール時のログは、
/root/install.logに保存されます。

install.logファイルの内容を確認するには、viewやmoreコマンドを使用して参照します。

# view /root/install.log
Installing libgcc-4.1.2-50.el5.x86_64
warning: libgcc-4.1.2-50.el5: Header V3 DSA signature: NOKEY, key ID e8562897
Installing setup-2.5.58-7.el5.noarch
Installing filesystem-2.4.0-3.el5.x86_64
Installing basesystem-8.0-5.1.1.el5.centos.noarch
Installing cracklib-dicts-2.8.9-3.3.x86_64
Installing nash-5.1.19.6-68.el5.x86_64
Installing 1:termcap-5.5-1.20060701.1.noarch
Installing tzdata-2010l-1.el5.x86_64
Installing glibc-common-2.5-58.x86_64
Installing glibc-2.5-58.x86_64


# more /root/install.log
Installing libgcc-4.1.2-50.el5.x86_64
warning: libgcc-4.1.2-50.el5: Header V3 DSA signature: NOKEY, key ID e8562897
Installing setup-2.5.58-7.el5.noarch
Installing filesystem-2.4.0-3.el5.x86_64
Installing basesystem-8.0-5.1.1.el5.centos.noarch
Installing cracklib-dicts-2.8.9-3.3.x86_64
Installing nash-5.1.19.6-68.el5.x86_64
Installing 1:termcap-5.5-1.20060701.1.noarch
Installing tzdata-2010l-1.el5.x86_64
Installing glibc-common-2.5-58.x86_64
Installing glibc-2.5-58.x86_64

【関連記事】
viewコマンド
moreコマンド

Linuxログの調査をする

2010年7月30日

Linuxログを調べることで、システムの利用状況やソフトウェアの動作に
異常がないかを確認する事が出来ます。
また、問題が起こりそうな場合、その兆候を発見することもあります。

Linuxのログファイルで主になるのが「/var/log/messages」になります。

↓はmessagesファイルに記述されている内容を切り出したものになります。

Jun 29 17:38:11 Tiger shutdown[30243]: shutting down for system halt


ログの内容としては、

日時 ・・・・・・・・ Jun 29 17:38:11
出力元ホスト名 ・・・ Tiger
メッセージ出力元 ・・ shutdown
メッセージ ・・・・・ shutting down for system halt

になります。

このログファイルをリアルタイムで監視したい場合には、
tailコマンドにオプション「-f」を付けて実行すると
非常に便利です。

ログファイルが更新されると、更新された時点で
内容がリアルタイムに表示されます。

[root@Tiger log]# tail -f /var/log/messages
このリアルタイム監視を中止したい場合には、
キーボードの「Ctrl」+「c」キーを入力します。


また、ログファイルから特定のメッセージのみを調査したい場合には
grepコマンドが便利です。

下記の例はshutdownを行った時のログのみを表示させています。

[root@Tiger log]# grep shutdown /var/log/messages
Jun 28 23:36:33 Tiger shutdown[3341]: shutting down for system halt
Jun 29 03:10:39 Tiger shutdown[10217]: shutting down for system reboot
Jun 29 03:29:37 Tiger shutdown[3142]: shutting down for system halt
Jun 29 16:00:55 Tiger shutdown[2492]: shutting down for system reboot
Jun 29 16:08:08 Tiger shutdown[2615]: shutting down for system halt


/var/log/ディレクトリにはLinuxのログファイルが多く保存されますが、
「/var/log/secure」ファイルには認証などのセキュリティに関するログが
保存されます。

例えば、
下記はSSHでの接続に失敗した際のログになります。

[root@Tiger log]# tail /var/log/secure
Jul 15 15:00:53 Tiger sshd[10051]: Failed password for pakira from
192.168.1.97 port 51449 ssh2

また、ユーザー毎に最近ログインしたかどうかを確認するコマンドに
lastlogコマンドがあります。

このコマンドはrootしか実行できませんが、どのユーザーが
いつログインしたかを一覧で確認することができますので
非常に便利です。

[root@Tiger log]# lastlog
ユーザ名 ポート 場所 最近のログイン
root tty1 水 6月 30 14:06:21 +0900 2010
bin **一度もログインはありません**
daemon **一度もログインはありません**
adm **一度もログインはありません**
lp **一度もログインはありません**

(中略)

pakira pts/0 192.168.1.97 木 7月 15 13:35:23 +0900 2010
postgres **一度もログインはありません**
mysql **一度もログインはありません**
[root@Tiger log]#

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る