Linux中的日志管理

注:在 centos7/Rocky9 中,系統日志消息由兩個服務負責處理:systemd-journald 和 rsyslog

一、常見日志文件的作用

實驗一:測試查看暴力破解系統密碼的IP地址

步驟一:故意輸錯密碼3次,在日志文件中查看

步驟二:提取IP地址

  • awk '{print $11}' #以空格或 Tab 做為分隔符,打印第 11 列的數據
  • uniq 命令用于報告或忽略文件中的重復行,-c 或count:在每列旁邊顯示該行重復出現的次數

步驟三:發現后,使用防火墻拒絕此IP(首先查看和清空防火墻規則)

將拒絕Ip地址的規則添加進去

注:需要注意的是,一旦為防火墻添加這條規則,此遠程連接就會斷開,無法重連;需要在虛擬機中清空防火墻規則才能夠再次進行遠程連接

實驗二:/var/log/wtmp文件的作用

  • /var/log/wtmp 是一個二進制文件,記錄每個用戶的登錄次數和持續時間等信息
  • 可以用 last 命令輸出 wtmp 中內容
  • last 顯示到目前為止,成功登錄系統的記錄

實驗三:使用 /var/log/btmp 文件查看暴力破解系統的用戶

注:/var/log/btmp 文件是記錄錯誤登錄系統的日志

文件變得過大時,清空可選方式:

兩種方式差別:第一種方式直接覆蓋,Inode號不變,第二種方式刪除后重建,Inode號可能會變

二、日志的記錄方式

日志的記錄在 rsyslog 中由日志的“類別”和“級別”組成。

1.日志的分類(類別)

  • daemon 后臺進程相關
  • kern 內核產生的信息
  • lpr 打印系統產生的
  • cron 定時相關
  • mail 郵件相關
  • syslog 日志服務本身的
  • news 新聞系統
  • authpriv 安全認證
  • local0~7 自定義的日志設備
  • local0-local7 8 個系統保留,程序使用或者是用戶自定義

2.日志的級別

3.查看日志配置文件信息(/etc/rsyslog.conf)

類別.級別

  • *.info;mail.none;authpriv.none;cron.none ????????/var/log/messages——所有的類別級別是 info 以上除了 mail,authpriv,cron
  • authpriv.*? ? ? ? ? ? ? ? 認證相關日志? ? ? ? ? ? ? ? ? ? ?/var/log/secure
  • mail.*? ? ? ? ? ? ? ? ? ? ? 郵件相關的日志? ? ? ? ? ? ? ? ?-/var/log/maillog
  • cron.*? ? ? ? ? ? ? ? ? ? ? 計劃任務相關的日志? ? ? ? ? ?/var/log/cron
  • local7.*? ? ? ? ? ? ? ? ? ?開機時顯示的信息存放? ? ? ? /var/log/boot.log

注:“- ”號:郵件的信息比較多,現將數據存儲到內存,達到一定大小,全部寫到硬盤。有利于減少 I/O進程的開銷。數據存儲在內存,如果關機不當則數據消失。

4.日志輸入的規則

  • . info 大于等于 info 級別的信息全部記錄到某個文件。
  • .=級別 僅記錄等于某個級別的日志。例:.=info 只記錄 info 級別的日志
  • .! 級別 除了某個級別以外,記錄所有的級別信息(C6 可用)。例.!err 除了 err 外記錄所有。
  • .none 指的是排除某個類別。

實驗:自定義日志

步驟一:在/var/log/目錄下創建all.log日志文件,然后在配置文件中記錄位置

步驟二:重啟日志服務,使配置生效

步驟三:防止日志刪除,添加隱藏屬性

三、日志輪替切割

1.日志的切割

  • 在 linux 下的日志會定期進行滾動增加,我們可以對日志進行指定大小的切割。logrotate 支持按時間和大小來自動切分(剪切),以防止日志文件太大。
  • 日志輪替最主要的作用就是把舊日志文件移動并改名,同時建立新的空日志文件。當舊日志文件數量超出保存范圍后就進行刪除

