热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

百战RHCE(第十九战:Linux进阶命令十六系统日志的极简管理)

哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章!首先,本人目前是计算机专业的大一学生,基于对Linux操作系

哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章!

首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 《百战RHCE》文章,是基于我自己的学习经验浓缩而来的,保证简洁,方便理解!

而作为一名大学生,我想通过坚持的高水平文章编写带给我自己本身经验的不断进步,同时也希望让更多的Linux新手能接触到更加系统的文章学习。本次《百战RHCE》,会由浅入深,从最基本的命令行,到编写非常复杂的Ansible 自动化脚本 

因为本人和你一样也是学习者,所以文章中出现的错误,还望多多指出。

还有注意了哦,我所用的系统为Centos7,如果你还没下载的话,可以在到我的第一章节,那里有下载教材和镜像地址哦~

最后最后我在说最后一句话,引用下我们老师的话:“不要尝试背下所有指令,多记笔记!多敲命令!”


 

在这一章当中我们将主要讲解linux的目录构架以及日志的管理,朋友请准备好,我们开始了!!!

目录

一.Linux的目录构架

二.系统日志管理

1./var/log/secure日志文件

2.日志内容组成

三.日志优先级

1.日志的8个优先级

2.配置个性化 rsyslog 日志文件

3.永久保存 systemd journal 日志信息




一.Linux的目录构架

我们用一张图来引入

 

在这里请先看红色括好的部分。

/ 在开头就是根目录

/ 不在开头就是 目录分隔符,举个例子

/etc/lianxi/hh 红色的/就是根目录,其他的/都是目录分隔符

然后我们现在来把这些目录的大致作用和大家讲下,大家在这只需要做初步了解就好,不需要背下来,以后多练习就记住了。



/bin: 存放普遍命令脚本,root和普通用户都可以使用命令

/sbin:存放root用户特权命令的脚本命令

/dev:内存中的文件(内存的内容映射到硬盘当中)

/etc:存放配置文件

/home:存放普通用户的家目录

/root:root用户的家目录

/run:正在运行的文件(也是内存当中的目录)

/boot:启动相关文件

/tmp:临时目录

/usr:应用程序相关的目录

/var:变化数据的目录

这里的内容你现在只需要做初步的了解就好了,而我们下面要讲的日志服务文件就是存放在 /var 目录当中的




二.系统日志管理

我们系统日志存在在 /var/log中,而规定什么样日志级别信息存放在那个文件的条目由 /etc/rsyslog.conf 规定

我们先来看 /etc/rsyslog.conf 这个日志配置文件

我这里就截取了 /etc/rsyslog.conf 当中你必须了解的部分,你可以看到我圈了4个蓝色的括号,这个四个括号分别存放不同syslog消息。这里我们不重点讲,我们这边侧重讲下红色括号 /var/log/secure 这个日志文件 




1./var/log/secure日志文件

首先 /var/log/secure 文件 存放这安全性和身份验证时间相关的syslog(系统日志)消息

我们来打开看看 /var/log/secure文件内容

 

我们首先来看红色括号的部分 tail 命令我们在前面的时候讲解过,但这里 多出了一个你不认识 -f 选项,这个 -f选项主要做实时刷新文件内容的

我们先看右边括号的蓝色部分,我在 root用户的时候使用 exit 命令退回了登陆 root 用户的普通用户,我们回发现左边的蓝色括号,多出了一个root用户通话被关闭的提醒(一个root用户退出了)。

我们在来看 右边的绿色括号,可以发现此时我在 ycj 用户上面 使用 su - 命令登陆上了 root 用户,我们在来看回左边的绿色括号,回发现此时多了一条提示信息,我们根据提示信息得知是 ycj 用户登陆上了 root 用户




2.日志内容组成

在这里我来说下 日志的是由 rsyslog(就是我们上面一直在说的这个)消息 systemd-journald组成。

rsyslog 和 systemd-journald 的最大区别就是,rsyslog 读取的是 systemd-journald 的日志消息。

下面我们就来讲解下 systemd-journald 的命令



格式:journalctl  选项 显示  检索日志消息

选项:

- n: 指定显示最后 n 条日志

-f :实时刷新日志

-p:显示该优先级之上的日志

-- since: 开始的时间

--until: 结束的时间

我们首先先来看第一个红括号,我们使用 journalctl -p notice -n 10 -f 命令查看 systemd-journald 日志

-p notice 用来 查看notice 级别的日志 (关于日志级别一会会讲的)

在来注意看第二个红括号,我们使用 journalctl --since "2022-03-15 17:30:00" --until "2022-03-15 17:45:00" -n 5 命令来查看2022-03-15 17:30:00到2022-03-15 17:45:00的systemd journald日志消息



同时journalctl 除了配合选项使用外还可以配合字段筛选命令,我这边说几个经常用到的

—COMM :命令的名称

—PID :进程的PID

— UID: 该UID用户相关的日志消息

—SYSTEMD_UNIT: 启动该进程的systemd 单元

格式是

journalctl 筛选字段=对应关键字

  这里注意看红色括号部分,现阶段你只需要稍作了解和对照打下练习一下就可以了,不用急于求成,我们慢慢来哈。

而现在 日志的两大组成 systemd-journald 和 rsyslog 我们都已经大概学完了。那么下面我们在来和大家说三个小知识点。




三.日志优先级


1.日志的8个优先级

 

这个表中的 8个级别大家现阶段稍作了解就可以了




2.配置个性化 rsyslog 日志文件

 首先,在 /etc/rsyslog.d/ 目录下创建一个以  .conf 结尾的配置文件

 其次,在这个文件当中填入固定格式的一段内容:

  *. 日志消息级别  日志消息存储文件

配置完成后 systemctl restart rsyslog 重新加载下服务

输入自定义的 日志信息看是否配置成功,测试信息

格式为:logger -p 日志消息级别 消息内容

 

 

此图根据我上面给的操作,可以多看看,多想想,多打打,就会了




3.永久保存 systemd journal 日志信息

默认情况下 systemctl journal 都是保存在内容 /run/log/journal 当中的,一旦电脑关机重启,日志消息就全部没有了。

而如果我们想要永久保存 systemd journal 日志消息,我们只需要在 /etc/systemd/journald.conf 配置文件当中修改 storage 的参数

storage 的参数为 persistent 时,systemd journal 日志消息永久保存在 /var/log/journal 目录下

参数为 voltile,systed journal 日志消息临时保存在 /run/log/journal

参数为 auto,如果 /var/log/journal 目录存在,则保存在其中,不存在就临时保存

注意 如果 storage 前面有 # 需要你去掉,因为 # 会把它右边的内容全部注释掉

此时我们在 /var/log/journal 当中 可以看到一个长度为 十六进制字符的目录,在这个目录当中存放有两个文件时存储带有索引的结构化日志条目的 二进制文件,不可以直接打开常看,需要使用

journalctl -b n(n 代表系统第n 次启动的条目)

我们这里使用 journalctl -b 2 -n 10 查看第二次系统自启动的条目的最后10行。



好了好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,今天的学习内容并不是很多,关键多打几遍就会了,有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈~嘿嘿嘿~我会定期更新文章的,谢谢朋友你的支持哈~

 


推荐阅读
author-avatar
jgfujfuf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有