关于菜鸡学习RHEL8的一些小笔记--->系统日志

奋斗吧
奋斗吧
擅长邻域:未填写

标签: 关于菜鸡学习RHEL8的一些小笔记--->系统日志 博客 51CTO博客

2023-07-28 18:24:29 86浏览

关于菜鸡学习RHEL8的一些小笔记--->系统日志,日志:#Linux系统日志记录了系统运行和系统中的事件,主要用于诊断系统问题和更好的管理系统,通常日志都放在/var/log/目录中。#注意:日志文件通常记录的系统信息量较大,所以在过滤日志时注意关键词筛选。管理日志的方式:从RHEL7开始的系统日志:由rsyslog和systemd-journald两个程序来进行管理rsyslog是一个典型的c/s架构的体系,他能够将日志分发到不同的

日志:

#Linux系统日志记录了系统运行和系统中的事件,主要用于诊断系统问题和更好的管理系统,通常日志都放在 /var/log/目录中。

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统

#注意:日志文件通常记录的系统信息量较大,所以在过滤日志时注意关键词筛选。

管理日志的方式:

从RHEL7开始的系统日志:

rsyslog systemd-journald 两个程序来进行管理

rsyslog 是一个典型的c/s架构的体系,他能够将日志分发到不同的机器上进行查看,在/var/log/ 目录下所看到的日志均为 rsyslog 产生的

rsyslog 是持久性日志,系统重启也不会丢失

关于菜鸡学习RHEL8的一些小笔记--->系统日志_服务端_02

systemd-journald 则是保留在二进制的日志文件中,系统重启后不保留(易失性日志)

#systemd-journald 日志记录在 /run/log/journal/*/systemd.journal 

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_03

#journalctl 是 systemd-journald 的管理工具,它看到的日志如果是报错类型会有高亮显示,包括其他类型的日志也会有各种形式的展现,所以用 journalctl 看的日志会相对于 rsyslog 更加明显 

#在rhel7之前只有rsyslog

rsyslog 日志文件类型:

/var/log/messages

大多数日志消息记录在这里,例如记录服务信息,系统报错等

/var/log/secure

安全性和身份验证相关的日志

/var/log/cron

定时任务执行相关的日志

/var/log/maillog

系统中邮件服务的日志

/var/log/boot.log

系统启动相关的日志

#rsyslog 会根据不同的日志类型和优先级将日志信息存储在不同的文件中,配置文件路径 /etc/rsyslog.conf

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_04

#rsyslog 将日志信息拆分成两部分,一部分是类型,另一部分是优先级

例如:cron 的日志信息 cron.info其中 cron 属于日志的类型,而info就属于优先级

#常见的日志类型(由开发者定义)

lpr == 打印类的日志

auth == 认证相关的日志

user == 用户相关的日志

cron == 计划任务相关的日志

kern == 内核相关的日志

mail == 邮件相关的日志

daemon == 系统服务相关的日志

authpri == 授权相关的日志

security == 安全相关的日志

local0-local7 == 自定义相关的日志信息(可以使用通配符)

自定义日志示例:

mail.info		/dev/console		#在/etc/rsyslog.conf 中定义即可

关于菜鸡学习RHEL8的一些小笔记--->系统日志_redhat_05

systemctl restart rsyslog.service #定义完配置文件后重启日志服务

关于菜鸡学习RHEL8的一些小笔记--->系统日志_redhat_06

logger -i -t mail -p mail.info "hello message" #发送测试日志

关于菜鸡学习RHEL8的一些小笔记--->系统日志_服务端_07

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_08

日志常见优先级:

优先级

代码

级别

none

不记录任何消息

emerg

0

内核崩溃等严重问题

alert

1

立即需要修改的信息

crit

2

严重错误级别

err

3

错误级别

warning

4

警告级别

notice

5

具有重要性的普通条件的信息

info

6

一般信息的日志,比较常用

debug

7

调试级别的信息

#填写优先级和类型的时候要时刻注意日志的规则

例如:

mail.info /var/log/maillog2023 ==>> 这个配置指的是比指定级别更高的日志级别,包括指定级别本身都会保存在 /var/log/maillog2023 中

• mail.=info /var/log/maillog2023 ==>> 则表示只有级别为 Info 的日志才会保存到 /var/log/maillog2023

• mail.!info /var/log/maillog2023 ==>> 表示除了info级别的日志所有日志保存到 /var/log/maillog2023

•* .info /var/log/maillog2023 ==>> 表示所有类型的info级别日志,都会保存到 /var/log/maillog2023

• mail.* /var/log/maillog2023 ==>> mail的所有日志级别信息,全部保存到/var/log/maillog2023

• mail.notice;news.info /var/log/maillog2023 ==>> mail的notice以上级别的消息日志和news 中 info 级别以上的日志全部保存到 /var/log/maillog2023

