linux系统日志以及分析

来源:互联网 发布:mac网游下载 编辑:程序博客网 时间:2024/06/12 19:55

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。


大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd 或/etc/rsyslog.d,默认配置文件为 /etc/syslog.conf 或 rsyslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。

 

Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。

完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。

例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。

日志类型

下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:

 

类型说明auth用户认证时产生的日志,如login命令、su命令。authpriv与 auth 类似,但是只能被特定用户查看。console针对系统控制台的消息。cron系统定期执行计划任务时产生的日志。daemon某些守护进程产生的日志。ftpFTP服务。kern系统内核消息。local0.local7由自定义程序使用。lpr与打印机活动有关。mail邮件日志。mark产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。news网络新闻传输协议(nntp)产生的消息。ntp网络时间协议(ntp)产生的消息。user用户进程。uucpUUCP子系统。

 

日志优先级

常见的日志优先级请见下标:

 

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

常用日志文件

系统日志是由一个名为syslog的服务管理的,如以下日志文件都是由syslog日志服务驱动的:

/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息

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

/var/log/messages :记录Linux操作系统常见的系统和服务错误信息

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

/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址

/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看

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

/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件

 

/var/log/syslog 或 /var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们。
/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。

日志文件详细介绍:

/var/log/boot.log

该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示:

 

 

/var/log/syslog

默认Centos,Fedora不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。

它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@TestStation etc]# lastlog
Username         Port     From             Latest
root             pts/0    110.87.109.232   Wed Nov  2 10:34:20 +0800 2016
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
uucp                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
gopher                                     **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
vcsa                                       **Never logged in**
saslauth                                   **Never logged in**
postfix                                    **Never logged in**
sshd                                       **Never logged in**
ntp                                        **Never logged in**
suda             pts/2    222.79.79.120    Tue Oct 25 16:00:01 +0800 2016

 

/var/log/wtmp

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。

/var/run/utmp

该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。

每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 五个多月宝宝拉鼻涕便怎么办 一岁宝宝拉鼻涕样大便怎么办 宝宝拉粘液大便鼻涕状的怎么办 十个月宝宝拉鼻涕一样大便怎么办 7个月宝宝咳嗽反反复复发热怎么办 婴儿3个月突然不吃奶瓶怎么办? 2个月婴儿突然不肯用奶瓶怎么办 喝母乳的宝宝不喝奶瓶怎么办 三个月宝宝不喝奶瓶母乳不够怎么办 七个多月的宝宝不吃辅食怎么办 婴儿光认奶粉不认母乳怎么办 宝宝11个月断奶不吃奶瓶怎么办 4个月的宝宝断奶不肯吃奶瓶怎么办 晚上磨牙齿把牙神经磨坏怎么办 喝母乳的宝宝不喝奶粉怎么办 我宝宝的牙齿长的不整齐怎么办? 宝宝5个月了母乳不够吃怎么办 4个月宝宝母乳不够吃怎么办 11个月宝宝只吃母乳怎么办 10个月宝宝突然不吃母乳怎么办 2个月宝宝咳嗽怎么办是吃母乳的 九个月宝宝不喜欢吃粥和米糊怎么办 9个月宝宝突然不吃辅食怎么办 宝贝8个月不吃辅食怎么办 11个月宝贝不吃辅食怎么办 十一个月宝宝长牙不吃辅食怎么办 八个多月的宝宝不爱吃辅食怎么办 7个月的宝宝不爱吃辅食怎么办 宝宝只吃母乳不吃辅食怎么办 10个月的宝宝不肯吃勺子怎么办 十一个月大宝宝不吃奶吃饭怎么办 十一个月宝宝光吃奶不吃饭怎么办 20个月宝宝爱吃奶不爱吃饭怎么办 宝宝8个多月不肯米糊跟粥怎么办 8个月宝宝突然不肯吃米糊了怎么办 八个月宝宝突然不吃辅食怎么办 八个月宝宝拉屎费劲还干怎么办 两个月的小孩不喜欢吃奶粉怎么办 三个多月的宝宝不爱吃奶怎么办 4个月的宝宝不吃奶怎么办 九个月宝宝一直高烧不退怎么办