/var/log
常用的系統日志如下:
核心啟動日志:/var/log/messages
系統報錯或重新開機服務等日志:/var/log/messages
郵件系統日志:/var/log/maillog
cron(定制任務日志):/var/log/cron #計劃日志執行成功與否,在這個檔案中
驗證系統使用者登入: /var/log/secure
記錄所有的登入和登出:/var/log/wtmp
每個使用者最後登入資訊:/var/log/lastlog
錯誤的登入資訊:/var/log/btmp
>/var/log/wtmp #清空登入登出記錄
last #檢視wtmp
lastlog #檢視使用者最後登入時間
lastb #檢視錯誤登入資訊,可以判斷是否存在暴力破解
2.日志記錄方式: 先分類,然後每個類中再分級别
主要7種日志分類(FACILITY):
authpriv 安全認證相關
cron at和cron定時相關
daemon 背景程序相關
kern 核心産生
lpr 列印系統産生
mail 郵件系統相關
syslog 日志服務本身
news 新聞系統 (和BBS差不多,新聞討論區)
uucp uucp系統産生 。Unix-to-Unix Copy(UNIX至UNIX的拷貝),Unix系統的一項功能,允許計算機之間以存儲-轉發方式交換e-mail和消息。在Internet興起之前是Unix系統之間連網的主要方式。
local0到local7 #共8個類型,系統保留的:8個系統日志類型,給其它程式使用。或使用者 自定義用
8個日志級别:以下排列,由輕到重
級别(PRIOROTY):
debug 排錯資訊。開發人
info 正常資訊
notice 稍微要注意的
warn 警告
err(error) 錯誤
crit(critical) 關鍵的錯誤
alert 警報警惕
emerg(emergency) 緊急,突發事件
日志服務:
1).rhel5:
服務名稱:syslog
配置檔案:
#vim /etc/syslog.conf
2) .RHEL6:rsyslog
#vim /etc/rsyslog.conf
3).RHEL7:rsyslog
進入配置檔案顯示内容如下:
1. kern.* 核心類型的所級别日志
2 *.info;mail.none;news.none;authpriv.none;cron.none:由于 mail, news, authpriv, cron 等類别産生的訊息較多,是以在 /var/log/messages 裡面不記錄這些項目。除此其他訊息都寫入/var/log/messages 中。是以messages 檔案很重要
3. authpriv.* 認證方面的訊息均寫入 /var/log/secure 檔案;
4. mail.*:郵件方面的訊息則均寫入 /var/log/maillog 檔案;
5. cron.*:例行性工作排程均寫入 /var/log/cron 檔案;
6. local7.*:将本機開機時應該顯示到螢幕的訊息寫入到 /var/log/boot.log 檔案中;
/etc/rsyslog.conf 中日志輸入規則:
例:
. :代表『比後面還要高的等級都被記錄下來』的意思,
例如: mail.info 代表隻要是 mail 類型的資訊,而且該資訊等級高于 info (包括 info 本身)時,就會被記錄下來的意思。
.= :代表所需要的等級就是後面接的等級而已, 其他的都不要!
.! :代表不等于,亦即是除了該等級外的其他等級都記錄。
舉例:
cron.none 對于cron類型日志不記錄任何資訊
cron.=err 對于cron類型日志隻記錄err級别的資訊
cron.err 對于cron類型日志記錄大于err級别的資訊
cron.!err 對于cron類型日志不記錄err級别的資訊,其他級别都記錄。
記錄日志的位置:
1、日志的相對路徑:通常就是放在 /var/log中
2、 存在遠端日志伺服器上
3、有時日志會直接彈出在螢幕上。類似于wall指令。
擴充:
wall指令介紹:
wall -- send a message to everybody’sterminal.
[root@localhost ~]#wall Today is nice day!!!
wall Today is nicedayvim /etc/rsyslog.conf !
Broadcast message [email protected] (pts/0) (Thu Dec 17 22:10:28 2015):
Today is nice dayvim/etc/rsyslog.conf !
這樣所有登入Linux的虛端的使用者都會收到這個資訊。
[root@localhost ~]# vim /etc/rsyslog.conf
mail.* -/var/log/maillog
在上面的第四行關于 mail 的記錄中,在記錄的檔案 /var/log/maillog 前面還有個減号『 - 』是幹嘛用的?
由于郵件所産生的訊息比較多,是以我們希望郵件産生的訊息先儲存在速度較快的記憶體中 (buffer) ,等到資料量夠大了才一次性的将所有資料都填入磁盤内,這樣将有利于減少對磁盤讀寫的次數,減少IO讀寫開銷。另外,由于訊息是暫存在記憶體内,是以若不正常關機導緻登入資訊未寫入到文檔中,可能會造成部分資料的遺失。
自定義sshd服務的日志
local0.* /var/log/sshd.log
[root@localhost ~]#systemctl restart rsyslog.service
配置sshd服務的配置檔案
[root@localhost ~]# vim /etc/ssh/sshd_config
SyslogFacility local0
[root@localhost ~]#systemctl restart sshd
[root@localhost ~]# ls /var/log/sshd.log
/var/log/sshd.log
[root@localhost ~]# cat!$
cat /var/log/sshd.log
Dec 17 22:18:38localhost sshd[35876]: Server listening on 0.0.0.0 port 22.
Dec 17 22:18:38localhost sshd[35876]: Server listening on :: port 22.
日志檢視方式
時間 主機 程序ID 執行的操作
如何防止日志被黑客删除呢?
[root@localhost ~]#chattr +a /var/log/sshd.log
[root@localhost ~]#lsattr /var/log/sshd.log
-----a----------/var/log/sshd.log
加入了這個屬性後,你的 /var/log/messages 登入檔從此就僅能被增加,而不能被删除,直到 root 以『 chattr -a /var/log/messages 』取消這個 a 的參數後,才能被删除移!
5.日志復原:
logrotate(日志復原過程: 建立新檔案、改名舊檔案。)
#vim/etc/logrotate.conf
[root@localhost ~]# vim /etc/logrotate.conf
weekly <==預設每個禮拜對日志檔進行一次 rotate 的工作
rotate 4<==保留幾個日志文檔呢?預設是保留四個!
create <== 復原日志後,建立一個新的空檔案來存儲新的資料。
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
說明:
/var/log/wtmp { <==僅針對 /var/log/wtmp 所設定的參數
monthly <==每個月一次,取代每周!
minsize 1M <==檔案容量一定要超過 1M 後才進行rotate (略過時間參數)
create 0664 root utmp<==設定建立檔案的權限 、所有者、使用者組
rotate 1 <==僅保留一個,亦即僅有 wtmp.1 保留而已。 }
配置遠端日志伺服器,實作日志集中管理:
1.配置SERVER端(接收端): xuegod68服務端服務端。 xuegod69做用戶端
将:
# Provides TCP syslogreception
#$ModLoad imtcp.so
#$InputTCPServerRun 514
改為:
$ModLoad imtcp.so
$InputTCPServerRun 514
[root@localhost ~]#netstat -anptu | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 36217/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 36217/rsyslogd
2. 配置CLIENT端(發送端):
[root@xuegod69 ~]#vim /etc/rsyslog.conf
*.* @@192.168.1.68:514
[root@xuegod69 ~]#systemctl restart rsyslog.service
在服務端檢視
[root@localhost ~]#tail -f /var/log/messages
在用戶端執行
[root@xuegod69 ~]#systemctl restart NetworkManager
最終日志内容在服務端進行顯示