Linux08-日志

目录

一、systemd的日志

1.1、sytemd-journald与systemd日志

1.2、systemd日志的持久化

二、系统常规日志

2.1、系统日志概述

2.2、查看系统日志文件

2.3、日志的轮转

2.4、分析系统日志

2.5、使用logger发送消息到日志


RHEL7的日志由2个服务负责记录,分别是 systemd-journald 和 rsyslog ,分别记录systemd的日志和系统的常规日志。

一、systemd的日志

1.1、sytemd-journald与systemd日志

关于systemd的日志,要记住以下三方面:

  1. 服务sytemd-journald.service负责记录systemd的日志。
  2. systemd的日志放在 /run/log 目录下,systemd的日志默认是非持久化(掉电就没),可以改为持久化的。
  3. systemd的日志是二进制文件,因此不能用vim、less、cat等直接读取,要使用 journalctl -u sshd.service 或 systemctl status sshd -l来查看。journalctl的 -u 是看哪个unit的服务,-f 是 follow 可以跟踪查看。

先来看看systemd-journald.service 和 journalctl 的用法。

再来看一下什么叫非持久化(掉电就没)。重启一下后,sshd的日志就没有了。

journalctl --since --until,两个选项都接受 YYYY-MM-DD hh:mm:ss的时间参数,可以查看某一个时间段内的systemd日志。

1.2、systemd日志的持久化

默认情况下,systemd的日志保存在 /run/log/journal 中,重启后就丢失了。如果存在目录 /var/log/journal/ ,那么systemd日志就会记录到这个目录中,实现持久化。随后,/var/log/journal/ 下的日志遵循系统日志的规则进行logrotate,具体参看下面的一节。除此之外,这里的日志大小不能超过所处文件系统的10%,也不能造成文件系统可用空间低于15%,这些设置可以在 /etc/systemd/journald.conf 中调节。

systemd日志持久化的过程就是:

  1. 以root用户创建 /var/log/journal/ 目录。
  2. 确保/var/log/journal/ 目录所属用户和所属组分别为root和systemd-journald,权限为 2775。
  3. 以root身份发送特殊信号USR1到systemd-journald进程,使之生效。

由于systemd的日志持久化了,但实际上没有必要看那么多日志,通过 journalctl -b 可以仅显示系统上次启动以来的日志,减少不必要的信息。

二、系统常规日志

2.1、系统日志概述

由rsyslog记录的日志放在 /var/log目录下。这些日志是文本形式的,可以用vim、less、cat等查看内容。这些日志是持久的,掉电也不会丢失。

日志文件用途
/var/log/secure记录 安全和身份验证相关的消息、系统错误的日志。
/var/log/maillog记录 与邮件服务器相关的日志。
/var/log/cron记录 与定期执行的任务相关的日志。
/var/log/boot.log记录 与系统启动相关的日志。
/var/log/message记录 大多数系统日志,除了以上4种。

2.2、查看系统日志文件

系统日志有类别和优先级,关于这些的配置文件为 /etc/rsyslog.conf和/ect/rsyslog.d下的*.conf文件。管理员可以将带有.conf后缀的自定义文件放入/etc/rsyslog.d目录中,这样可以修改rsyslogd的配置而不被rsyslog更新覆盖。可以man 5 rsyslog.conf查看用法。

系统日志优先级
编码优先级严重性
0emerg系统不可用。
1alert必须立即采取措施。
2crit严重状况。
3err非严重错误状况。
4warning警告状况。
5notice正常但重要的事件。
6info消息性事件。
7debug调试信息。

/etc/rsyslog.conf的#### RULES ####部分包含定义日志消息保存位置的配置。每行左侧表示 类别.级别。*是通配符,代表所有类别和所有级别。每行右侧表示日志保存到的文件。rsyslog的日志可能会出现在多个不同的日志文件中。为了避免这种重复,可以将级别设置为none,那么表示重定向到这个日志文件的日志消息不被记录。

除了以上位置,特定的服务可能也将日志写在/var/log目录下特定的目录,比如apache和samba将自己的日志写到/var/log目录下相应的子目录。

 比如我们可以指定一个配置文件debug.conf,临时将所有的 debug 级别的日志信息全部写入 /var/log/debug-msg 文件中。写入配置文件 /etc/rsyslog.d/debug.conf 之后,重启 rsyslogd 服务生效。

2.3、日志的轮转

 日志通过logrotate工具实现轮转,防止日志将包含/var/log/的文件系统填满。轮转日志文件时,使用扩展名对日志文件重命名,扩展名指定轮转日期,比如截图就是2020年07月02日轮转的。轮转之后,会创建新的日志文件。cron作业会定期运行logrotate,轮转4周之后旧的日志会被自动删掉释放磁盘空间。可以参考 man 8 logrotate,以及 /etc/logrotate.conf配置文件。

2.4、分析系统日志

rsyslogd记录的系统日志在文件末尾追加最新的消息。由rsyslogd记录的日志都以标准的格式记录,分为四个部分,从左到右依次是:

  1. 记录该日志条目的时间戳
  2. 发送该日志的主机
  3. 发送该日志的程序或进程
  4. 发送日志的内容

可以利用 tail -f 跟踪日志信息。比如,/var/log/secure 记录了两次不同用户远程登录和退出的情况。

2.5、使用logger发送消息到日志

logger命令可以发消息到rsyslogd服务。默认情况下,级别为notice,可以用 logger -p 来指定其他级别。在2.2节,我们看到 local7.* 的日志记录到 /var/log/boot.log 日志中,我们也向里面发送一条信息。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦行僧(csdn)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值