原文

linux系统日志

1简介

linux系统拥有非常强大的日志功能,保存着几乎有所有操作记录,包括内核和程序产生的各种错误信息,警告信息或其他提示信息,对这些信息管理员了解系统的运行状态和分析问题非常有用。可以从日志文件中获得自已想要的信息。

1.1日志进程

默认日志守护进程为syslog. 位于/usr/sbin/syslog 或/usr/sbin/syslogd或/usr/sbin/rsyslog.d.默认配置文件为:/etc/syslog.conf ,/etc/rsyslog.conf,可以配置生成的日志

查看命令:ps -ef | grep syslog

root@onlinegame:/var/log# ps -ef | grep syslog
root 5659 1 0 2017 ? 00:23:22 /usr/sbin/rsyslogd

syslog服务可以根据日志的类型,优先级将日志保存到不同文件中。

linux系统log日志文件默认路径在/var/log中。

1.2 常用日志类型

*类型**说明*
auth用户认证时产生的日志,如login命令、su命令。
console针对系统控制台的消息。
cron系统定期执行计划任务时产生的日志。
daemon某些守护进程产生的日志。
kern系统内核消息。
mail邮件日志。
news网络新闻传输协议(nntp)产生的消息。
ntp网络时间协议(ntp)产生的消息。
user用户进程。

1.3常用日志优先级

*优先级**说明*
emerg紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert需要立即修复,例如系统数据库损坏。
crit危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err一般错误消息。
warning警告。
notice不是错误,但是可能需要处理。
info通用性消息,一般用来提供有用信息。
debug调试程序产生的信息。
none没有优先级,不记录任何日志消息。

1.2 常用的日志

  1. /var/log/messages: 包括整体系统普通信息,其中也包含系统启动期间的日志。此外,还包括mail,cron,daemon,kern,auth等内容.

  2. /var/log/syslog:它上messages日志不同,它只记录警告信息,通常是系统出问题的信息。

  3. /var/log/user.log: 记录所有等级用户信息的日志.

  4. /var/log/auth.log: 包含系统授权信息,用户登陆和使用权限机制

  5. /var/log/daemon.log: 包含各种系统后台守护进程日志信息

  6. /var/log/kern.log: 包含内核产生的日志,有助于在定制内核时解决问题.

  7. /var/log/boot.log: 记录系统在引导过程中发生的事件,即linux系统开机自检过程显示的信息

  8. /var/log/lastlog: 记录最后一次用户成功登陆的时间,IP等信息,lastlog查看

  9. /var/log/secure: linux系统安全日志,记录用户和工作组变坏情况,用户登陆认证情况

  10. /var/log/btmp:记录linux登陆失败的用户,时间和远程IP

  11. /var/log/wtmp:此日志文件永久记录每个用户登录,注销及系统的启动,停机的事件,用last查看

  12. /var/log/utmp:记录有关当前登录的每个用户的信息。如who,w,users,finger等需要访问此文件

2 日志文件简介

2.1. /var/log/messages日志

包含的信息比较全面

  1. 启动时日志

  2. 玩家操作日志等

格式:

日期时间 机器名命令描述信息

root@onlinegame:/var/log$ vi messages