• mail,news.info -/var/log/maillog ==> mail 的 info级别以上的日志和news的info级别以上的日志全部保存到 /var/log/maillog2023 ("-"表示异步模式,表示日志产生和写入文件的时间点可能会不一致)

rsyslog 日志字段

关于菜鸡学习RHEL8的一些小笔记--->系统日志_linux_09

#示例
Jul 27 18:25:14 node1 systemd[1]: NetworkManager-dispatcher.service: Succeeded.

#Jul 27 18:25:14 :日志产生的时间戳
#node1 :主机名称
#systemd:程序名称
#[1]:程序的PID
#NetworkManager-dispatcher.service: Succeeded. :日志的内容

手动发送日志:

#logger -i 表示记录进程的PID -t 指定日志的类型 -p 指定日志的优先级 “日志的内容”
logger -i -t mail -p mail.info "hello messge"

通过rsyslog实现日志服务器:

前提:rsyslog 是c/s架构,所以如果需要实现日志服务器功能,客户端(client)和服务端(service)都必须正常启动 rsyslog的服务

关于菜鸡学习RHEL8的一些小笔记--->系统日志_linux_10

第一步:在服务端的 /etc/rsyslog.conf 文件中进行配置UDP和TCP的传输端口(514端口)

关于菜鸡学习RHEL8的一些小笔记--->系统日志_服务端_11

第二步:重启rsyslog服务,并检查TCP和UDP的514端口是否被正常监听

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_12

第三步:配置客户端(/etc/rsyslog.conf),将某一类型的日志转发到服务端上(“@”表示通过udp转发,“@@”表示通过TCP转发)

#注:这里测试环境,服务端IP为:192.168.161.130,主机名:node1 ,客户端IP为:192.168.161.128,主机名:node2;配置修改完后需要重启rsyslog服务

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_13

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_14

第四步:检查服务端是否有收到node2的日志,并手动发送日志测试(注:测试时关闭防火墙)

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_15

关于菜鸡学习RHEL8的一些小笔记--->系统日志_redhat_16

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_17

日志轮循:

#例如messages日志会随着使用一直不断地去写入,所以日志文件所占用的大小也会逐渐增加,这样长期下去,有一天日志也会变成系统的负担

日志轮循:是指将日志按照指定的规则来进行处理

例如:日志副本数==》该日志的在系统中的生命周期(实际是指保留指定天数的日志)

在系统中专门实现轮循的工具:logrotate

关于菜鸡学习RHEL8的一些小笔记--->系统日志_redhat_18

示例:已/var/log/boot.log日志为例,它的配置文件则在 /etc/logrotate.d/bootlog 中决定了该日志的生命周期

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_19

关于菜鸡学习RHEL8的一些小笔记--->系统日志_日志_20

#missingok == 忽略错误,如果在日志中发生了错误进行忽略,依然按照配置文件中的规则来命名
#daily == 日志分割粒度,天
#copytruncate == 日志轮换时采用"复制并截断"的方式
#rotate == 指定保留副本的个数,7就为7个
#notifempty == 空文件则忽略轮循

#通过 logrotate 工具去手动轮循一次日志

logrotate -f /etc/logrotate.conf

系统日志的检索

#通过systemd-journald 服务将会把收集的日志存储到 /run/log 下面,/run/log 下面的内容是易失性存储,系统重启则会被清理

关于菜鸡学习RHEL8的一些小笔记--->系统日志_linux_21

#journalctl 命令将会把notice 或者 warning 的消息显示为粗体文本,而error及以上则显示为红色文本

#journalctl 安全性较高,它的日志文件有严格的权限管理,其他用户未开放权限

常用选项

journalctl
-n #指定显示消息条数,默认为 10 条
-f #与 tail -f 类似
-p #指定显示某个优先级以上的日志
--since , --until #限制特定的时间段,格式为"YYYY-MM-DD hh:mm:ss"等
-o verbose #查看日志详细信息

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_22

关键字检索

#常用关键字
_PID #进程PID
_UID #运行该经常用户的ID
_SYSTEMD_UNIT #启动该进程的systemd单元
_COMM	#指定命令的名称
_EXE #进程可执行文件的路径

关于菜鸡学习RHEL8的一些小笔记--->系统日志_redhat_23

配置

#因为journalctl 所查看到的日志保存在 /run/log/journal 目录中,所以重启后会被清除,目前可以在 /etc/systemd/journal.comf 中修改 journalctl 对应的服务配置

关于菜鸡学习RHEL8的一些小笔记--->系统日志_系统_24

#其中storage 参数决定了日志是易失性还是持久性,通过设置的参数来决定

参数:persistent ==> 将日志保存在 /var/log/journal 目录中,若该目录不存在,则会创建它

volatile ==> 将日志保存在易失性目录 /run/log/journal 中,临时文件

auto ==> 如果 /var/log/journal 存在,则日志永久存储,否则则为易失性存储 (默认)

#注:修改完毕后需要重启服务 #systemctl restart systemd-journald.service

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695