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列印產生的日誌
郵件收發資訊
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日誌檔案的命名規則3.2logrotate如果配置檔案中擁有「dateext」引數,那麼日誌會用日期來作為日誌檔案的字尾,例如「secure-20170605」。這樣的話日誌檔名不會重疊,所以也就不需要日誌檔案的改名,只需要儲存指定的日誌個數,刪除多餘的日誌檔案即可。
如果配置檔案中沒有「dateext」引數,那麼日誌檔案就需要進行改名了。當第一次進行日誌輪替時,當前的「secure」日誌會自動改名為「secure.1」,然後新建「secure」日誌,用來儲存新的日誌。當第二次進行日誌輪替時,「secure.1」會自動改名為「secure.2」,當前的「secure」日誌會自動改名為「secure.1」,然後也會新建「secure」日誌,用來儲存新的日誌,以此類推。
配置檔案
參 數參 數 說 明
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...