描述系统日志架构

本文详述了Linux系统日志架构,包括systemd-journald和rsyslog服务在处理日志消息中的作用。系统日志文件的优先级、日志文件轮转机制、日志分析和生成,以及如何通过journalctl命令查看和维护systemd日志。此外,还介绍了如何维护系统时间的准确性,配置NTP服务和监控chronyd。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述系统日志架构

系统日志记录

  • 进程和操作系统内核为发生的事情记录事件日志,而这些文件保存在/var/log 中
  • 红帽企业LINUX 在内建立一个基于syslog协议的标准日志记录统。
  • systemd-journald 和rsyslog 服务来处理syslog消息

systemd-journald

  • 守护进程提供一种改进的日志管理服务,可以来自内核、启动过程 的早期阶段、标准输出、系统日志,以及守护进程启动和运行期间的错误消息。(临时 日志数据)

rsyslog

  • 根据数据类型或设备类型和优先级排列系统日志消息,将他们写入到/var/log 目录的永久文件中

系统日志

系统日志概述
  • 在这里插入图片描述
系统日志文件优先级
  • 每一日志消息根据设备(消息的类型)和优先级(消息的严重性)分类

  • 在这里插入图片描述

  • 匹配规则:位于 /etc/rsyslog.conf 文件和/etc/rsyslog.d 目录中扩展名为.conf 的任何文件

  • 更改配置:程序 和管理员可以将带有 .conf 后缀的自定义文件放入 /etc/rsyslog.d 目录,以更改 配置

  • rsyslog规则: 日志文件.严重程度 存放位置

  • e.g: mail.* var/log/mail.log 所有优先级mail日志 都保存在mail.log 中

日志文件轮转
  • 日志通过 logrotate 实用工具“轮转”,以防止将 /var/log/ 中的文件 系统填满。
  • 轮转日志文件时,会使用名称扩展对其进行重命名,名称扩展指示轮转 日期:如果文件在2020年10月30日轮转后,则原来的 /var/log/messages 文件会变成 /var/log/messages-20201030。轮 原文件之后,会创建新的日志文件,并通知对他执行写操作的服务 轮转若干次之后(通常轮转四次),丢弃原日志文件以释放磁盘空间。 cron 作业每日运行一次 logrotate 程序,以查看是否有任何日志需要 轮转。大多数日志文件每周轮转一次,但是 logrotate 轮转文件的速度 有时比较快,有时较慢,或在文件达到特定大小时进行轮转。
  • 配置文件 : /etc/logrotate.conf
  • 在这里插入图片描述
分析日志条目
  • 由rsyslog 管理的日志文件中所有的日志条目都以标准的格式记录

  • 在这里插入图片描述

    • 日志条目时间戳
    • 发送日志条目的主机
    • 发送该日志条目的程序或者进程和PID
    • 日志条目的详细信息
生成日志
  • logger message 生成指定内容的notion 级别日志,可以使用-p 指定级别
  • logger -p authpriv.error “ hello world" 发送来自 authpriv(权限系统)的 error 级别日志消息,消息内容为 hello world, 它将根据日志配置文件存放在相应的日志文件中
查看日志
  • 直接查看日志文件

    • vim 日志
    • cat 日志 | grep xxx
    • tail -f 日志
  • 通过journalctl 查找systemd 事件

    • systemd 是系统启动时,第一个开始的进程。该进程的日志数据会被 systemdjournald 服务存储在带有索引的结构化二进制文件中。默认是 /run/log,重启会清 除
    • journalctl #查看所有日志消息
    • journalctl -n 5 #查看最后5条日志消息
    • journalctl -o verbose #查看详细的日志消息
    • journalctl -f #动态查看最后10条日志消息
    • -p <级别> #只显示该级别以上的日志,例如:err
    • journalctl 命令以粗体突出 notice 或 warning,以红色文本显示 err 及更高
  • 通过 journalctl 查找事件

    • journalctl [–since time] [–until time]
    • journalctl --since “-1 hour”
  • 通过 journalctl 查找事件(其他常用字段)

    • COMM:命令的名称

    • _wXE:进程的可执行文件的路径

    • _PID:进程的 PID 编号

    • _UID:运行进程的用户的

    • UID _SYSTEM_UNIT:启动该进程的 systemd 单元

    • journalctl _SYSTEMD_UNIT=sshd.service _PID=1182 查看 sshd.service 服务,PID 为1182的进程的日志消息

保存 systemd 系统日志
  • systemd 的日志默认是临时的(/run/log/journal)
  • 可以配置为保留,配置文件为 /etc/systemd/journald.conf 。
  • 修改 Storage 参数保存 systemd 系统日志
    • Persistent:将日志存储在 /var/log/journal 目录,如果目录不存在就创建这个目录
    • Volatile:临时存储日志,也就是存储在 /run/log/journal 中
    • Auto:如果存在 /var/log/journal 目录,日志将会存储在该目录下
  • 设置永久保存 systemd 的系统日志
    • vim /etc/systemd/journald.conf
    • Storage Volatile ======> Persistent
    • ystemctl restart systemd-journald

维护准确的时间

维护时间的准确

  • 时间同步的主要方式
    • 通过网络时间协议 NTP 获取正确时间信息
    • 通过高质量硬件时钟为本地客户端提供准确时间。
  • timedatectl 命令可以查看时间相关的系统设置:时间、时区、NTP 设置等
    • 在这里插入图片描述

配置系统的时区

  • timedatectl list-timezones 列出系统包含的时区数据库
  • tzselect **以交互的形式,识别某时区的正确名称 **
  • timedatectl set-timezone <洲/国家> 设置系统的时区

配置系统的时间

  • timedatectl set-time YYYY-MM-DD hh:mm:ss 设置系统的时间
  • timedatectl set-ntp 启用/禁用 NTP

配置和监控 chronyd

  • 系统 chrond 服务与配置的 NTP 服务器同步,使通常不精确的本地硬 件时钟(RTC)保持准确。
  • 配置文件:/etc/chrony.conf
配置本地NTP 服务器
  1. 修改配置文件 /etc/chrony.conf

在这里插入图片描述

  1. systemctl restart chrond 重新启动 chronyd 服务
验证 NTP 服务器配置
  • chronyc sources -v ** 查看 NTP 配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKmOUFnN-1627115195367)(C:\Users\Lenovo\Desktop\学习\笔记\Linux\查看NTP配置.png)]

  • timedatectl ** 查看是否已经完成同步

在这里插入图片描述

nyc sources -v ** 查看 NTP 配置

在这里插入图片描述

  • timedatectl ** 查看是否已经完成同步

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值