logrotate 配置文件主要有:

  • /etc/logrotate.conf(全局規則) 以及 /etc/logrotate.d/ (局部規則)目錄下的明細配置文件。logrotate 的執行由 crond 服務調用的。
  • 查看 logrotate 腳本內容(需要自己寫)

logrotate 程序每天由 cron 在指定的時間(/etc/crontab)啟動

日志是很大的,如果讓日志無限制的記錄下去,日志文件會逐漸變大,以至于文件無法打開。

日志切割

  • 當日志達到某個特定的大小,將之前的日志保留一個備份,再產生的日志創建一個同名的文件保存新的日志

2.系統中的文件默認切割輪替

  • weekly:每周執行切割輪替,或者說每周執行一次日志切割輪替
  • rotate:表示日志切分后歷史文件最多保存離現在最近的多少份
  • create:指定新創建的文件的權限與所屬主與屬組
  • dateext:使用日期為后綴的切割文件

其它參數說明:

  • monthly: 日志文件將按月輪循。其它可用值為‘daily’,‘weekly’或者‘yearly’。
  • size:只有當日志文件增長到指定大小時才會進行切割輪替,比如 100k、100M、100G 單位大小均為有效值。(如果此選項和時間輪替沖突那么最后一個指定的輪替條件生效)
  • rotate 5: 將存儲 5 個歸檔日志。對于第 6 個歸檔,距離當前時間最久的歸檔將被刪除。
  • dateext:在日志切割輪替后,舊日志文件以切割輪替日期為文件后綴名。
  • nodateext:在日志輪替切割后,舊日志文件不以日期為后綴名。
  • compress: 在輪循任務完成后,已輪循的歸檔將使用 gzip 進行壓縮。
  • delaycompress: 總是與 compress 選項一起用,delaycompress 選項指示 logrotate 不要將最近的歸檔壓縮。
  • missingok: 在日志輪循期間,任何錯誤將被忽略,例如“文件無法找到”之類的錯誤。
  • notifempty: 如果日志文件為空,輪循不會進行。
  • create 644 root root: 以指定的權限創建全新的日志文件,同時 logrotate 也會重命名原始日志文件。
  • sharedscripts:在此關鍵字之后的腳本執行一次。
  • prerotate/endscript:在日志輪替之前執行腳本命令。endscript 標識 prerotate 腳本結束。
  • postrotate/endscript: 在所有其它指令完成后,postrotate 和 endscript 里面指定的命令將被執行。

3.logrotate 命令

格式:logrotate? ?[選項]? ?配置文件名

選項:如果此命令不添加子選項,則會按照配置文件中的條件進行日志輪替。

  • -v:顯示日志輪替過程。加-v 選項會顯示日志的輪替過程。
  • -f:強制進行日志輪替。不管日志輪替的條件是否已經符合,強制配置文件中的所有日志進行輪替

4.自定義日志切割輪替

步驟一:在/var/logrotate.d/目錄下創建alog文件,寫入all.log日志的切割輪替規則

步驟二:在配置環境rsyslog.conf中寫入all.log日志的路徑和類別、級別

步驟三:全部保存好之后,重新啟動rsyslog服務,載入配置好的配置文件

步驟四:執行強制輪替的命令,然后查看/var/log/下是否會出現強制輪替產生的文件

補充

split:文件拆分

  • -a:指定輸出文件名的后綴長度,默認2字符
  • -d:指定輸出文件名的后綴長度用數字代替
  • -b:指定輸出文件的大小,可以用k,m,g等表示

cat:文件合并

四、配置遠程日志服務器

作用:實現日志的集中管理

server端配置(25.6)

步驟一:解除514端口注釋,開放tcp連接監聽端口

步驟二:重啟rsyslog服務,查看服務監聽的狀態

步驟三:關閉防火墻,確保不會影響到日志的接收

client端配置(25.16)

步驟一:修改主機名方便區分日志所屬

