日志的功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

  • 内核及系统日志:
    由系统服务syslog统一 进行管理,日志格式基本相似

  • 用户日志:
    记录系统用户登录及退出系统的相关信息

  • 程序日志:
    由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置

默认位于:/var/log目录下

主要日志文件介绍

日志文件类型 日志文件目录
内核及公共消息日志 /var/log/messages
计划任务日志 /var/log/cron
系统引导日志 /var/log/dmesg
邮件系统日志 /var/log/maillog
用户登录日志 /var/log/lastlog、/var/log/secure、/var/log/wtmp、/var/run/btmp

日志消息的级别

浅析Linux文件(二)日志文件详解

日志文件的查看

cat命令:显示整个文件

常用选项:

-n :                     由 1 开始对所有输出的行数编号
-b :                    -n 相似,只不过对于空白行不编号
-s :                     当遇到有连续两行以上的空白行,就代换为一行的空白行

more命令: 以阅读模式查看日志(enter向下滚动、space向下翻页、b向上翻页,q退出)


less命令:跟more命令使用功能差不多,只不过less可以查看最后一页,more命令到最后一页自动退出阅读模式


head命令:从文本文件的头部开始查看,用于查看一个文本文件的开头部分

 -n:     指定需要显示多少行      

tail命令:从文本文件的尾部开始查看,用于显示文本文件的末尾几行,通常用来查看新增的日志信息

   -n:                   指定需要显示多少行    
   -f :                   自动显示新增的文件内容

用户日志分析

保存了用户登录、退出系统等相关信息:

/var/log/lastlog:                     //最近的用户登录事件
/var/log/wtmp:                        //用户登录、注销及系统开、关机事件
/var/run/utmp:                        //当前登录的每个用户的详细信息
/var/log/secure:                     //与用户验证相关的安全性事件

分析工具

  • users、who、W、last、 lastb

user命令:显示当前登陆的用户名称,每个显示用户名对应一个登陆会话

[root@localhost ~]# users
jiang root root
[root@localhost ~]#

who命令:查看当前正在登录的用户

[root@localhost ~]# who
root     :1           2019-08-09 19:58 (:1)
root     pts/1        2019-08-28 19:18 (192.168.52.1)
jiang    :2           2019-08-28 19:32 (:2)
[root@localhost ~]#

w命令:查看当前系统信息和用户登录信息

[root@localhost ~]# w
 19:39:20 up  1:19,  4 users,  load average: 0.00, 0.09, 0.13
USER     TTY      FROM             LOGIN@   IDLE   JCPU     WHAT
root     :1       :1               098月19 ?xdm?   1:39   0.09s /usr/libexec/gnome-session-binary --sess
root     pts/1    192.168.52.1     19:18    0.00s  0.08s  0.02s w
jiang    :2       :2               19:32   ?xdm?   1:39   0.10s /usr/libexec/gnome-session-binary --sess
[root@localhost ~]#

last命令:查询成功登陆到系统的用户信息,最新情况显示在最前面

[root@localhost ~]# last
jiang    :2           :2               Wed Aug 28 19:32   still logged in   
root     pts/1        192.168.52.1     Wed Aug 28 19:18   still logged in   
root     pts/0        :1               Wed Aug 28 19:18 - 19:18  (00:00)    
root     pts/0        :1               Tue Aug 13 16:20 - 16:21  (00:00)    
root     pts/0        :1               Fri Aug  9 20:24 - 20:27  (00:03)    
root     pts/0        :1               Fri Aug  9 20:23 - 20:24  (00:00)    
root     pts/0        :1               Fri Aug  9 20:23 - 20:23  (00:00)    
root     pts/0        :1               Fri Aug  9 20:22 - 20:22  (00:00)    
root     pts/0        :1               Fri Aug  9 20:14 - 20:20  (00:05)    
root     pts/0        :1               Fri Aug  9 20:01 - 20:11  (00:09)    
root     :1           :1               Fri Aug  9 19:58   still logged in   
jiang    :0           :0               Fri Aug  9 19:48 - 19:58  (00:09)    
reboot   system boot  3.10.0-693.el7.x Fri Aug  9 19:32 - 19:41 (19+00:09)  

wtmp begins Fri Aug  9 19:32:34 2019
[root@localhost ~]#

lastb命令:查询登陆失败的用户记录,如用户名、密码错误都有记录,属于安全事件,也可以从安全日志 /var/log/secure 中查询相关信息

[root@localhost ~]# lastb
jiang    :0           :0               Wed Aug 28 19:59 - 19:59  (00:00)    
jiang    :0           :0               Wed Aug 28 19:59 - 19:59  (00:00)    
jiang    :0           :0               Wed Aug 28 19:59 - 19:59  (00:00)    

btmp begins Wed Aug 28 19:59:19 2019
[root@localhost ~]# 

程序日志分析

由相应的应用程序独立进行管理

  • Web服务: /var/log/httpd/
    access log、 error log
  • 代理服务: /var/log/squid/
    access.log、 cache.log、
  • FTP服务: /var/log/xferlog

分析工具:

  • 文本查看、grep过滤检索、Webmin管理套件中查看

  • awk、sed等文本过滤、格式化编辑工具

  • Webalizer、Awstats等专用 日志分析工具

日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
    日志中可能会包含各类敏感信息,如账户、口令等

  • 集中管理日志
    将服务器的日志文件发到统一-的日志文件服务器
    便于日志信息的统一-收集、整理和分析
    杜绝日志信息的意外丢失、恶意篡改或删除