Linux 日志管理與時鐘同步詳解

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…