Linux(21)——系统日志

目录

一、系统日志架构:

1、系统日志:

2、日志文件类型:

[二、查看 syslog 文件:](#二、查看 syslog 文件:)

1、将事件记录到系统:

[(1)syslog 设备:](#(1)syslog 设备:)

[(2)syslog 优先级:](#(2)syslog 优先级:)

(3)配置文件:

2、日志文件轮转:

[3、syslog 条目:](#3、syslog 条目:)

4、监控日志:

[5、手动发送 syslog 消息:](#5、手动发送 syslog 消息:)

三、查找系统日志条目:

[1、 -n 选项:](#1、 -n 选项:)

[2、-f 选项:](#2、-f 选项:)

[3、-p 选项:](#3、-p 选项:)

[4、-u 选项:](#4、-u 选项:)

[5、--since 选项:](#5、--since 选项:)

[6、-o 选项:](#6、-o 选项:)

7、字段:

四、永久保存系统日志:

1、系统日志存储:

2、永久保存:

3、日志空间占用:

4、配置持久系统日志:


一、系统日志架构:

1、系统日志:

操作系统内核和其他进程在系统运行时发生的事件 记录为日志 ,日志用于系统审计以及故障排除,通常保存在 /var/log 目录中,可以使用 less 和 tail 命令进行查看。

RHEL 日志基于 Syslog 协议标准记录系统消息,systemd-journald 和 rsyslog 服务处理syslog 日志。systemd-journald 是日志架构核心,默认将日志记录在内存中,记录几乎所有事件消息并存放到带索引的数据库中,包括内核、引导过程早期的输出,守护进程的标准输出、标准错误以及系统日志事件等。而rsyslog 服务将从数据库中读取 systemd-journald 的日志 ,并按照配置文件的定义进行存放,同时 rsyslog 服务也可以根据日志优先级,将日志消息排序到特定的日志文件。

2、日志文件类型:

日志文件 存储的消息类型
/var/log/messages 大多数系统日志消息,包括与身份验证、电子邮件处理、调度作业以及与调试相关的消息
/var/log/secure 安全性、身份验证相关的 syslog 消息
/var/log/maillog 邮件服务器相关的 syslog 消息
/var/log/cron 调度作业执行相关的 syslog 消息
/var/log/boot.log 系统启动 相关的syslog 控制台消息

二、查看 syslog 文件:

1、将事件记录到系统:

很多程序都使用 syslog 协议将事件记录到系统,而每一日志消息又将根据设备以及优先级进行分类排序。

(1)syslog 设备:

代码 设备 设备描述
0 kern 内核消息
1 user 用户级消息
2 mail 邮件系统消息
3 daemon 系统守护进程消息
4 auth 身份验证和安全消息
5 syslog 内部 syslog 消息
6 lpr 打印机消息
7 新闻 网络新闻消息
8 uucp UUCP 协议消息
9 cron 时钟守护进程消息
10 authpriv 非系统授权消息
11 ftp FTP 协议消息
16-23 local0 - local7 自定义本地消息

(2)syslog 优先级:

代码 优先级 优先级描述
0 emerg 系统不可用(终端显示)
1 alert 必须立即采取措施
2 crit 临界情况
3 err 非严重错误情况
4 warning 警告情况
5 notice 正常但重要的事件
6 info 信息性事件
7 debug 调试级别消息

(3)配置文件:

1)/etc/rsyslog.conf全局配置文件。

2)/etc/rsyslog.d/*.conf个性化配置文件。

2、日志文件轮转:

logrotate 命令将轮转日志文件,以防止 /var/log 的空间被占满。轮转日志文件时,重命名日志文件(原文件名添加时间戳)将创建一个日志文件并通知写入该日志文件的服务。

轮转若干次后(默认为4次),将丢弃最旧的日志文件以释放磁盘空间。调度的作业每天都会计划运行 logrotate 程序,轮转频率依据配置文件定义。

3、syslog 条目:

日志文件开头 显示最旧的消息,在末尾显示最新的信息,信息记录采用标准格式 如下:

(1)日志条目的时间戳

(2)发送信息的主机

(3)发送信息的程序名 称和 PID 编号;

(4)具体信息。

4、监控日志:

监控日志文件中的事件有助于重现问题,使用tail -f /path/to/file 命令可输出指定文件的最后 10 行 ,并继续输出新近写入到该文件中的行

5、手动发送 syslog 消息:

logger 命令可将消息发送到 rsyslog 服务。默认情况下,logger 命令将优先级为 notice 的消息发送给 user 类型的设备 ( user.notice ),否则则需要通过 -p 选项具体指定

三、查找系统日志条目:

journalctl 命令突出显示重要的日志消息,优先级为 notice 或 warning 的消息显示为粗体,优先级为 error 或以上的消息显示为红色文本。

journalctl 命令的常用选项如下:

1、 -n 选项:

-n 选项指定显示 最后10条日志,也可以指定条目数量。

2、-f 选项:

-f 选项可刷新日志

3、-p 选项:

-p 选项将显示指定优先级 (按名称或编号)以及此优先级以上的日志条目。

4、-u 选项:

-u 选项后加单元名称将显示指定 systemd unit 信息

5、--since 选项:

--since 选项可指定日志时间段,除日期和时间字段外 ,还接受 yesterday 、today 以及 tomorrow 作为有效的参数。

例如,显示计算机上过去十分钟内记录的所有日志事件如下:

再例如,显示计算机上从今天上午 09:00:00 起记录的所有 sshd 日志事件如下:

6、-o 选项:

-o verbose 可显示 更加详细日志信息

7、字段:

journalctl 配合字段使用,可以搜索特定内容的日志

(1)_PID 即进程的 PID 。

(2)_UID 即运行此进程的用户 UID 。

(3)_COMM 即命令的名称;

(4)_EXE 即进程的可执行文件的路径;

(5)_SYSTEMD_UNIT 即启动该进程的 systemd 单元。

四、永久保存系统日志:

1、系统日志存储:

默认情况下,system journal 保存在内存 /run/log/journal 目录中,系统重启时会被清除

2、永久保存:

修改 /etc/systemd/journald.conf 中 Storage 参数可以设置日志永久保存,常见参数如下:

(1)persistent :永久保存在 /var/log/journal 目录中;

(2)voltile :临时保存在 /run/log/journal 目录中;

(3)auto(默认):如果有 /var/log/journal 目录存在,则永久保存, 反之则临时保存;

(4)none :不使用任何存储,系统将丢弃所有日志(但用户依然可以转发日志)。

3、日志空间占用:

日志大小受到轮转机制限制,在默认情况下,日志的大小不能超过所处文件系统的 10%,也不能造成文件系统的可用空间低于15%,此值可以在 /etc/systemd/journald.conf 进行设置

查看日志空间占用情况如下:

注:修改完配置文件,需要重启 systmed-journald 服务。

4、配置持久系统日志:

以将计算机上的 systemd-journald 服务配置成在系统重启后保留日志为例:

在 /etc/systemd/journald.conf 文件中,取消 Storage=auto 行的注释,并将 Storage 的参数值设置为 persistent

重启 systemd-journald 服务,应用配置更改。

相关推荐
Golinie9 分钟前
【C++高并发服务器WebServer】-17:阻塞/非阻塞和同步/异步、五种IO模型、Web服务器
服务器·c++·异步·webserver
24k小善13 分钟前
spark技术基础知识
服务器·spark
小镇敲码人22 分钟前
【Linux网络编程】之守护进程
linux·运维·网络
流星白龙35 分钟前
【Linux】30.Linux 多线程(4)
linux·运维·服务器
ekskef_sef1 小时前
用nginx正向代理https网站
运维·nginx·https
MXsoft6182 小时前
能源与煤矿行业的运维政策指导性文件解读
大数据·运维
weixin_446260852 小时前
小红书自动化:如何利用Make批量生成爆款笔记
运维·笔记·自动化
小白也有IT梦2 小时前
如何在 Linux 中管理自定义脚本:将 ~/bin 目录添加到 $PATH
linux·path·脚本管理
Algorithm-0072 小时前
【软件测试入门】Linux操作系统初级命令大全
linux·运维·chrome
Lambsbaa2 小时前
轻量级服务器http-server
运维·服务器·http