Dec 24 06:25:29 onlinegame rsyslogd: [origin software=“rsyslogd” swVersion=“8.4.2” x-pid=“5659” x-info=“http://www.rsyslog”] rsyslogd was HUPed

Dec 24 06:27:01 onlinegame rsyslogd0: action ‘action 26’ resumed (module ‘builtin:ompipe’) [try http://www.rsyslog/e/0 ]

Dec 25 09:22:45 onlinegame -bash: HISTORY: PID=19793 PPID=19792 SID=19793 USER=zhangke01 CMD=ll

Dec 25 09:23:13 onlinegame -bash: HISTORY: PID=19793 PPID=19792 SID=19793 USER=zhangke01 CMD=cd wo

2.2 /var/log/syslog日志文件

默认centos不生成,可以在/etc/rsyslog.conf配置让系统生成日志文件。

syslog只记录警告信息,常常是系统出问题的信息,所以要关注此文件.

要让系统生成该日志文件,在/etc/rsyslog.conf文件中加上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。

该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示为"Never logged in"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似图4的信息:

luoying@onlinegame:/var/log$ vi syslog

Dec 31 17:29:47 onlinegame exim[18063]: write failed on panic log: length=104 result=-1 errno=28 (No space left on device)

Dec 31 17:59:48 onlinegame exim[20253]: 2017-12-31 17:59:47 failed to write to main log: length=47 result=-1 errno=28 (No space left on device)

Feb 6 17:46:26 onlinegame -bash: HISTORY: PID=3687 PPID=3686 SID=3687 USER=gugang CMD=python

Feb 6 17:49:23 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd …

Feb 6 17:49:26 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd svn up

Feb 6 17:49:29 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=ls -l

Feb 6 17:49:34 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=svn up

Feb 6 17:49:38 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd …/engine/

Feb 6 17:49:41 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=sh stop_node.sh

Feb 6 17:49:42 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=sh start_node.sh

2.3 /var/log/boot.log日志

记录系统在引导过程中发生的事件,即linux系统开机自检过程显示的信息

[root@localhost log]# cat *boot.log*

[ OK ] Started Show Plymouth Boot Screen.

[ OK ] Reached target Paths.

[ OK ] Reached target Basic System.

​ Starting File System Check on /dev/disk/by-uuid/6d32…88652b684ca0…

systemd-fsck[301]: fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/disk/by-uuid/6d32919a-e3d2-4e22-a5a5-88652b684ca0

[ OK ] Started File System Check on /dev/disk/by-uuid/6d329…5-88652b684ca0.

[ OK ] Started dracut initqueue hook.

​ Mounting /sysroot…

[ OK ] Mounted /sysroot.

[ OK ] Reached target Initrd Root File System.

​ Starting Reload Configuration from the Real Root…

[ OK ] Started Reload Configuration from the Real Root.

[ OK ] Reached target Initrd File Systems.

[ OK ] Reached target Initrd Default Target.

Welcome to CentOS Linux 7 (Core)!

[ OK ] Stopped Switch Root.

[ OK ] Stopped target Switch Root.

[ OK ] Stopped target Initrd File Systems.

2.4 /var/log/wtmp日志文件(用户登陆)

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。

随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。

该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。

[root@localhost log]# last

root pts/1 192.168.1.1 Tue Feb 6 17:18 still logged in

root pts/0 192.168.1.1 Tue Feb 6 17:18 still logged in

root pts/1 192.168.1.1 Thu Feb 1 21:10 - 21:14 (00:04)

root pts/0 192.168.1.1 Thu Feb 1 14:21 - 21:47 (07:25)

root pts/1 192.168.1.1 Tue Jan 30 10:46 - 19:18 (08:31)

root pts/0 192.168.1.1 Tue Jan 30 09:32 - 19:18 (09:45)

luoying pts/0 192.168.1.5 Wed Jan 24 21:21 - 21:21 (00:00)

2.5 /var/log/utmp日志文件(用户登陆)

该日志文件记录有关当前登录的每个用户的信息。

因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。

系统中需要查询当前用户状态的程序,如who、w等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

[root@localhost log]# who

(unknown) :0 2018-01-24 21:19 (:0)

root pts/0 2018-02-06 17:18 (192.168.1.1)

root pts/1 2018-02-06 17:18 (192.168.1.1)

[root@localhost log]# w

18:20:58 up 12 days, 21:03, 3 users, load average: 0.00, 0.01, 0.05

USER TTY LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 17:18 2.00s 0.38s 0.05s w

root pts/1 17:18 1:02m 0.05s 0.05s -bash

2.6 /var/log/lastlog日志文件(用户登陆)

记录最后一次用户成功登陆的时间,IP等信息,lastlog查看

wtmp、utmp、lastlog都记录了用户的登陆情况,所有记录包含了相同的时间戳。而且文件是二进制保存的,不能用cat/vi直接查看。而是使用相关的命令令查看。

[root@localhost log]# *lastlog*

用户名 端口 来自 最后登陆时间

root pts/1 192.168.1.1 二 2月 6 17:18:46 +0800 2018

bin 从未登录过

daemon 从未登录过

sync 从未登录过

shutdown 从未登录过

halt 从未登录过

mail 从未登录过

games 从未登录过

gdm :0 三 1月 24 21:19:08 +0800 2018

tcpdump 从未登录过

haha pts/0 192.168.1.5 三 1月 24 21:21:28 +0800 2018

mysql pts/1 二 4月 11 15:15:05 +0800 2017

test pts/0 192.168.1.1 四 12月28 20:20:05 +0800 2017

2.7 /var/log/users.log日志文件(用户操作日志)

记录所有等级用户信息的日志.

root@onlinegame:/var/log$ vi users.log

Dec 25 10:01:26 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll

Dec 25 10:01:27 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=rm -rf bin

Dec 25 10:01:28 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ls

Dec 25 10:01:29 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=cd …

Dec 25 10:01:29 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll

Dec 25 10:01:32 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=cd …

Dec 25 10:01:32 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll

Dec 25 10:01:39 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=sh pack.sh

Dec 25 10:02:11 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll

2.8 /var/log/auth.log(授权信息)

包含系统授权信息,用户登陆和使用权限机制

root@onlinegame:/var/log$ vi *auth.log*

Feb 6 20:49:19 onlinegame sshd[11351]: Did not receive identification string from 192.168.44.161

Feb 6 20:50:01 onlinegame CRON[11387]: pam_unix(cron:session): session opened for user root by (uid=0)

Feb 6 20:50:01 onlinegame CRON[11386]: pam_unix(cron:session): session opened for user root by (uid=0)

Feb 6 20:50:01 onlinegame CRON[11388]: pam_unix(cron:session): session opened for user root by (uid=0)

Feb 6 20:50:01 onlinegame CRON[11389]: pam_unix(cron:session): session opened for user root by (uid=0)

Feb 6 20:50:01 onlinegame CRON[11386]: pam_unix(cron:session): session closed for user root

Feb 6 20:50:01 onlinegame CRON[11388]: pam_unix(cron:session): session closed for user root

Feb 6 20:50:01 onlinegame CRON[11389]: pam_unix(cron:session): session closed for user root

Feb 6 20:50:03 onlinegame CRON[11387]: pam_unix(cron:session): session closed for user root

2.9 /var/log/daemon.log(守护进程日志)

包含各种系统后台守护进程日志信息

root@onlinegame:/var/log$ vi *daemon.log*

Dec 25 09:52:18 onlinegame dbus[1781]: [system] Activating service name=‘org.freedesktop.login1’ (using servicehelper)

Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activating service name=‘org.freedesktop.systemd1’ (using servicehelper)

Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activated service ‘org.freedesktop.systemd1’ failed: Launch helper exited with unknown return code 1

Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activated service ‘org.freedesktop.login1’ failed: Launch helper exited with unknown return code 1

2.10 /var/log/kern.log(内核日志)

包含内核产生的日志,有助于在定制内核时解决问题.

luoying@onlinegame:/var/log$ vi kern.log

Dec 25 20:06:59 onlinegame kernel: [19645166.590333] UDP: bad checksum. From 192.168.41.42:5353 to 224.0.0.251:5353 ulen 48

Dec 25 20:07:07 onlinegame kernel: [19645174.122019] UDP: bad checksum. From 192.168.41.42:137 to 192.168.43.255:137 ulen 58

Dec 28 15:29:52 onlinegame kernel: [19887739.280311] device eth0 entered promiscuous mode

Dec 28 15:30:04 onlinegame kernel: [19887751.777992] device eth0 left promiscuous mode

Dec 28 15:30:38 onlinegame kernel: [19887785.920414] device eth0 entered promiscuous mode

Dec 28 15:30:43 onlinegame kernel: [19887790.828312] device eth0 left promiscuous mode

Dec 28 15:30:48 onlinegame kernel: [19887795.052369] device eth0 entered promiscuous mode

2.11 /var/log/secure(系统安全日志)

linux系统安全日志,记录用户和工作组变坏情况,用户登陆认证情况

[root@localhost log]# vim secure

Feb 6 17:18:23 localhost sshd[517]: Accepted password for root from 192.168.1.1 port 15063 ssh2

Feb 6 17:18:23 localhost sshd[517]: pam_unix(sshd:session): session opened for user root by (uid=0)

2.12 /var/log/btmp(登陆失败日志)

记录linux登陆失败的用户,时间和远程IP

更多推荐

linux系统日志