Linux中的系統日志(Rsyslog)

一、實驗環境

主機名系統網絡適配器IP地址
serverarhel9NAT模式172.25.254.11/24
serverbrhel9NAT模式172.25.254.22/24

二、Rsyslog的基本參數

(1)安裝rsyslog

(2)rsyslog的服務名稱

(3)rsyslog的主配置文件

rsyslog?的主配置文件通常位于?/etc/rsyslog.conf,并包含其他子配置(如?/etc/rsyslog.d/*.conf)。

(4)tcp/udp的514端口(默認未開啟)

在 rsyslog 中,TCP/UDP 的 514 端口默認未開啟,若要開啟可通過修改 rsyslog 配置文件來實現,具體操作如下:

1. 打開 rsyslog 配置文件,命令如下:

vim /etc/rsyslog.conf

2. 在文件中添加以下內容以啟用 UDP 514 端口監聽:

module(load="imudp")
input(type="imudp" port="514")

3. 添加以下內容以啟用 TCP 514 端口監聽:

module(load="imtcp")
input(type="imtcp" port="514")

4. 保存并關閉配置文件,然后重啟 rsyslog 服務使配置生效,命令如下:

systemctl restart rsyslog

此外,還需注意檢查防火墻設置,確保防火墻允許 TCP 和 UDP 的 514 端口流量通過,否則可能無法正常使用該端口進行日志傳輸。

三、自定義日志路徑

默認日志路徑

/var/log/boot.log? ? ? ? ? ? ? ? ? #系統啟動信息
/var/log/cron? ? ? ? ? ? ? ? ????????#系統中周期化任務日志
/var/log/maillog? ? ? ? ? ? ????????#郵件日志
/var/log/messages? ? ? ? ? ? ? ?#服務常規信息,服務啟動報錯
/var/log/secure? ? ? ? ? ? ? ? ? ? ?#系統認證日志

如何更改日志存放路徑

#1.設置日志存儲位置為/var/log/timinglee[root@servera ~]# vim /etc/rsyslog.conf
#### RULES ##### Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console#下一行命令的作用是,所有類型的所有級別日志存放到/var/log/timinglee 第一個*標識日志類型 第二個*標識日志級別
*.*                                                     /var/log/timinglee[root@servera ~]# systemctl restart rsyslog.service#測試1:
[root@servera ~]# > /var/log/timinglee          #清空日志文件
[root@servera ~]# logger test message			#生成測試日志的內容
[root@servera ~]# cat /var/log/timinglee		#查看日志內容
Jul 14 12:09:09 servera root[4118]: test message#2.設定采集日志的種類,(把系統中除服務認之外的日志記錄在/var/log/timinglee)
[root@servera ~]# vim /etc/rsyslog.conf
#### RULES ##### Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console#authpriv.none 的作用是指定服務認證類型的日志不采集
*.*;authpriv.none                                       /var/log/timinglee#測試2:
[root@serverb ~]# ssh -l root 172.25.254.11
#默認在/var/log/timinglee中有認證信息
[root@servera ~]# tail -f /var/log/timinglee
Jul 14 12:09:09 servera root[4118]: test message
Jul 14 12:15:15 servera sshd[4155]: Accepted password for root from 172.25.254.22 port 41582 ssh2
Jul 14 12:15:15 servera systemd-logind[870]: New session 6 of user root.
Jul 14 12:15:15 servera systemd[1]: Started Session 6 of User root.
Jul 14 12:15:15 servera sshd[4155]: pam_unix(sshd:session): session opened for user root(uid=0) by root(uid=0)
Jul 14 12:15:15 servera systemd[1]: Starting Hostname Service...
Jul 14 12:15:15 servera systemd[1]: Started Hostname Service.
Jul 14 12:15:45 servera systemd[1]: systemd-hostnamed.service: Deactivated successfully.#重啟rsyslog服務,等配置生效后,再次進行ssh登錄
[root@servera ~]# > /var/log/timinglee
[root@servera ~]# systemctl restart rsyslog.service
[root@serverb ~]# ssh -l root 172.25.254.11
[root@servera ~]# tail -f /var/log/timinglee
Jul 14 12:21:53 servera rsyslogd[4297]: [origin software="rsyslogd" swVersion="8.2310.0-4.el9" x-pid="4297" x-info="https://www.rsyslog.com"] start
Jul 14 12:21:53 servera systemd[1]: Started System Logging Service.
Jul 14 12:21:53 servera rsyslogd[4297]: imjournal: journal files changed, reloading...  [v8.2310.0-4.el9 try https://www.rsyslog.com/e/0 ]
Jul 14 12:22:00 servera systemd[1]: session-7.scope: Deactivated successfully.
Jul 14 12:22:00 servera systemd-logind[870]: Session 7 logged out. Waiting for processes to exit.
Jul 14 12:22:00 servera systemd-logind[870]: Removed session 7.
Jul 14 12:22:03 servera systemd-logind[870]: New session 8 of user root.
Jul 14 12:22:03 servera systemd[1]: Started Session 8 of User root.
Jul 14 12:22:04 servera systemd[1]: Starting Hostname Service...
Jul 14 12:22:04 servera systemd[1]: Started Hostname Service.

?tail -f?是 Linux 系統中一個非常實用的命令,用于實時監控文件的更新內容。它會持續跟蹤文件的變化,并在文件有新內容添加時立即顯示出來,特別適合查看正在寫入的日志文件或實時數據流。

測試1:

測試2:

日志類型

auth? ? ? ? ? ?#用戶認證,比如用戶登錄系統
authpriv ?? ?#服務認證,比如ssh遠程登錄
cron? ? ? ? ? ?#時間任務
kern? ? ? ? ? ?#內核類型
mail? ? ? ? ? ?#郵件
news? ? ? ? ?#系統更新信息
user? ? ? ? ? #用戶

日志級別

none? ? ? ? ? ? #不采集
debug? ? ? ? ? #程序排錯信息
info? ? ? ? ? ? ? #程序常規運行信息
notice? ? ? ? ? #重要信息的普通日志
waring ?? ??? ?#程序警告
err? ? ? ? ? ? ? ?#程序報錯
crit? ? ? ? ? ? ? ?#嚴重級別會導致系統軟件不能正常工作
alert? ? ? ? ? ? ?#系統中立即要更改的信息
emerg? ? ? ? ? #系統的嚴重問題日志

四、日志同步

在企業中,服務器系統數量不唯一,那多個操作系統對于日志的查詢分析難度和時效性非常大,為了解決此問題,我們可以把所有主機的日志同步到一臺主機中來進行集中存儲。

1.設定日志接收服務器servera

#這里我沒有加載tcp模塊,只使用了udp模塊來作為示例
[root@servera ~]# vim /etc/rsyslog.conf
module(load="imudp") # needs to be done just once			#加載日志接收模塊
input(type="imudp" port="514")								#指定模塊端口[root@servera ~]# systemctl restart rsyslog.service#測試:
[root@servera ~]# netstat -antlupe | grep rsyslog
udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          45647      4297/rsyslogd
udp6       0      0 :::514                  :::*                                0          45648      4297/rsyslogd#這里可以選擇關閉防火墻,也可以讓防火墻開放udp和tcp的514端口
[root@servera ~]# systemctl disable --now firewalld

servera 的rsyslog主配置文件的配置:

2.日志發送方serverb

[root@serverb ~]# vim /etc/rsyslog.conf
*.*                                    @172.25.254.11			# @標識udp協議[root@serverb ~]# systemctl restart rsyslog.service

serverb 的rsyslog主配置文件的配置:

3.測試

[root@servera ~]# > /var/log/messages
[root@serverb ~]# > /var/log/messages[root@servera ~]# tail -f /var/log/messages[root@serverb ~]# logger test message
#只要在servera中看到日志出現標識日志同步成功#servera中同步出現了一條serverb的日志說明同步成功了
[root@servera ~]# tail -f /var/log/messages
Jul 14 12:36:40 serverb root[3503]: test message

五.如何定義日志的采集格式

#編輯日志采集格式模板
[root@servera ~]# vim /etc/rsyslog.conf
$template CUSTOM_LOGFRMAT,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"*.*;authpriv.none                              /var/log/timinglee;CUSTOM_LOGFRMAT#如何向修改默認日志格式
[root@servera ~]# vim /etc/rsyslog.conf
#module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
module(load="builtin:omfile" Template="CUSTOM_LOGFRMAT")[root@servera ~]# systemctl restart rsyslog.service#####對于參數的解釋#########
#%FROMHOST-IP%		#生成日志的ip
#%timegenerated%	#生成日志的時間
#%syslogtag%		#生成日志的程序
#%msg%				#生成日志的內容
#\n					#換行

原本的日志采集格式模板:

修改后的日志采集格式模板:

測試:

經過測試發現日志采集的格式已經改變,說明測試成功

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

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

相關文章

Spring Boot + Thymeleaf + RESTful API 前后端整合完整示例

關鍵詞:Spring Boot、Thymeleaf、RESTful API、前后端整合、用戶管理 ? 功能概述 本文將為你提供一個完整的 Spring Boot Thymeleaf RESTful API 的前后端整合項目,實現以下功能: 模塊功能用戶管理查看用戶列表、新增用戶、刪除用戶后端…

從零開始的MySQL學習

MySQL 從零開始的MySQL學習 第一節 數據庫 重點:數據庫通過SQL等標準語言進行動作,數據庫的概念、分類,數據管理系統(操縱和管理數據庫的大型軟件) 數據庫(Database) 是按照數據結構來組織、存儲…

Docker 高級管理--Dockerfile鏡像制作

二:Dockerfile 語法基礎 1:基礎指令 (1)FROM 指定基礎鏡像,所有的 Dockerfile 都必須以 FROM 指令開頭,它定義了新鏡像基于哪個基礎鏡像構建。 FRoM ubuntu:20.04 (2)MAINTAINER(已奔用,推薦使用LABEL) 用于指定鏡像的維護者信息。不過在較…

LeetCode 692題解 | 前K個高頻單詞

前K個高頻單詞一、題目鏈接二、題目三、分析四、代碼一、題目鏈接 692.前K個高頻單詞 二、題目 三、分析 本題目我們利用map統計出次數以后,返回的答案應該按單詞出現頻率由高到低排序,有一個特殊要求,如果不同的單詞有相同出現頻率&#…

C++ 中的 std::bind 用法

在現代 C++ 編程中,std::bind 是一個非常強大但常常被誤解的工具。它允許我們將函數(包括成員函數)、參數進行綁定,并生成一個新的可調用對象。這在編寫異步回調、事件處理、適配器模式等場景中非常有用。 ?? 一、std::bind 是什么? std::bind 是定義在 <functiona…

Spring Boot秒級冷啟動方案:阿里云FC落地實戰(含成本對比)

Spring Boot秒級冷啟動方案&#xff1a;阿里云FC落地實戰&#xff08;含成本對比&#xff09;一、冷啟動痛點與FC核心優勢1. 傳統Spring Boot冷啟動瓶頸2. 阿里云FC核心能力二、秒級冷啟動架構設計1. 整體架構2. 關鍵組件選型三、5大核心優化策略1. 應用瘦身&#xff08;JAR包精…

搜索引擎vs向量數據庫:LangChain混合檢索架構實戰解析

本文較長&#xff0c;建議點贊收藏&#xff0c;以免遺失。更多AI大模型應用開發學習視頻及資料&#xff0c;盡在聚客AI學院。一、LangChain搜索工具實戰&#xff1a;集成DuckDuckGo實現實時信息查詢 核心場景&#xff1a;解決大模型知識滯后問題&#xff0c;通過搜索引擎獲取實…

【算法】貪心算法:將數組和減半的最少操作次數C++

文章目錄前言題目解析算法原理代碼示例策略證明前言 題目的鏈接&#xff0c;大家可以先試著去做一下再來看一下思路。2208. 將數組和減半的最少操作次數 - 力扣&#xff08;LeetCode&#xff09; 題目解析 要認真去把題目看一遍&#xff0c;畫出題目中的有用信息。 示例一定是…

git異常退出,應該是內存不足

這次下載代碼&#xff1a; 公司虛擬機到了一定步驟&#xff0c;肯定退出。而家里的虛擬機則完全正常。我把家里的虛擬機復制到公司&#xff0c;還是崩潰。 差異在哪里&#xff1f;公司電腦虛擬機內存設置為10G&#xff0c;家里的16。因為家里電腦64G內存。 后來確認&#xff…

機器學習13——支持向量機下

支持向量機下 非線性支持向量機&#xff08;Non-linear SVMs&#xff09;詳解 核心思想 當數據在原始空間線性不可分時&#xff0c;通過**核技巧&#xff08;Kernel Trick&#xff09;**將數據映射到高維特征空間&#xff0c;使其在該空間中線性可分。 比如以下的樣本在一維空間…

GPT-4和Claude哪個好

選擇GPT-4還是Claude?這就像在問“蘋果還是橙子哪個更好”——?答案完全取決于你的具體需求?。兩者都是頂尖大語言模型,但各有特色。 我為你做了詳細對比,幫你快速定位哪個更適合你: ?? 核心能力對比 特性GPT-4 (OpenAI)Claude (Anthropic)?語言理解/推理?頂尖水平,…

RHCE考試 ——筆記

RHCE模擬測試exam_start ehcerht-vmctl start all考前說明? 請勿更改 IP 地址。DNS 解析完整主機名&#xff0c;同時也解析短名稱。? 所有系統的 root 密碼都是 redhat? Ansible 控制節點上已創建用戶賬戶 devops。可以使用 ssh 訪問? 所需的所有鏡像保存在鏡像倉庫 utilit…

信創 CDC 實戰 | TiDB 實時入倉難點與解決方案解析(以 ClickHouse 為例)

國產數據庫加速進入核心系統&#xff0c;傳統同步工具卻頻頻“掉鏈子”。本系列文章聚焦 OceanBase、GaussDB、TDSQL、達夢等主流信創數據庫&#xff0c;逐一拆解其日志機制與同步難點&#xff0c;結合 TapData 的實踐經驗&#xff0c;系統講解從 CDC 捕獲到實時入倉&#xff0…

Linux修煉:自動化構建make/Makefile

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《C修煉之路》、《Linux修煉&#xff1a;終端之內 洞悉真理…

GaussDB 分布式部署下創建表方法

1、問題現象 分布式集群采用水平分表的方式,將業務數據表的元組/行打散存儲到各個節點內。 2、技術背景 通過全并行數據處理技術和快速定位到數據存儲位置等手段可極大提升數據庫性能,GaussDB分布式部署下可以創建倆種類型表,在做實際業務系統開發時根據業務場景創建不同表。…

Padavan路由器設置DNSmasq的DHCP Option

是下文的拓展&#xff1a;由于更換路由器為Padavan&#xff0c;需要配置DHCP option才能使得AC能夠納管AP 愛快路由器下水星&#xff08;Mercury&#xff09;無線管理器AC跨三層發現AP_愛快管理第三方ap-CSDN博客 DNSmasq全部配置請參考&#xff1a;Man page of DNSMASQ dhcp-…

Ubuntu 22.04 Server 虛擬機初始化配置與優化指南

? Ubuntu 22.04 本地/通用服務器初始化配置清單 1. 設置時區 sudo timedatectl set-timezone Asia/Shanghai2. 防火墻配置&#xff08;UFW&#xff09; sudo ufw enable sudo ufw default deny # 可選放通SSH或其他端口 sudo ufw allow 22/tcp # 查看狀態 sudo ufw status # 禁…

如何在服務器上運行一個github項目

一、事情的緣起 今天一個朋友向我推薦了小紅書上的一個視頻&#xff0c;我看了一下這是一個在演示TypeWords項目的視頻。這個項目是Github上采用vue來編寫的一個開源項目。我進入該項目后看到了給出的樣例網址2study.top&#xff0c;然后到上面看了一下。我發現這是一個通過打…

7.14 Java基礎|String 和StringBuilder

補充注意&#xff1a;1、StringBuilder 的 append 方法可以接收整數類型的參數&#xff0c;并將其自動轉換為字符串后添加到 StringBuilder 中2、該方法適用于所有基本數據類型&#xff08;如 long、double 等&#xff09;和對象&#xff08;通過調用其 toString() 方法&#x…

React 第六十九節 Router中renderMatches的使用詳解及注意事項

前言 renderMatches 是 React Router 的一個高級實用函數&#xff0c;用于根據路由匹配結果渲染對應的組件樹。它提供了對路由渲染過程的底層控制能力&#xff0c;特別適用于自定義路由渲染邏輯的場景。 一、基本概念和功能 renderMatches 函數的作用是將路由匹配結果轉換為 Re…