Linux 系统日志管理与时钟同步实用指南
一、日志管理
1. 日志系统
- systemd-journald:临时日志,服务器重启后日志消失。
- rsyslog:永久日志,日志文件永久保存;配置文件路径:
/etc/rsyslog.conf
。
2. 日志文件种类及主要文件
- 种类:内核及系统日志、用户日志、程序日志。
- 主要日志文件:
/var/log/dmesg
:记录系统引导过程中的事件信息。/var/log/lastlog
:记录每个用户最近的登录事件。/var/log/wtmp
:记录用户登录、注销及系统启动/停机事件。/var/log/btmp
:记录失败的登录尝试及验证事件。
3. 日志分析
- 优先级(从低到高):
debug(调试级)→
info(一般信息)→
notice(需注意事件)→
warning(重要提醒)→
err(非严重错误)→
cirt(较严重情况)→
alert(需立即处理)→
emerg`(系统不可用)。
常用查看命令:
tail
传统文本日志文件(如 /var/log/messages
、/var/log/secure
等)由 rsyslog
等服务管理,默认永久保存(除非手动清理或配置日志轮转)journalctl
systemd-journald
服务收集的日志(包含内核、系统服务、用户进程等日志)默认临时存储(内存 /volatile 目录,重启后消失);可配置为持久化( /var/log/journal
)tail -f 日志文件
:实时监控日志(如tail -f /var/log/messages
)。journalctl -n [数字]
:查看最新日志(默认10条,可指定数量)。journalctl -f
:实时监控journal日志。journalctl -p 优先级
:按优先级显示(含该级别及以上)。- 时间段筛选:
journalctl --since "时间" --until "时间"
(如--since today
、--since "-1 hour"
)。 - 详细日志+条件:
journalctl -o verbose 条件
(条件如_COMM=命令名
、_PID=进程ID
、_UID=用户ID
等)。
tail journalctl 核心作用 查看文件尾部内容,侧重 “跟踪文本文件” 查询 systemd-journald
日志,侧重 “多维度筛选和管理系统日志”实时监控 支持 -f
选项(follow
),实时跟踪文件新增内容(如tail -f /var/log/messages
)支持 -f
选项,实时跟踪日志新增内容(如journalctl -f
)筛选能力 仅能通过文件路径筛选(如指定 /var/log/secure
),无内置日志级别 / 时间筛选支持按日志级别( -p err
)、时间范围(--since "1 hour ago"
)、进程(_PID=123
)、服务单元(-u nginx
)等多维度筛选日志格式处理 直接显示文本文件内容,不解析格式 可解析日志的结构化信息(如时间、主机、进程 ID、日志级别等),支持多种输出格式( -o verbose
显示详细字段)适用日志类型 仅支持 rsyslog
等传统服务生成的文本日志文件支持 systemd
管理的所有日志(内核、服务、用户进程等,包含rsyslog
未覆盖的日志)
4. 用户日志相关命令
lastlog
:查看每个用户最近登录信息。users
:查看当前系统中被使用的用户及次数。who
:查看登录用户的终端、时间及来源主机。w
:查看登录用户及正在执行的命令。last
:显示成功登录过服务器的用户信息(基于wtmp)。lastb
:显示失败登录尝试的用户信息(基于btmp)。
5. rsyslog配置(远程收集/修改存放位置)
远程收集日志:
编辑/etc/rsyslog.conf
,添加规则(如mail.* 目标主机
,例mail.* ldap.example.com
),重启服务:systemctl restart rsyslog
。修改日志存放位置:
- 注释原有规则(如
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
);
添加新规则(如
*.info /var/log/新路径
);重启服务:
systemctl restart rsyslog
。
- 注释原有规则(如
规则格式:
事件.优先级 目标
(*
表示所有,如*.*
表示所有事件+所有优先级)。
二、时钟同步
1. 基础时间管理命令(timedatectl/date)
timedatectl
:查看当前时间、时区及NTP同步设置。timedatectl list-timezones
:列出所有时区。timedatectl set-timezone 时区
:设置时区(如timedatectl set-timezone "Asia/Shanghai"
)。- 修改系统时间:
timedatectl set-time "YYYY-MM-DD hh:mm:ss"
- 或
date -s "YYYY-MM-DD hh:mm:ss"
。
2. chrony服务(时间同步工具)
特点:UDP协议传输(端口323),由
chronyd
(服务进程)和chronyc
(命令行工具)组成;不可与ntpd
同时使用。服务端配置:
安装:
yum -y install chrony
;编辑
/etc/chrony.conf
:local stratum 10
:不同步其他时间,作为本地时间源(级别10);allow 网段
:允许指定网段同步(如allow 172.16.30.0/24
);
重启服务:
systemctl restart chronyd
systemctl enable chronyd
;防火墙设置:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
。也可以直接关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
客户端配置:
安装:
yum -y install chrony
;编辑
/etc/chrony.conf
,添加服务端:server 服务端IP iburst
(如server 172.16.30.20 iburst
);重启服务:
systemctl restart chronyd
systemctl enable chronyd
;同步硬件时钟:
hwclock -w
。
chronyc常用命令:
chronyc sources
:查看时间同步源信息;
systemctl enable chronyd
;
- 同步硬件时钟:
hwclock -w
。
chronyc常用命令:
chronyc sources
:查看时间同步源信息;chronyc sourcestats -v
:查看同步源状态信息。