分析日志文件
日志文件的分类
日志数据主要包括以下三类:
内核及系统文件:这种日志有rsyslog统一管理,根据主配置文件/etc/rsysylog.conf中设置决定将内核消息及各种系统程序消息记录到什么位置。
用户日志:用于记录Linux系统用户登录及退出系统的相关信息,包括用户名登录终端,登录时间,来源主机,正在使用的进程超作等。
程序日志:由自己独立管理的一份日志文件,用于记录本程序运行过程中的各种事件信息。格式可能和程序管理员管理的不一样。
linux系统本身和大部分服务器程序的日志文件默认都保存在目录/var/log/下。
常用日志文件
系统日志是由一个名为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/cron:记录crond计划任务产生的时间信息
/var/log/dmesg:记录linux系统在引导程序过程中的各种事件信息。
日志文件的分析
对于大多数的文本格式的日志文件(如内核及系统日志,大多数的程序日志),只要使用tail、more、less、cat等文本处理工具就可以查看日志内容。二进制的日志文件(如用户日志),则需要使用特定的查询命令。
内核及系统日志
大部分在/etc/rsyslog.conf文件中。
grep -v “^$” /etc/rsyslog.conf ##可以查日志信息
more /var/log/messages 可以查看公共日志
[root@yun13 ~]# more /var/log/messages
Oct 29 01:22:38 localhost journal: Runtime journal is using 8.0M (max allowed 188.7M, trying to
leave 283.1M free of 1.8G available → current limit 188.7M).
Oct 29 01:22:38 localhost kernel: Initializing cgroup subsys cpuset
Oct 29 01:22:38 localhost kernel: Initializing cgroup subsys cpu
四段组成:
时间标签:主机名:子系统名称:消息
用户日志
保存在wtmp、btmp、lastlog等日志文件中
需要用users、who、w、last、和lastb等用户查询命令来获取日志信息
[root@yun13 ~]# who
lai :0 2020-10-29 01:25 (:0)
lai pts/0 2020-10-29 01:35 (:0)
root pts/1 2020-11-04 07:35 (20.0.0.1)
[root@yun13 ~]# users
lai lai root
[root@yun13 ~]# w
09:59:41 up 9:19, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lai :0 :0 29Oct20 ?xdm? 2:25 0.18s /usr/libexec/gnome-session-bin
lai pts/0 :0 29Oct20 2:25m 0.11s 1.05s /usr/libexec/gnome-terminal-se
root pts/1 20.0.0.1 07:35 5.00s 0.39s 0.02s w
查询用户登录的历史记录----last、lastb命令
[root@yun13 ~]# last
root pts/1 20.0.0.1 Wed Nov 4 07:35 still logged in
root pts/3 20.0.0.10 Tue Nov 3 23:27 - 00:29 (01:01)
root pts/2 20.0.0.13 Tue Nov 3 23:26 - 00:29 (01:02)
root pts/1 20.0.0.1 Tue Nov 3 20:49 - 00:29 (03:39)
root pts/1 20.0.0.1 Tue Nov 3 17:31 - 20:25 (02:53)
lai pts/0 :0 Thu Oct 29 01:35 still logged in
lai :0 :0 Thu Oct 29 01:25 still logged in
reboot system boot 3.10.0-693.el7.x Thu Oct 29 01:22 - 10:01 (6+08:38)
wtmp begins Thu Oct 29 01:22:41 2020
[root@yun13 ~]# lastb ##查询用户登录失败的记录 我这里没有失败的记录故为空
[root@yun13 ~]# tail /var/log/secure ##也可看用户登录信息我这里登录失败了两次
Nov 4 10:05:29 localhost sshd[60661]: pam_unix(sshd:session): session closed for user root
Nov 4 10:06:11 localhost unix_chkpwd[63327]: password check failed for user (root)
Nov 4 10:06:11 localhost sshd[63325]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=20.0.0.1 user=root
Nov 4 10:06:11 localhost sshd[63325]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Nov 4 10:06:14 localhost sshd[63325]: Failed password for root from 20.0.0.1 port 62360 ssh2
Nov 4 10:06:18 localhost unix_chkpwd[63328]: password check failed for user (root)
Nov 4 10:06:18 localhost sshd[63325]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Nov 4 10:06:19 localhost sshd[63325]: Failed password for root from 20.0.0.1 port 62360 ssh2
Nov 4 10:06:30 localhost sshd[63325]: Accepted password for root from 20.0.0.1 port 62360 ssh2
Nov 4 10:06:30 localhost sshd[63325]: pam_unix(sshd:session): session opened for user root by (uid=0)
程序日志
/var/log/httpd
[root@yun13 httpd]# ll ##记录着httpd的日志信息
total 8
-rw-r--r--. 1 root root 2423 Nov 4 10:12 access_log
-rw-r--r--. 1 root root 1191 Nov 4 10:11 error_log