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的日志,要记住以下三方面:
- 服务sytemd-journald.service负责记录systemd的日志。
- systemd的日志放在 /run/log 目录下,systemd的日志默认是非持久化(掉电就没),可以改为持久化的。
- 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日志持久化的过程就是:
- 以root用户创建 /var/log/journal/ 目录。
- 确保/var/log/journal/ 目录所属用户和所属组分别为root和systemd-journald,权限为 2775。
- 以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记录的日志都以标准的格式记录,分为四个部分,从左到右依次是:
- 记录该日志条目的时间戳
- 发送该日志的主机
- 发送该日志的程序或进程
- 发送日志的内容
可以利用 tail -f 跟踪日志信息。比如,/var/log/secure 记录了两次不同用户远程登录和退出的情况。
2.5、使用logger发送消息到日志
logger命令可以发消息到rsyslogd服务。默认情况下,级别为notice,可以用 logger -p 来指定其他级别。在2.2节,我们看到 local7.* 的日志记录到 /var/log/boot.log 日志中,我们也向里面发送一条信息。
Linux08-日志相关推荐
- python的日志库logging,真香!!!
学习资源 Python之日志处理(logging模块) python之配置日志的几种方式 logging 官方高级用法 使用方法 LOG_FORMAT = "%(asctime)-15s - ...
- Docker学习(五)-----Docker查看日志
八.Docker查看日志 docker logs 容器名称/ID docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam ...
- Springboot 利用AOP编程实现切面日志
前言 踏入Springboot这个坑,你就别想再跳出来.这个自动配置确实是非常地舒服,帮助我们减少了很多的工作.使得编写业务代码的时间占比相对更大.那么这里就讲一下面向切面的日志收集.笔者使用lomb ...
- 【Springboot】日志
springBoot日志 1.目前市面上的日志框架: 日志门面 (日志的抽象层): JCL(Jakarta Commons Logging) ...
- log4j屏蔽掉某个包下的log日志打印
在log4j的配置文件下配置 ## Disable other log log4j.logger.com.summaryday.framework.db=OFF log4j定义了8个级别的log(除去 ...
- SpringBoot集成AOP管理日志
写在前面 如何将所有的通过url的请求参数以及返回结果都输出到日志中? 如果在controller的类中每个方法名都写一个log输出肯定是不明智的选择.使用Spring的AOP功能即可完成. AOP ...
- 日志处理logger
20220127 https://mp.weixin.qq.com/s/CgmfVqogqKBzezmIR7ZfsQ https://blog.csdn.net/kyle1314608/article ...
- 2021年大数据ELK(二十二):采集Apache Web服务器日志
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...
- 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...
- 2021年大数据ELK(一):集中式日志协议栈Elastic Stack简介
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.简介 二.ELK 协议栈介绍及体系结构 三.集中式日志协议栈 ...
最新文章
- JVM经常使用的调优參数
- Unity 游戏开发技巧集锦之创建自发光材质
- 2014年全国计算机等级一级考试复习资料,2014年全国计算机等级一级考试复习资料..doc...
- C语言多线程教程(pthread)(线程创建pthread_t,指定线程run方法pthread_create,加mutex锁,解锁,伪共享 false sharing【假共享】)
- C++学习笔记(二)
- 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
- Dom4j完整教程~Document对象相关
- AT1219 歴史の研究 解题报告
- 学而思网校python助手_学而思网校直播课堂
- 嵌入式系统与人工智能
- Servlet读取xml文件的配置参数
- shell中算术运算、相加减
- 从 VI 编辑器谈操作系统起源及编辑器本质
- 基础物理-物质的组成
- 自己做量化交易软件(18)小白量化平台
- 双十一海量数据下EagleEye的使命和挑战
- Cocos Creator 3.0 教程! 标志板! Billboard !
- 【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- 检测浏览器无痕模式下是否支持localStorage
- python中gensim库详解
热门文章
- java快排算法解读,java 快排的思路与算法
- 身份证敏感信息处理 图片添加蒙版
- 计算机专业英语chapter012,计算机专业英语 chapter_1.ppt
- java file_Java IO: File
- iOS 没到年底NSDate 时间出错问题
- InfluxDB 2.0 Alpha展开测试!将会加入查询语言Flux
- 解决:angularjs radio默认选中失效问题
- Oracle 变量绑定与变量窥视合集系列二
- Spring笔记——8.基于XML Schema的简化配置
- RouterOS连载3:架设PPPoE服务