您现在的位置是:首页 >学无止境 >【linux】——日志分析网站首页学无止境

【linux】——日志分析

陌上花开,静待绽放! 2023-05-21 04:00:02
简介【linux】——日志分析

1. 日志文件

1.1 日志文件的分类

在这里插入图片描述

日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记".

日志文件对于诊断和解决系统中的问题很有帮助,系统一旦出现问题时及时分析日志就会“有据可查”。此外。当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹.

不同的日志文件记载了不同类型的信息。例如Linux内核消息、用户登录记录、程序错误等。

rsyslog.service:管理系统日志的服务,要设置为开机自启;

[root@clr ~]# systemctl status rsyslog.service 
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2023-03-23 11:03:03 CST; 3 weeks 3 days ago
416 13:12:01 clr rsyslogd[1076]:  [origin software="rsyslogd" swVersion="8.24.0-55.el7"...Ped
Hint: Some lines were ellipsized, use -l to show in full.

/etc/rsyslog.conf:系统日志的主配置文件;

[root@clr ~]# ls /etc/rsyslog.conf
/etc/rsyslog.conf

1.2 日志文件保存位置

在这里插入图片描述

/var/log/messages:记录linux内核消息及名种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等,对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文中获得相关的事件记录信息

/var/log/cron:记录crond计划任务产生的事件信息

/var/log/dmesg:记录linux系统在引导过程中的各种事件信息

/var/log/maillog:记录进入或发出系统的电子邮件活动

/var/log/lastlog:记录每个用户最近的登录事件

/var/log/rpmpkgs:记录系统中安装的各rpm包列表信息

/var/log/secure:记录用户认证相关的安全事件信息

/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件

/var/run/btmp:记录失败的、错误的登录尝试及验证事件

1.2.1 内核及系统日志

在这里插入图片描述

由rsyslog软件包提供了rsyslogd程序。分别用于记录系统内核的消息和各种应用程序的消息

在/etc/syslog.conf 配置文件中,配置记录的格式如下(具体参考man syslog.conf):

设备类别.日志级别 日志消息发送位置

—— 如果需要在同一行中设置多个“设备.级别”组合,每组之间用分号隔开

—— 发送位置可以是本机的用户名:“-/var/log/maillog”中前面的"-"表示每次记录日志时并不马上进行数据同步

1.2.2 日志消息的级别

在这里插入图片描述

1.2.3 日志记录的一般格式

·在这里插入图片描述

vim messages-20230416:查看指定日期的内核及公共消息日志;

在这里插入图片描述

/etc/rsyslog.conf:记录内核及系统服务的日志文件;

[root@clr /var/log]# vim /etc/rsyslog.conf
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;authpriv.none #(所有程序从info级别往上开始记录,但mail、authpriv和authpriv设备的日志信息除外,不做记录)               /var/log/messages

# The authpriv file has restricted access.
authpriv.*     #记录ssh、ftp等登录信息的验证信息authpriv所有级别的日志信息                                      /var/log/secure

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*       #记录邮件信息mail所有级别的日志信息,并且采用异步模式进行记录                                           -/var/log/maillog

# Save boot messages also to boot.log
local7.*      #自定义设备                                          /var/log/boot.log

1.2.4 用户日志分析

在这里插入图片描述

注意:除了==/var/log/secure文件以外,其他三个用户日志文件都是二进制的数据文件==,无法直接使用tail、 less等文本查看工具浏览。

lastb:查询系统中登录失败的用户记录;

[root@clr /etc/httpd]# lastb  #查询系统中登录失败的用户记录
root     ssh:notty    192.168.80.20    Sun Apr 16 19:38 - 19:38  (00:00)   #root用户从192.168.80.20这个ip地址登录系统
test     :1           :1               Sun Apr 16 19:33 - 19:33  (00:00)    
cCLR     :1           :1               Sun Apr 16 19:33 - 19:33  (00:00)    

last:用于查询成功登录到系统的记录;

[root@clr /etc/httpd]# last  #用于查询成功登录到系统的记录
root     pts/0        192.168.80.1     Sun Apr 16 19:31   still logged in   
root     pts/2        192.168.80.1     Sun Apr 16 18:49   still logged in   
root     :0           :0               Thu Mar 23 01:07 - crash  (00:07)    
reboot   system boot  3.10.0-1160.el7. Thu Mar 23 00:55 - 19:36  (-5:-19)   

程序日志分析

在这里插入图片描述

cat messages | grep [服务名] #从messages日志文件中过滤指定服务的日志文件;

[root@clr /var/log]# cat messages | grep httpd  #从messages日志文件中过滤指定服务httpd的日志文件
Apr 16 16:06:42 clr yum[6021]: Installed: httpd-tools-2.4.6-98.el7.centos.7.x86_64
Apr 16 16:06:44 clr yum[6021]: Installed: httpd-2.4.6-98.el7.centos.7.x86_64
Apr 16 16:07:50 clr httpd: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.80.1. Set the 'ServerName' directive globally to suppress this message

cat secure | grep ‘指定要求’ #从secure日志文件中过滤指定要求信息的日志文件;

[root@clr /var/log]# cat secure | grep 'Unregistered  Authentication'  #从secure日志文件中过滤未注册身份验证信息的日志文件
Apr 16 16:07:50 clr polkitd[603]: Unregistered Authentication Agent for unix-process:6071:1439270 (system bus name :1.231, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)

日志管理策略

在这里插入图片描述

find [目录名] -mtime +30:查询指定目录下30天以前的文件和目录;

[root@clr /var/log]# find /var/log/ -mtime +30  #查看/var/log/目录下30天以前的文件和目录
/var/log/samba/old
/var/log/ppp
/var/log/glusterfs
/var/log/speech-dispatcher
/var/log/swtpm/libvirt/qemu
/var/log/qemu-ga
[root@clr /var/log]# find /var/log/ -mtime +30 -delete  #查看/var/log/目录下30天以前的文件和目录,并且删除该查找到的文件和目录


[root@clr /var/log]# find /var/log/ -mtime +3 -exec ls -l {} ;  #查看/var/log/目录下3天以前的文件和目录,并显示出来
-rw-r--r--. 1 root root 193 323 00:42 /var/log/grubby_prune_debug
总用量 0
drwx------. 2 root root 6 1014 2020 old
drwx------. 2 root root 6 1014 2020 qemu
总用量 0
总用量 0
总用量 0
-rw-r--r--. 1 root root 38017 322 19:36 /var/log/gdm/:0.log.4
-rw-r--r--. 1 root root 36887 323 10:54 /var/log/gdm/:0.log.3
-rw-r--r--. 1 root root 0 323 10:54 /var/log/gdm/:0.log.2
-rw-------. 1 root root   31032 323 00:54 X.log

远程收集日志

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。