目录

一、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查看用法。

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

/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 日志中,我们也向里面发送一条信息。

Linux08-日志相关推荐

  1. python的日志库logging,真香!!!

    学习资源 Python之日志处理(logging模块) python之配置日志的几种方式 logging 官方高级用法 使用方法 LOG_FORMAT = "%(asctime)-15s - ...

  2. Docker学习(五)-----Docker查看日志

    八.Docker查看日志 docker logs 容器名称/ID docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam ...

  3. Springboot 利用AOP编程实现切面日志

    前言 踏入Springboot这个坑,你就别想再跳出来.这个自动配置确实是非常地舒服,帮助我们减少了很多的工作.使得编写业务代码的时间占比相对更大.那么这里就讲一下面向切面的日志收集.笔者使用lomb ...

  4. 【Springboot】日志

    springBoot日志 1.目前市面上的日志框架: 日志门面 (日志的抽象层):                JCL(Jakarta Commons Logging)                ...

  5. log4j屏蔽掉某个包下的log日志打印

    在log4j的配置文件下配置 ## Disable other log log4j.logger.com.summaryday.framework.db=OFF log4j定义了8个级别的log(除去 ...

  6. SpringBoot集成AOP管理日志

    写在前面 如何将所有的通过url的请求参数以及返回结果都输出到日志中? 如果在controller的类中每个方法名都写一个log输出肯定是不明智的选择.使用Spring的AOP功能即可完成. AOP ...

  7. 日志处理logger

    20220127 https://mp.weixin.qq.com/s/CgmfVqogqKBzezmIR7ZfsQ https://blog.csdn.net/kyle1314608/article ...

  8. 2021年大数据ELK(二十二):采集Apache Web服务器日志

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...

  9. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...

  10. 2021年大数据ELK(一):集中式日志协议栈Elastic Stack简介

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.简介 二.ELK 协议栈介绍及体系结构 三.集中式日志协议栈 ...

最新文章

  1. JVM经常使用的调优參数
  2. Unity 游戏开发技巧集锦之创建自发光材质
  3. 2014年全国计算机等级一级考试复习资料,2014年全国计算机等级一级考试复习资料..doc...
  4. C语言多线程教程(pthread)(线程创建pthread_t,指定线程run方法pthread_create,加mutex锁,解锁,伪共享 false sharing【假共享】)
  5. C++学习笔记(二)
  6. 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
  7. Dom4j完整教程~Document对象相关
  8. AT1219 歴史の研究 解题报告
  9. 学而思网校python助手_学而思网校直播课堂
  10. 嵌入式系统与人工智能
  11. Servlet读取xml文件的配置参数
  12. shell中算术运算、相加减
  13. 从 VI 编辑器谈操作系统起源及编辑器本质
  14. 基础物理-物质的组成
  15. 自己做量化交易软件(18)小白量化平台
  16. 双十一海量数据下EagleEye的使命和挑战
  17. Cocos Creator 3.0 教程! 标志板! Billboard !
  18. 【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
  19. 检测浏览器无痕模式下是否支持localStorage
  20. python中gensim库详解

热门文章

  1. java快排算法解读,java 快排的思路与算法
  2. 身份证敏感信息处理 图片添加蒙版
  3. 计算机专业英语chapter012,计算机专业英语 chapter_1.ppt
  4. java file_Java IO: File
  5. iOS 没到年底NSDate 时间出错问题
  6. InfluxDB 2.0 Alpha展开测试!将会加入查询语言Flux
  7. 解决:angularjs radio默认选中失效问题
  8. Oracle 变量绑定与变量窥视合集系列二
  9. Spring笔记——8.基于XML Schema的简化配置
  10. RouterOS连载3:架设PPPoE服务