步驟二:更改配置文件,將遠程服務器的主機地址添加進去(本機是192.168.25.16)

步驟三:重啟rsyslog服務,確保配置文件重新加載識別

步驟四:創建一個新的用戶,然后在服務器端的/var/log/secure日志文件中查看是否更新

注:可以看到服務器端已經收到了一臺客戶端的日志信息(服務器使用UDP協議,則一行只能有一個@符號,若使用TCP協議,則必須有兩個@符號)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918794.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 性能優化擂臺:挑戰與突破之路

一、引言(一)C 在性能關鍵領域的地位在當今數字化時代,C 語言憑借其高效性、靈活性和對硬件的直接操控能力,在眾多對性能要求極高的領域中占據著舉足輕重的地位。無論是構建高性能的游戲引擎,實現金融領域毫秒級響應的…

五、Elasticsearch在Linux的安裝部署

五、Elasticsearch在Linux的安裝部署 文章目錄五、Elasticsearch在Linux的安裝部署1.Elasticsearch的作用2.安裝0. 安裝前準備1.使用包管理器安裝(推薦,自動服務化)Ubuntu / DebianRHEL / CentOS / Rocky / Alma2. 使用 tar.gz 安裝&#xff…

Kubernetes集群部署全攻略

目錄 一、 服務器環境及初始化 1、架構分析 2、初始化 2.1、清空Iptales默認規則及關閉防火墻 2.2、關閉SELINUX 2.3、關閉Swap交換空間 2.4、設置主機名 2.5、編寫hosts文件 2.6、設置內核參數 二、安裝Docker環境 1、安裝Docker 1.1、配置阿里源 1.2、安裝docke…

Ceph存儲池詳解

