Linux 系统日志管理与时钟同步实用指南

发布于:2025-08-01 ⋅ 阅读:(24) ⋅ 点赞:(0)

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

  • 修改日志存放位置

    1. 注释原有规则(如#*.info;mail.none;authpriv.none;cron.none /var/log/messages);

    在这里插入图片描述

    1. 添加新规则(如*.info /var/log/新路径);

    2. 重启服务: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同时使用。

  • 服务端配置

    1. 安装:yum -y install chrony

    2. 编辑/etc/chrony.conf

      • local stratum 10:不同步其他时间,作为本地时间源(级别10);
      • allow 网段:允许指定网段同步(如allow 172.16.30.0/24);
    3. 重启服务:

      systemctl restart chronyd

      systemctl enable chronyd

    4. 防火墙设置:

      firewall-cmd --add-service=ntp --permanent

      firewall-cmd --reload

      也可以直接关闭防火墙

      systemctl stop firewalld

      systemctl disable firewalld

  • 客户端配置

    1. 安装:yum -y install chrony

    2. 编辑/etc/chrony.conf,添加服务端:server 服务端IP iburst(如server 172.16.30.20 iburst);

    3. 重启服务:

      systemctl restart chronyd

      systemctl enable chronyd

    4. 同步硬件时钟:hwclock -w

  • chronyc常用命令

    • chronyc sources:查看时间同步源信息;
      systemctl enable chronyd
    1. 同步硬件时钟:hwclock -w
  • chronyc常用命令

    • chronyc sources:查看时间同步源信息;
    • chronyc sourcestats -v:查看同步源状态信息。

网站公告

今日签到

点亮在社区的每一天
去签到