分析和存储日志

21 篇文章 0 订阅
21 篇文章 0 订阅

系统日志

进程和内核都会记录日志,有助于进行故障排除
系统日志保存在 /var/log 目录中,使用 less tail 命令可以查看
RHEL 日志基于 Syslog 协议, systemd-journald rsyslog 服务处理 syslog 日志
systemd-journald 是日志架构核心,记录几乎所有事件消息并存放到带索引的数据库中,包括内核、引导过程早期的输出;守护进程的标准输出及标准错误等
systemd-journald 默认将日志记录在内存中
rsyslog 从数据库中读取 systemd-journald 的日志,按照配置文件的定义进行存放。rsyslog 对日志按照优先级进行分类存放

日志文件类型

将事件记录到系统

日志记录具有 8 个优先级

/etc/rsyslog.conf 是全局配置文件,/etc/rsyslog.d/*.conf 为个性化配置文件

在 /etc/rsyslog.d/ 目录中,可以有多个以 .conf 结尾的文件,每个文件可以包含特定模块或功能的配置。这种方式可以使配置更加清晰,方便管理和维护。

以 /etc/rsyslog.d/*.conf 表示的文件模式意味着匹配 /etc/rsyslog.d/ 目录下的所有以 .conf 结尾的文件。

日志文件轮转

logrotate 工具轮转日志文件,防止 /var/log 空间被占满
轮转时,重命名日志文件(添加时间戳),并创建新的日志文件
轮转若干次(默认 4 次),丢弃最旧的日志文件,释放磁盘空间
每天都会计划运行 logrotate 程序,轮转频率依据配置文件定义

分析 syslog 条目

日志文件在末尾显示最新的信息,信息记录采用标准格式,以 /var/log/secure 举例:
1. 日志条目的时间戳
2. 发送信息的主机
3. 发送信息的程序名称和 PID 编号
4. 具体信息

监控日志

使用命令 tail -f /path/to/file 输出指定文件的最后10行,并在新行写入文件时继续输出它们
 可以边运行命令,边监控日志

查找事件

systemd-journald 将日志存放在带索引的结构化二进制 journal 文件中,存放在 /run/log 目录中
journalctl 命令可用于检索日志信息,以 root 用户执行对日志具有完全访问权限,普通用户访问可能被限制查看某些消息
error 及以上的日志显示为红色文本
journalctl -n 指定显示最后 10 条日志,也可以指定条目数量
journalctl -f 刷新日志
journalctl -p debug info notice warning err crit alert emerg
别显示该级别及其之上的日志

journalctl --since --until "YYYY-MM-DDhh:mm:ss” yesterday today 和 tomorrow 可以指定日志时间段
# 列出今天记录中的所有日志条目
# 列出从2019-2-10 20:30:00 到2019-02-13 12:00:00 的所有日志条目
# 列出上一小时的所有条目

journalctl -o verbose 显示更加详细的日志信息
journalctl 配合以下字段,可以搜索特定内容的日志:
_COMM 是命令的名称
_EXE 是进程的可执行文件的路径
_PID 是进程的 PID
_UID 是运行该进程的用户的 UID
_SYSTEMD_UNIT 是启动该进程的 systemd 单元  (环境变量)
#显示PID为1182的sshd.service文件的systemd进程单元相关的所有日志条目

永久保存 system journal

永久保存系统日志

默认情况下, system journal 保存在内存 /run/log/journal 目录中,系统重启会被清除
修改 /etc/systemd/journald.conf Storage 参数可以设置日志永久保存:
- persistent :永久保存在 /var/log/journal 目录中
- voltile :临时保存在 /run/log/journal 目录中
- auto (默认):如果有 /var/log/journal 目录存在,则永久保存,如果没有则临时保存
日志大小受到轮转机制限制:默认情况下,日志的大小不能超过所处文件系统的 10% ,也不能造成文件系统的可用空间低于 15% ,此值可以在 /etc/systemd/journald.conf 中设置
 日志空间占用情况可以参考:
配置文件修改完毕记得 重启 systmed-journald 服务

设置本地时钟和时区

保证系统的准确时间,并及时同步时间非常重要
时间同步采用 NTP 协议
timedatectl 命令显示系统时钟信息
timedatectl list-timezones 可以列出时区数据库, tzselect 命令可以协助选择正确的时区

timedatectl set-timezone 可以设置时区 timedatectl set-time 可以设置时间

 timedatectl set-ntp true | false 命令可开启或禁用 NTP(自动调整时间)

配置和监控 chronyd

chronyd 服务通过与配置的 NTP 服务器进行同步,使通常不准确的本地硬件时钟 (RTC) 保持正确运行。如果没有可用的网络连接, chronyd 将计算 RTC 的时钟漂移,并记录在 /etc/chrony.conf 配置文件指定的 driftfile 变量中
修改配置后,需要 systemctl restart chronyd
使用 chronyc sources -v 查看是否进行时钟同步包含额外说明的更详细输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值