Linux 日志管理与时钟同步详解

一、日志管理

1. 日志服务概述

Linux 系统中主要有两种日志服务,分别负责临时和永久日志的管理:

  • systemd-journald:存储临时日志,服务器重启后日志会丢失,无需手动配置
  • rsyslog:存储永久日志,日志文件可长期保存,核心配置文件为/etc/rsyslog.conf

2. 日志文件的种类与主要路径

系统日志按内容可分为三类:内核及系统日志、用户日志、程序日志。主要日志文件及功能如下:

日志文件路径记录内容
/var/log/dmesg系统引导过程中的各种事件信息(如硬件检测、驱动加载)
/var/log/lastlog每个用户最近一次的登录事件信息
/var/log/wtmp所有用户的登录、注销记录及系统启动、停机事件
/var/log/btmp失败的登录尝试及验证错误事件

3. 日志分析方法

(1)日志优先级

日志优先级从低到高(严重程度递增)如下:

  • debug:程序或系统调试信息(最详细,仅用于开发排查)
  • info:一般信息性事件(正常运行状态记录)
  • notice:不影响功能但需注意的事件
  • warning:可能影响功能的重要提醒
  • err:运行错误(非严重故障)
  • cirt:较严重的情况(需关注)
  • alert:必须立即处理的问题(如服务中断风险)
  • emerg:导致系统不可用的致命错误(最高优先级)
(2)实时监控日志

使用tail -f命令实时跟踪日志文件变化:

tail -f /var/log/messages  # 实时监控系统默认日志
(3)日志记录格式

