Linux學習高階篇 六

2021-08-19 23:53:27 字數 4061 閱讀 2445

1 日誌管理

在centos 6.x中日誌服務已經由rsyslogd取代了原先的syslogd服務。rsyslogd日誌服務更加先進,功能更多。但是不論該服務的使用,還是日誌檔案的格式其實都是和syslogd服務相相容的,所以學習起來基本和syslogd服務一致。

rsyslogd的新特點:

(1)基於tcp網路協議傳輸日誌資訊;

(2)更安全的網路傳輸方式;

(3)有日誌訊息的及時分析框架;

(4)後台資料庫;

(5)配置檔案中可以寫簡單的邏輯判斷;

(6)與syslog配置檔案相相容。

檢視日誌服務是否啟動:

[root@localhost ~]# ps aux | grep rsyslogd

chkconfig --list | grep rsyslog #檢視服務是否自啟動

常見日誌的作用

日誌檔案

說 明/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/lastl

og記錄系統中所有使用者最後一次的登入時間的日誌。這

個檔案也是二進位制檔案,不能直接vi,而要使用lastlog

命令檢視

/var/log/mailog

記錄郵件資訊。

/var/log/message

記錄系統重要資訊的日誌。這個日誌檔案中會記錄linux系統的絕大

多數重要資訊,如果系統出現問題時,首先要檢查的就應該是這個

日誌檔案。

/var/log/secure

記錄驗證和授權方面的資訊,只要涉及賬戶和密碼的程式都會記錄。

比如說系統的登入,ssh的登入,su切換使用者,sudo授權,甚至新增

使用者和修改使用者密碼都會記錄在這個日誌檔案中。

/var/log/wtmp

永久記錄所有使用者的登入、登出資訊,同時記錄系統的啟動、重啟、

關機事件。同樣這個檔案也是乙個二進位制檔案,不能直接vi,而需

要使用last命令來檢視。

/var/run/utmp

記錄當前已經登入的使用者的資訊。這個檔案會隨著使用者的登入和注

銷而不斷變化,只記錄當前登入使用者的資訊。同樣這個檔案不能直

接vi,而要使用w,who,users等命令來查詢。

2 rsyslogd日誌服務

2.1日誌檔案的格式

基本日誌格式包含以下四列:

(1)事件產生的時間;

(2)發生事件的伺服器的主機名;

(3)產生事件的服務名或程式名;

(4)事件的具體資訊。

2.2 /etc/rsyslog.conf配置檔案

authpriv.* /var/log/secure

#服務名稱[連線符號]日誌等級 日誌記錄位置

#認證相關服務.所有日誌等級 記錄在/var/log/secure日誌中

服務名稱

服務名稱

說 明auth

authpriv

替代)authpriv

安全和認證相關訊息(私有的)

cron

系統定時任務

cront和at

產生的日誌

daemon

和各個守護程序相關的日誌

ftpftp守護程序產生的日誌

kern

核心產生的日誌(不是使用者程序產生的)

local0-local7

為本地使用預留的服務

lpr列印產生的日誌

mail

郵件收發資訊

news

與新聞伺服器相關的日誌

syslog

有syslogd

服務產生的日誌資訊(雖然服務名

稱已經改為

rsyslogd

,但是很多配置都還是沿

用了syslogd

的,這裡並沒有修改服務名)。

user

使用者等級類別的日誌資訊

uucp

uucp子系統的日誌資訊,

uucp

是早期linux

系統進行資料傳遞的協議,後來也常用在新聞

組服務中。

連線符號

連線符號可以識別為:

(1)「*」代表所有日誌等級,比如:「authpriv.*」代表authpriv認證資訊服務產生的日誌,所有的日誌等級都記錄

(2)「.」代表只要比後面的等級高的(包含該等級)日誌都記錄下來。比如:「cron.info」代表cron服務產生的日誌,只要日誌等級大於等於info級別,就記錄

(3)「.=」代表只記錄所需等級的日誌,其他等級的都不記錄。比如:「*.=emerg」代表人和日誌服務產生的日誌,只要等級是emerg等級就記錄。

(4)「.!」代表不等於,也就是除了該等級的日誌外,其他等級的日誌都記錄.

3 日誌輪替

3.1日誌檔案的命名規則

如果配置檔案中擁有「dateext」引數,那麼日誌會用日期來作為日誌檔案的字尾,例如「secure-20170605」。這樣的話日誌檔名不會重疊,所以也就不需要日誌檔案的改名,只需要儲存指定的日誌個數,刪除多餘的日誌檔案即可。

如果配置檔案中沒有「dateext」引數,那麼日誌檔案就需要進行改名了。當第一次進行日誌輪替時,當前的「secure」日誌會自動改名為「secure.1」,然後新建「secure」日誌,用來儲存新的日誌。當第二次進行日誌輪替時,「secure.1」會自動改名為「secure.2」,當前的「secure」日誌會自動改名為「secure.1」,然後也會新建「secure」日誌,用來儲存新的日誌,以此類推。

3.2logrotate

配置檔案

參 數參 數 說 明

daily

日誌的輪替週期是每天

weekly

日誌的輪替週期是每週

monthly

日誌的輪替週期是每月

rotate 數字

保留的日誌檔案的個數。

0指沒有備份

compress

日誌輪替時,舊的日誌進行壓縮

create mode owner

group

建立新日誌,同時指定新日誌的許可權與所有者和

所屬組。如

create 0600 root utmp

mail address

當日誌輪替時,輸出內容通過郵件傳送到指定的

郵件位址。如

mail [email protected]

missingok

如果日誌不存在,則忽略該日誌的警告資訊

notifempty

如果日誌為空檔案,則不進行日誌輪替

minsize 大小

日誌輪替的最小值。也就是日誌一定要達到這個

最小值才會輪替,否則就算時間達到也不輪替

size 大小

日誌只有大於指定大小才進行日誌輪替,而不是

按照時間輪替。如

size 100k

dateext

使用日期作為日誌輪替檔案的字尾。如

secure-

20170605

3.3logrotate命令 

[root@localhost ~]# logrotate [選項] 配置檔名

選項:如果此命令沒有選項,則會按照配置檔案中的條件進行日誌輪替

-v:顯示日誌輪替過程。加了-v選項,會顯示日誌的輪替的過程

-f: 強制進行日誌輪替。不管日誌輪替的條件是否已經符合,強制配置檔案中所有的日誌進行輪替

Linux學習高階篇 一

1shell概述 shell的分類 bourne shell 從1979起unix就開始使用bourne shell,bourne shell的主檔名為sh。c shell c shell主要在bsd版的unix系統中使用,其語法和c語言相類似而得名.shell的兩種主要語法型別有bourne和c,...

Linux學習高階篇 三

1.1數值運算與運算子 1 declare宣告變數型別 root localhost declare 選項 變數名 選項 給變數設定型別屬性 取消變數的型別屬性 i 將變數宣告為整數型 integer x 將變數宣告為環境變數 p 顯示指定變數的被宣告的型別 linux中運算子的優先順序如下 優先順...

Linux學習 命令篇(2) 高階

1.探查程序 ps e 顯示所有程序 f 顯示完整的輸出個是 l 長格式輸出,顯示更多的資訊 2.實時監測程序 topi 切替是否顯示空閒程序 k 結束指定程序 q 退出top命令 3.結束程序以及向程序傳送訊號 訊號 1 hup掛起 2int中斷3 quit 結束執行 9kill 無條件終止 11...