您现在的位置是:首页 >技术教程 >linux的系统日志网站首页技术教程

linux的系统日志

steven张008 2024-06-17 10:29:49
简介linux的系统日志

目录

一、日志文件的产生

二、日志文件存放在哪儿

(1)文本日志

(2)二进制日志

三、日志存放规则的配置文件

四、日志轮转

五、分析和监控日志


一、日志文件的产生

日志内容:内核、开机引导、守护进程启动运行的事件和输出

产生过程:系统的syslog组件产生,由rsyslong.srevice和systemd-journald.srevice这2个服务负责记录到轮转创建的日志文件里,然后处理

二、日志文件存放在哪儿

(1)文本日志

  1. 由rsyslong服务产生;
  2. 可以用cat、more、tail等命令查看
  3. 存放在:/var/log/

补充(上图)

/var/log/secure:包含登录相关的。比如用户登录失败的记录、原因

/var/log/wtmp:是二进制文件,用命令查看是乱码。只能用last命令才看得到

/var/log/utmp:是二进制文件,用命令查看是乱码。只能用w和who命令才看得到

/var/log/boot.log:开机时,系统启动服务时,相关的输出

/var/log/demsg:开机时,系统启用硬件时,相关的输出。是二进制文件,用命令查看是乱码,只能用dmesg命令才看得到

(2)二进制日志

  1. 由systemd-journald服务产生;
  2. 用cat、more、tail这些命令查看是乱码,只能用journaldctl命令查看;
  3. 存放在:/run/log/

/run/是内存映射的目录,重启后/run/log/会清空重建,二进制日志会丢失。不过在重启前系统会先把二进制日志记录到“文本日志存放目录/var/log/”下

三、日志存放规则的配置文件

作用:比如,与安全相关的日志都是存放到/var/log/secure文件。这个默认行为就是在配置文件里预设置好的

配置文件:/etc/rsyslog.conf(主配置文件)、/etc/rsyslog.d/*.conf(子配置文件)

主配置文件参数:

# rules #

*.info;mail.none;authpriv.none;cron.none       /var/log/messages

#.none表示匹配所有优先级。所有优先级的与邮件、安全、定时任务相关日志信息,都会写到 /var/log/messages

#####除了none,其他优先级如下图

mail.*                                                              /var/log/maillog

#所有与邮件相关日志信息,都会写到 /var/log/maillog

authpriv.*                                                        /var/log/secure

#所有与安全相关日志信息,都会写到 /var/log/secure

cron.*                                                             /var/log/cron

#所有与定时任务相关日志信息,都会写到 /var/log/cron

*.emerg                                                         :omusrmsg:*

#所有紧急事件日志,都直接打印在控制台,不记录到日志文件

四、日志轮转

出现问题:系统日志一直都增加,由各种系统服务产生。时间久了,服务器肯定存不下。

比如:

  • 定时任务相关的服务,5月15日产生一个日志文件cron-20230515,5月16日又产生cron-20230516;
  • 服务启动相关的服务,5月15日产生一个日志文件boot.log-20230515,5月16日又产生boot.log-20230516

解决办法:linux引入了日志轮转的机制来解决这个问题。日志轮转,就是创建新日志文件,删除旧日志文件的过程

具体实现:定时任务cron这个系统服务,每天会运行一次logrotate脚本(/etc/cron.daily/logrotate),脚本调用/etc/logrotate.conf这个配置文件,实现日志轮转   //logrotate脚本运行时只有守护进程,不产生服务

日志轮转配置文件/etc/logrotate.conf:

该文件设置了轮转规则

weekly:每周轮转一次(还有monthly、day、daily)

rotate4:同一个文件最多轮转4次,4次之后就删除该文件(这儿是只保留最近4周的日志文件,之前的旧日志都删了)

dateteext:创建日志文件时,名字以日期命名XXXX-YYYYMD。如mail-20230516

create:删除旧日志时,创建一个新的空日志文件     //今天创建的,那么今天的日志内容会由rsyslong服务或systemd-journald服务写到该空日志文件里

compress:日志文件要压缩,不写表示不压缩

include:包含子配置文件/etc/logrotate.d。要引入自定义轮转规则配置文件,可以在下面加一条include /etc/自定义配置文件

自定义轮转规则:

更多轮转规则参数:

五、分析和监控日志

(1)分析日志

每一条日志文件的内容,都由4部分组成


  1. 日志记录时间(操作系统时间)
  2. 日志是那一台主机产生的
  3. 日志由哪个服务产生       //[1433]是服务对应进程的pid
  4. 日志详细内容(记录的什么事件)

最新的日志在末尾:每写入一条日志,都写到文件最后

(2)监控日志

tail -f /var/log/日志文件

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