一条完整日志通常包含四部分:

  • 时间标签:消息发出的日期和时间(如2024-05-20 14:30:00
  • 主机名:生成消息的主机名称(如server01
  • 子系统名称:发出消息的应用程序名或进程 PID(如sshd[1234]
  • 消息内容:具体事件描述(如Accepted password for root from 192.168.1.1
(4)journalctl命令(管理 systemd 日志)

journalctl用于查询systemd-journald记录的日志,常用选项:

选项功能
-n 数字查看最新 N 条日志(默认 10 条,如journalctl -n 20
-f实时监控日志更新(类似tail -f
-p 优先级按优先级显示日志(如journalctl -p err显示错误及以上级别)
--since 时间显示指定时间之后的日志(如journalctl --since "2024-05-20 08:00"
--until 时间显示指定时间之前的日志(配合--since使用)
-o verbose显示详细日志信息(可结合条件过滤,如journalctl -o verbose _COMM=su

常用过滤条件

  • _COMM=命令名:过滤指定命令的日志
  • _PID=进程号:过滤指定 PID 的日志
  • _UID=用户ID:过滤指定用户的日志
  • _SYSTEMD_UNIT=服务名:过滤指定 systemd 服务的日志
(5)手动发送日志消息

使用logger命令向rsyslog服务发送自定义消息,格式:

logger -p 设施.优先级 "消息内容"  # 设施用于分类(如local7、mail等)

示例:向/var/log/boot.log发送 notice 级消息:

logger -p local7.notice "chenyu"

4. 用户日志查询

用户日志主要记录登录相关事件,常用查询命令:

命令功能
lastlog显示所有用户最近一次登录的时间、终端和 IP
users查看当前登录系统的用户(仅显示用户名)
who查看登录用户的终端、登录时间及来源主机
w显示登录用户及其正在执行的命令(比who更详细)
last/var/log/wtmp中读取成功登录的用户历史记录
lastb/var/log/btmp中读取失败的登录尝试记录

5. 远程日志收集配置

通过rsyslog实现远程日志集中管理(以将邮件日志发送到ldap.example.com为例):

  1. 编辑

    rsyslog
    

    配置文件:

    vim /etc/rsyslog.conf
    
  2. 添加规则(格式):

    事件.优先级 目标主机
    
    mail.*    ldap.example.com  # 将所有邮件相关日志发送到ldap.example.com
    
  3. 重启服务使配置生效:

    systemctl restart rsyslog
    systemctl enable rsyslog  # 设置开机自启
    

规则格式说明

  • 第一个*:表示事件类型(如mailauthkern*代表所有)
  • 第二个*:表示优先级(*代表所有级别)

二、时钟同步

1. 基本时间管理(timedatectldate

(1)timedatectl命令

用于查看和设置系统时间、时区及 NTP 同步:

命令功能
timedatectl查看当前时间、时区、NTP 状态
timedatectl list-timezones列出所有可用时区
timedatectl set-timezone "Asia/Shanghai"设置时区为上海
timedatectl set-time "YYYY-MM-DD hh:mm:ss"手动设置系统时间
(2)date命令

手动修改系统时间:

date -s "2024-05-20 15:30:00"  # 设置时间为2024年5月20日15:30:00

2. chrony时间同步服务

chrony是高效的 NTP 替代工具,适用于网络不稳定环境,基于 UDP 协议(端口 323),由chronyd(后台服务)和chronyc(命令行工具)组成

注意:chronydntpd不可同时运行,需二选一

(1)服务端配置(作为时间服务器)
  1. 安装chrony

    yum -y install chrony  # CentOS/RHEL系统
    
  2. 编辑配置文件/etc/chrony.conf

    vim /etc/chrony.conf
    

    添加以下内容:

    local stratum 10        # 不同步外部时间,作为本地时间源(stratum为层级,1-15,越低越优)
    allow 172.16.30.0/24    # 允许172.16.30.0/24网段的主机同步此服务器
    
  3. 重启服务并设置开机自启:

    systemctl restart chronyd
    systemctl enable chronyd
    
  4. 配置防火墙(允许 NTP 服务):

    firewall-cmd --add-service=ntp --permanent  # 永久开放NTP服务
    firewall-cmd --reload  # 重载防火墙规则
    
(2)客户端配置(同步服务端时间)
  1. 安装chrony

    yum -y install chrony
    
  2. 编辑配置文件,指向服务端:

    vim /etc/chrony.conf
    

    修改为:

    server 172.16.30.20 iburst  # 172.16.30.20为服务端IP,iburst表示快速同步
    
  3. 重启服务并设置开机自启:

    systemctl restart chronyd
    systemctl enable chronyd
    
  4. 将系统时间同步到硬件时钟(避免重启后失效):

    hwclock -w
    
(3)chronyc客户端命令
命令功能
chronyc sources查看时间同步源信息(服务端地址及状态)
chronyc sourcestats -v查看同步源的统计信息(如偏差、延迟)

总结

日志管理是系统监控与故障排查的核心,通过rsyslogsystemd-journald可实现日志的永久存储与实时分析;时钟同步则通过chrony确保多主机时间一致性,两者都是 Linux 系统运维的基础技能。掌握日志文件路径、优先级划分及chrony配置,能有效提升系统稳定性与可维护性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916932.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916932.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916932.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人如何做股指期货?

本文主要介绍个人如何做股指期货?个人参与股指期货交易需要遵循一定的流程和规则,同时需充分了解其高风险、高杠杆的特点,并做好风险管理。个人如何做股指期货?一、了解股指期货基础股指期货是以股票价格指数为标的物的金融期货合…

设计模式-单例模式 Java

模式概述 单例模式(Singleton Pattern)是设计模式中最基础但应用最广泛的创建型模式之一,确保一个类仅有一个实例,并提供一个全局访问点。这种模式在需要全局唯一对象的场景中至关重要,如配置管理、线程池、数据库连接…

RFID 系统行业前沿洞察:技术跃迁与生态重构

在物联网与人工智能深度融合的时代,RFID(射频识别)系统正经历从 “单品识别工具” 到 “智能决策中枢” 的范式转变。这一技术凭借其非接触式数据采集、环境适应性强、全生命周期追溯等特性,在医疗、制造、农业、环保等领域引发连…

实现implements InitializingBean, DisposableBean 有什么用

在 Spring 框架中,实现 InitializingBean 和 DisposableBean 接口用于管理 Bean 的生命周期回调,分别控制 Bean 的初始化后和销毁前行为。具体作用如下:1. InitializingBean 接口public interface InitializingBean {void afterPropertiesSet…

GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【一】

沿袭我们的月度发布传统,极狐GitLab 发布了 18.2 版本,该版本带来了议题和任务的自定义工作流状态、新的合并请求主页、新的群组概览合规仪表盘、下载安全报告的 PDF 导出文件、中心化的安全策略管理(Beta)等几十个重点功能的改进…

如何快速把Clickhouse数据同步到Mysql

直接使用Clickhouse官方支持的Mysql引擎表的方式! 一、首先创建Mysql引擎表: CREATE TABLE saas_analysis.t_page_view_new_for_write (id Int64,shop_id Nullable(Int64),session_id Nullable(String),client_id Nullable(String),one_id Nullable(Str…

Kafka 重复消费与 API 幂等消费解决方案

Kafka 是一个高性能的分布式消息系统,但消费者重启、偏移量(offset)未正确提交或网络问题可能导致重复消费。API 幂等性设计则用于防止重复操作带来的副作用。本文从 Kafka 重复消费和 API 幂等性两个方面提供解决方案,重点深入探…

win11推迟更新

1、按住WINR2、输入以下命令:reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f3、点击确定4、打开搜索框5、在搜索框里边输入更新,选择检查更新6、在暂停…

【uniapp】---- 使用 uniapp 实现视频和图片上传且都可以预览展示

1. 前言 接手得 uniapp 开发的微信小程序项目,新的开发需求是需要同时上传图片和视频,但是之前的上传都没有进行封装,都是每个页面需要的时候单独实现,现在新的需求,有多个地方都需要上传图片、视频或语音等,这样就需要封装一个组件,然后发现部分地方使用了 uni-file-p…

(nice!!!) (LeetCode 每日一题) 2411. 按位或最大的最小子数组长度(位运算+滑动窗口)

2411. 按位或最大的最小子数组长度 思路&#xff1a;位运算滑动窗口&#xff0c;时间复杂度0(n*32)。 **遍历每一个元素nums[i]&#xff0c;然后看能否改变它前面的元素nums[j]&#xff08; j<i &#xff09;&#xff0c; 当(nums[j]|nums[i])nums[j]时&#xff0c;说明当前…

算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现

//#include<bits/stdc.h> #include<iostream> using namespace std; const int N1e510; //定义 int e[N],pre[N],ne[N],h,id; int mp[N]; //头插 // 兵 y // x void push_front (int x) {id;e[id]x;mp[x]id;pre[id]h;ne[id]ne[h];//先修改新节点…

津发科技带你了解皮肤电信号中的SCL与SCR

皮肤电&#xff08;Electrodermal Activity, EDA&#xff09;作为一种非常容易获取的基本生理信号&#xff0c;可以很好地量化我们的情绪反应&#xff0c;被广泛应用于情感识别研究中。它代表机体受到刺激时皮肤电传导的变化。皮肤电反应作为交感神经系统功能的直接指标&#x…

spark的broadcast variables

在 Spark 中&#xff0c;广播变量&#xff08;Broadcast Variables&#xff09; 是一种特殊类型的共享变量&#xff0c;用于高效地在集群中的所有节点间分发大型只读数据集。它解决了 Spark 任务中频繁传输重复数据的性能问题&#xff0c;特别适用于需要在多个任务中重用相同数…

Python爬虫实战:研究Haul库相关技术构建电商数据采集与分析系统

1. 引言 1.1 研究背景与意义 随着电子商务的迅速发展,电商平台上的商品数据呈现爆炸式增长。这些数据蕴含着丰富的商业价值,如消费者行为分析、市场趋势预测、竞争对手监测等。然而,如何从海量的电商数据中获取有价值的信息,成为当前电商企业面临的重要挑战。 网络爬虫技…

Java:高频面试知识分享1

一、Java 语言核心特性&#xff08;面向对象编程&#xff09;核心知识点梳理&#xff1a;面向对象三大特性&#xff1a;封装&#xff1a;隐藏对象内部实现&#xff0c;通过 public 方法暴露接口&#xff08;例&#xff1a;类的 private 字段 get/set 方法&#xff09;。继承&a…

MybatisPlus-核心功能

目录 条件构造器 QueryWrapper UpdateWrapper LambdaQueryWrapper 自定义SQL 基本用法 多表关联 Service接口 CRUD 基本用法 Lambda 批量新增 条件构造器 除了新增以外&#xff0c;修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法…

RHCE综合项目:分布式LNMP私有博客服务部署

一、项目概述本次项目基于LNMP&#xff08;linux&#xff0c;nginx&#xff0c;mariadb&#xff0c;php&#xff09;搭建了一个私有的博客平台&#xff0c;本篇博客详细记录了该博客平台的服务部署全流程。在该项目中&#xff0c;使用了两台linux&#xff08;openeuler&#xf…

5种安全方法:如何删除三星手机上的所有内容

随着新的三星设备不断推出&#xff0c;在出售或捐赠旧手机之前&#xff0c;彻底清除旧手机上的数据以保护隐私至关重要。许多人不知道的是&#xff0c;简单的删除操作并不能完全清除三星设备上的数据&#xff0c;被删除的文件可能会处于不可见状态。本文介绍了如何彻底删除三星…

Vue 3 入门教程 2- Vue 组件基础与模板语法

一、Vue 组件基础在 Vue 中&#xff0c;组件是构建用户界面的基本单位&#xff0c;它可以将页面拆分成多个独立、可复用的部分。一个 Vue 组件通常以 .vue 文件名结尾&#xff0c;包含三个核心部分&#xff1a;模板&#xff08;Template&#xff09;、脚本&#xff08;Script&a…

Linux 进程管理与计划任务详解

Linux 进程管理与计划任务详解 一、程序与进程的基本概念 程序&#xff1a;保存在外部存储介质中的可执行机器代码和数据的静态集合&#xff0c;是静态的文件实体进程&#xff1a;在 CPU 及内存中处于动态执行状态的计算机程序&#xff0c;是程序的动态执行实例关联关系&#x…