文章目录
- 1. 日志文件
- 1.1 日志文件的分类
- 1.2 日志文件保存位置
- 1.2.1 内核及系统日志
- 1.2.2 日志消息的级别
- 1.2.3 日志记录的一般格式
- 1.2.4 用户日志分析
- 程序日志分析
- 日志管理策略
- 远程收集日志
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
4月 16 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 3月 23 00:42 /var/log/grubby_prune_debug
总用量 0
drwx------. 2 root root 6 10月 14 2020 old
drwx------. 2 root root 6 10月 14 2020 qemu
总用量 0
总用量 0
总用量 0
-rw-r--r--. 1 root root 38017 3月 22 19:36 /var/log/gdm/:0.log.4
-rw-r--r--. 1 root root 36887 3月 23 10:54 /var/log/gdm/:0.log.3
-rw-r--r--. 1 root root 0 3月 23 10:54 /var/log/gdm/:0.log.2
-rw-------. 1 root root 31032 3月 23 00:54 X.log