Linux系统日志分析与存储
在 Linux系统管理中,日志分析与存储是故障排除的核心。
一、RHEL 日志架构
RHEL 日志基于 Syslog 协议,由两大核心服务构成:
systemd-journald:日志架构核心,捕获内核、引导、守护进程等几乎所有事件,存于带索引的二进制数据库,默认存
/run/log
(内存,重启清除)。rsyslog:从前者读取日志,按优先级分类存储到指定文件。
日志文件集中在 /var/log
目录,常用类型如下:
日志文件 | 存储消息类型 |
---|---|
/var/log/messages | 多数系统日志(排除身份验证、邮件等) |
/var/log/secure | 安全与身份验证事件(如 SSH 登录) |
/var/log/maillog | 邮件服务器相关消息 |
/var/log/cron | 定时作业执行记录 |
/var/log/boot.log | 系统启动非 syslog 控制台消息 |
二、syslog 日志管理
1. 日志优先级与配置
rsyslog 定义 8 个优先级(从高到低:emerg、alert、crit、err、warning、notice、info、debug),配置由 /etc/rsyslog.conf
(全局)和 /etc/rsyslog.d/*.conf
(个性化)控制,按规则将不同优先级日志存到对应文件。
2. 日志轮转与分析
日志轮转:
logrotate
工具重命名旧日志、创建新日志,默认保留 4 次轮转记录,防止磁盘占满,每日自动运行。条目分析:日志含时间戳、主机名、程序与 PID、具体信息,如
/var/log/secure
中登录失败记录,可快速定位故障。
3. 日志监控与手动发送
实时监控用
tail -f /路径/日志文件
,如tail -f /var/log/secure
。手动发日志用
logger
命令,-p
选项指定类型和优先级,如logger -p local7.notice "自定义消息"
。
三、system journal 日志管理
1. 日志查看
用 journalctl
命令(建议 root 执行),常用选项:
看最近 N 条:
journalctl -n N
;实时刷新:journalctl -f
;按优先级过滤:
journalctl -p 优先级
;按服务过滤:journalctl -u 服务名
;按时间过滤:
journalctl --since "时间1" --until "时间2"
。
2. 永久保存配置
默认临时存储,需修改 /etc/systemd/journald.conf
中 Storage
参数:
persistent
:存/var/log/journal
;volatile
:存/run/log/journal
;auto
(默认):依目录存在情况判断。修改后重启
systemd-journald
服务,系统重启后创建/var/log/journal
目录。
四、系统时间维护
1. 时区管理
用 timedatectl
命令:
看时间与时区:
timedatectl
;列时区:timedatectl list-timezones
;设置时区:
timedatectl set-timezone 时区名
;手动设时间:timedatectl set-time "HH:MM:SS"
。
2. 时间同步
chronyd
服务通过 NTP 协议同步时间:
看同步状态:
chronyc sources -v
;配置 NTP 服务器编辑/etc/chrony.conf
;重启服务:
systemctl restart chronyd
;开启 NTP 同步:timedatectl set-ntp true
。
五、核心总结
systemd-journald 与 rsyslog 协同管理日志,日志集中在
/var/log
;journalctl
查 system journal 日志,需配置实现永久保存;timedatectl
管时区,chronyd
做时间同步,保障日志时间戳准确;logrotate
轮转日志,分析日志条目是故障排除关键。