关于Linux系统日志的介绍
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 |
系统内核消息。 |
|
邮件日志。 |
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.com"] rsyslogd was HUPed
Dec 24 06:27:01 onlinegame rsyslogd0: action 'action 26' resumed (module 'builtin:ompipe') [try http://www.rsyslog.com/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
<
下一篇: C语言函数可变参数处理简介