Ceph 存儲池(Pool)詳解 Ceph 的 存儲池(Pool) 是邏輯存儲單元,用于管理數據的分布、冗余和訪問策略。它是 Ceph 存儲集群的核心抽象,支持 對象存儲(RGW)、塊存儲(RBD&…

使用 Docker 部署 PostgreSQL

通過 Docker 部署 PostgreSQL 是一種快速、高效的方式,適用于開發和測試環境。 步驟 1:拉取 PostgreSQL 鏡像 運行以下命令從 Docker Hub 拉取最新的 PostgreSQL 鏡像: docker pull postgres 如果需要其他的鏡像,可以指定版本…

P1886 滑動窗口 /【模板】單調隊列【題解】

P1886 滑動窗口 /【模板】單調隊列 題目描述 有一個長為 nnn 的序列 aaa,以及一個大小為 kkk 的窗口。現在這個窗口從左邊開始向右滑動,每次滑動一個單位,求出每次滑動后窗口中的最小值和最大值。 例如,對于序列 [1,3,?1,?3,5,3…

河南萌新聯賽2025第(五)場:信息工程大學補題

文章目錄[TOC](文章目錄)前言A.宇宙終極能量調和與多維時空穩定性驗證下的基礎算術可行性研究B.中位數C.中位數1F.中位數4G.簡單題H.簡單題I.Re:從零開始的近世代數復習(easy)K.狂飆追擊L.防k題前言 這次萌新聯賽考到了很多數學知識 A.宇宙終極能量調和…

SuperMap GIS基礎產品FAQ集錦(20250804)

一、SuperMap iServer 問題1:iServer的名稱和logo怎么自定義? 11.3.0 【解決辦法】參考:https://blog.csdn.net/supermapsupport/article/details/144744640 問題2:iServer 刷新工作空間,當數據庫是 PostGIS 時&#x…

AWS CloudFormation批量刪除指南:清理Clickstream Analytics堆棧

概述 在AWS環境管理中,經常會遇到需要批量刪除CloudFormation堆棧的情況。本文記錄了一次完整的Clickstream Analytics堆棧清理過程,包括遇到的問題和解決方案,希望能為其他開發者提供參考。 背景 我們的AWS賬戶中部署了多個Clickstream Analytics解決方案的CloudFormati…

redis中分布式鎖的應用

我們之前講了秒殺模塊的實現,使用了sychronized互斥鎖,但是在集群模式下因為不同服務器有不同jvm,所以synchronized互斥鎖失效了。 redis實現秒殺超賣問題的解決方案:(僅限于單體項目)-CSDN博客 這時就要找到一個多臺服務器都能…

【科研繪圖系列】R語言繪制微生物豐度和基因表達值的相關性網絡圖

文章目錄 介紹 加載R包 數據下載 導入數據 數據預處理 畫圖 系統信息 參考 介紹 【科研繪圖系列】R語言繪制微生物豐度和基因表達值的相關性網絡圖 加載R包 library(tidyverse) library(ggsignif) library(RColorBrewer) library(dplyr) library(reshape2) library(grid

Pycharm現有conda環境有對應env,但是添加后沒反應

一、系統環境 二、異常現象 Pycharm現有conda環境有對應env: anaconda3的envs下也確實存在這個環境: 但是添加后沒反應(點擊確認后,yolov7環境沒有出現在列表中): 但是我之前在別的機子添加是沒問題的。 …

Git常用指令大全:從入門到精通

Git 的常用指令,分為基礎操作、分支管理、遠程協作、撤銷操作和高級功能五個部分,并附上實用示例:一、基礎操作(必會)初始化倉庫 git init # 在當前目錄創建新倉庫克隆遠程倉庫 git clone https://github.com/user/rep…

Redis (REmote DIctionary Server) 高性能數據庫

Redis {REmote DIctionary Server} 高性能數據庫1. What is Redis?1.1. 基于內存的數據存儲2. Install Redis on Linux3. Starting and stopping Redis in the background3.1. systemctl3.2. service 4. Connect to Redis5. 退出 Redis 的命令行界面 (redis-cli)6. redis-serv…

MySQL中的DML(二)

DML(Data Manipulation Language) : 數據庫操作語言,對數據庫中表的數據進行增刪改操作。 創建student表: CREATE DATABASE test; use test; CREATE TABLE student (id int,name varchar(255),address varchar(255),city varchar(255) );INSERT INTO stu…

linux 主機驅動(SPI)與外設驅動分離的設計思想

一、 主機驅動與外設驅動分離Linux中的SPI、I2c、USB等子系統都利用了典型的把主機驅動和外設驅動分離的想法,讓主機端負責產生總線上的傳輸波形,而外設端只是通過標準的API來讓主機端以適當的波形訪問自身。因此這里涉及了4個軟件模塊&#xff1…

如何生成.patch?

文章目錄 ??方法 1:使用 `git format-patch`(推薦)? ??步驟?? ?方法 2:使用 `diff`命令(適用于非 Git 項目)? ??方法 3:使用 `git diff`(生成未提交的變更)? ?方法 4:使用 `quilt`(適用于大量補丁管理) ?如何提交補丁給上游項目?? ?總結?? 在 L…

【計算機網絡 | 第6篇】計算機體系結構與參考模型

文章目錄計算機體系結構與參考模型分層思想🍂常見的3種模型(網絡體系結構)🐦?🔥TCP/IP體系結構各層包含的主要協議🥝每層所解決的主要問題🤔層次間的交互規則🥝實體與對等實體協議服…

Autoware Universe 感知模塊詳解 | 第一節 感性認識多源傳感器標定

傳感器與感知模塊 在基于規則的自動駕駛系統中,感知模塊,承擔著理解車體周圍環境信息的重要職責。它通過融合多種傳感器數據,與定位模塊共同為規劃與控制模塊提供準確、系統化的輸入信息。正如人可以通過眼睛觀察周圍的環境(盲人也…

docker搭建java運行環境(java或者springboot)

目錄1. 創建測試代碼2. 編譯打包3. 代碼環境運行使用普通運行方式使用docker掛載項目(長期運行)1. 創建 Dockerfile2. 構建并后臺運行使用docker swram實現零停機更新(推薦)1. 初始化swarm2. 創建 Dockerfile3. 使用Dockerfile 構…