日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
-
内核及系统日志:
由系统服务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 |
日志消息的级别
日志文件的查看
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等专用 日志分析工具
日志管理策略
-
及时作好备份和归档
-
延长日志保存期限
-
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等 -
集中管理日志
将服务器的日志文件发到统一-的日志文件服务器
便于日志信息的统一-收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除