Linux rsyslogd服務以及日誌檔案

2021-08-10 00:07:42 字數 3718 閱讀 5033

在 centos 6.x 中,日誌服務已經由 rsyslogd 取代了原先的 syslogd。red hat 公司認為 syslogd 已經不能滿足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特點:

rsyslogd 日誌服務更加先進,功能更多。但是,不論是該服務的使用,還是日誌檔案的格式,其實都是和 syslogd 服務相相容的,所以學習起來基本和 syslogd 服務一致。

我們如何知道 linux 中的 rsyslogd 服務是否啟動了呢?如何查詢 rsyslogd 服務的自啟動狀態呢?命令如下:

[root@localhost ~]# ps aux | grep "rsyslog" | grep -v "grep"

root 1139 0.0 0.2 35948 1500 ? sl 09:40 0:00 /sbin/rsyslogd -i/var/run/syslogd.pid -c 5

#有rsyslogd服務的程序,所以這個服務已經啟動了

[root@localhost ~]# chkconfig --list | grep rsyslog

rsyslog 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

#rsyslog服務在2、3、4、5執行級別上是開機自啟動的

系統中的絕大多數日誌檔案是由 rsyslogd 服務來統一管理的,只要各個程序將資訊給予這個服務,它就會自動地把日誌按照特定的格式記錄到不同的日誌檔案中。也就是說,採用 rsyslogd 服務管理的日誌檔案,它們的格式應該是統一的。

在 linux 系統中有一部分日誌不是由 rsyslogd 服務來管理的,比如 apache 服務,它的日誌是由 apache 軟體自己產生並記錄的,並沒有呼叫 rsyslogd 服務。但是為了便於讀取,apache 日誌檔案的格式和系統預設日誌的格式是一致的。

日誌檔案是重要的系統資訊檔案,其中記錄了許多重要的系統事件,包括使用者的登入資訊、系統的啟動資訊、系統的安全資訊、郵件相關資訊、各種服務相關資訊等。這些資訊有些非常敏感,所以在 linux 中這些日誌檔案只有 root 使用者可以讀取。

那麼,系統日誌檔案儲存在什麼地方呢?還記得 /var/ 目錄嗎?它是用來儲存系統動態資料的目錄,那麼 /var/log/ 目錄就是系統日誌檔案的儲存位置。我們通過表 1 來說明一下系統中的重要日誌檔案。

表 1 系統中的重要日誌檔案

日誌檔案

說 明/var/log/cron

記錄與系統定時任務相關的曰志

/var/log/cups/

記錄列印資訊的曰志

/var/log/dmesg

記錄了系統在開機時核心自檢的信總。也可以使用dmesg命令直接檢視核心自檢資訊

/var/log/btmp

記錄錯誤登陸的日誌。這個檔案是二進位制檔案,不能直接用vi檢視,而要使用lastb命令檢視。命令如下:

[root@localhost log]#lastb

root tty1 tue jun 4 22:38 - 22:38 (00:00)

#有人在6月4 日 22:38便用root使用者在本地終端 1 登陸錯誤

/var/log/lasllog

記錄系統中所有使用者最後一次的登入時間的曰志。這個檔案也是二進位制檔案.不能直接用vi 檢視。而要使用lastlog命令檢視

/var/iog/mailog

記錄郵件資訊的曰志

/var/log/messages

它是核心系統日誌檔案,其中包含了系統啟動時的引導資訊,以及系統執行時的其他狀態訊息。i/o 錯誤、網路錯誤和其他系統錯誤都會記錄到此檔案中。其他資訊,比如某個人的身份切換為 root,已經使用者自定義安裝軟體的日誌,也會在這裡列出。

/var/log/secure

記錄驗證和授權方面的倍息,只要涉及賬戶和密碼的程式都會記錄,比如系統的登入、ssh的登入、su切換使用者,sudo授權,甚至新增使用者和修改使用者密碼都會記錄在這個日誌檔案中

/var/log/wtmp

永久記錄所有使用者的登陸、登出資訊,同時記錄系統的後動、重啟、關機事件。同樣,這個檔案也是二進位制檔案.不能直接用vi檢視,而要使用last命令檢視

/var/tun/ulmp

記錄當前已經登入的使用者的資訊。這個檔案會隨著使用者的登入和登出而不斷變化,只記錄當前登入使用者的資訊。同樣,這個檔案不能直接用vi檢視,而要使用w、who、users等命令檢視

除系統預設的日誌之外,採用 rpm 包方式安裝的系統服務也會預設把日誌記錄在 /var/log/ 目錄中(原始碼包安裝的服務日誌存放在原始碼包指定的目錄中)。不過這些日誌不是由 rsyslogd 服務來記錄和管理的,而是各個服務使用自己的日誌管理文件來記錄自身的日誌。以下介紹的日誌目錄在你的 linux 上不一定存在,只有安裝了相應的服務,日誌才會出現。服務日誌如表 2 所示。

表 2 服務日誌

日誌檔案

說明/var/log/httpd/

rpm包安裝的apache取務的預設日誌目錄

/var/log/mail/

rpm包安裝的郵件服務的額外日誌因錄

/var/log/samba/

rpm色安裝的samba服務的日誌目錄

/var/log/sssd/

守護程序安全服務目錄

只要是由日誌服務 rsyslogd 記錄的日誌檔案,它們的格式就都是一樣的。所以我們只要了解了日誌檔案的格式,就可以很輕鬆地看懂日誌檔案。

日誌檔案的格式包含以下 4 列:

我們檢視一下 /var/log/secure 日誌,這個日誌中主要記錄的是使用者驗證和授權方面的資訊,更加容易理解。命令如下:

[root@localhost ~]# vi /var/log/secure

jun 5 03:20:46 localhost sshd[1630]:accepted password for root from 192.168.0.104 port 4229 ssh2

# 6月5日 03:20:46 本地主機 sshd服務產生訊息:接收從192.168.0.104主機的4229埠發起的ssh連線的密碼

jun 5 03:20:46 localhost sshd[1630]:pam_unix(sshd:session):session opened for user root by (uid=0)

#時間 本地主機 sshd服務中pam_unix模組產生訊息:開啟使用者root的會話(uid為0)

jun 5 03:25:04 localhost useradd[1661]:new group:name=bb, gid=501

#時間 本地主機 useradd命令產生訊息:新建立bb組,gid為501

jun 5 03:25:04 localhost useradd[1661]:new user:name=bb, uid=501, gid=501, home=/home/bb, shell=/bin/bash

jun 5 03:25:09 localhost passwd:pam_unix(passwd:chauthtok):password changed for bb

我擷取了一段日誌的內容,其實分析日誌既是重要的系統維護工作,也是一項非常枯燥和煩瑣的工作。如果我們的伺服器出現了一些問題,比如系統不正常重啟或關機、使用者非正常登入、服務無法正常使用等,則都應該先查詢日誌。

實際上,只要感覺到伺服器不是很正常就應該檢視日誌,甚至在伺服器沒有什麼問題時也要養成定時檢視系統日誌的習慣。

FTP服務 Web服務

ftp服務 web服務 一 ftp概述和搭建 1 ftp是一種應用層協議 採用c s結構設計,在傳輸層使用的是tcp的21 控制連線 與20 資料連線 2 搭建ftp站點 二 常用 ftp 服務端程式 1 iis windows server 2012 r2角色中的乙個可選角色服務 iis 元件主要...

SpringCloud服務調服務

org.springframework.cloud spring cloud starter feign enablefeignclients configuration public class mybatisplusconfig 資料許可權外掛程式 return datascopeinterce...

服務熔斷 服務降級

當某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的呼叫,快速返回錯誤的響應資訊。當檢測到該節點微服務呼叫響應正常後,恢復呼叫鏈路。當伺服器壓力劇增的情況下,根據實際業務情況及流量,對一些服務和頁面有策略的不處理或換種簡單的方式處理,從而釋放伺服器資源以保證核心交易正常運作...