文章目錄
-
- 1. 基本介紹
- 2. 系統常用的日志
- 3. 日志管理服務 rsyslogd
- 4. 日志輪替
-
- 4.1 基本介紹
- 4.2 日志輪替檔案命名
- 4.3 logrotate 配置檔案
- 4.4 把自己的日志加入日志輪替
- 4.5 應用執行個體
- 5. 日志輪替機制原理
- 6. 檢視記憶體日志
1. 基本介紹
-
- 日志檔案是重要的系統資訊檔案,其中記錄了許多重要的系統事件,包括使用者的登入資訊、系統的啟動資訊、系統的安全資訊、郵件相關資訊、各種服務相關資訊等。
- 日志對于安全來說也很重要,它記錄了系統每天發生的各種事情,通過日志來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕迹。
- 可以這樣了解:日志是用來記錄重大事件的工具
2. 系統常用的日志
/var/log/
目錄就是系統日志檔案的儲存位置
系統常用的日志
應用案例
使用 root 使用者通過 xshell 登陸, 前兩次使用錯誤的密碼,第三次使用正确的密碼登入成功
看看在日志檔案
/var/log/secure
裡有沒有記錄相關資訊
3. 日志管理服務 rsyslogd
CentOS7.6 日志服務是
rsyslogd
, CentOS6.x 日志服務是
syslogd
rsyslogd
功能更強大,rsyslogd 的使用、日志檔案的格式 和 syslogd 服務相容的。
原理示意圖
查詢 Linux 中的
rsyslogd
服務是否啟動,
grep -v
表示反向比對,從管道符中挑選出不包含
grep
的程序
ps aux | grep "rsyslog" | grep -v "grep"
- 查詢
服務的自啟動狀态rsyslogd
systemctl list-unit-files | grep rsyslog
- 配置檔案:
/etc/rsyslog.conf
-
- 日志類型分為:
- 日志級别分為:
ebug ##有調試資訊的,日志通信最多
info ##一般資訊日志,最常用
notice ##最具有重要性的普通條件的資訊
warning ##警告級别
err ##錯誤級别,阻止某個功能或者子產品不能正常工作的資訊
crit ##嚴重級别,阻止整個系統或者整個軟體不能正常工作的資訊
alert ##需要立刻修改的資訊
emerg ##核心崩潰等重要資訊
none ##什麼都不記錄
注意:從上到下,級别從低到高,記錄資訊越來越少
- 由日志服務 rsyslogd 記錄的日志檔案,日志檔案的格式包含以下 4 列:
-
- 事件産生的時間
- 産生事件的伺服器的主機名
- 産生事件的服務名或程式名
- 事件的具體資訊
日志如何檢視執行個體
檢視一下
/var/log/secure
日志,這個日志中記錄的是使用者驗證和授權方面的資訊, 分析如何檢視
日志管理服務應用執行個體
在
/etc/rsyslog.conf
中添加一個日志檔案
/var/log/xdr.log
,當有事件發送時(比如
sshd
服務相關事件),該檔案會接收到資訊并儲存,示範 重新開機,登入 的情況,看看是否有日志儲存
*.*
表示把是以類型和級别的日志都做記錄寫進
xdr.log
重新伺服器後
reboot
- 重新連接配接 sshd,前兩次輸錯密碼,第三次正确輸入,檢視 sshd 的日志的記錄情況
cat xdr.log | grep sshd
4. 日志輪替
4.1 基本介紹
4.2 日志輪替檔案命名
- centos7 使用
進行日志輪替管理,要想改變日志輪替檔案名字,通過 logrotate
配置檔案中“/etc/logrotate.conf
”參數:dateext
- 如果配置檔案中有“
”參數,那麼日志會用日期來作為日志檔案的字尾,例如 :“dateext
”。這樣日志檔案名不會重疊,也就不需要日志檔案的改名, 隻需要指定儲存日志個數,删除多餘的日志檔案即可。secure-20220101
- 如果配置檔案中沒有“
”參數,日志檔案就需要進行改名了。當第一次進行日志輪替時,目前的“secure”日志會自動改名為“dateext
”,然後建立“secure”日志, 用來儲存新的日志。當第二次進行日志輪替時,“secure.1
”會自動改名為“secure.1
”, 目前的“secure”日志會自動改名為“secure.1”,然後也會建立“secure”日志,用來儲存新的日志,以此類推。secure.2
4.3 logrotate 配置檔案
-
為 /etc/logrotate.conf
的全局配置檔案logrotate
# rotate log files weekly, 每周對日志檔案進行一次輪替
weekly
# keep 4 weeks worth of backlogs, 共儲存 4 份日志檔案,當建立新的日志檔案時,舊的将會被删除
rotate 4
# create new (empty) log files after rotating old ones, 建立新的空的日志檔案,在日志輪替後
create
# use date as a suffix of the rotated file, 使用日期作為日志輪替檔案的字尾
dateext
# uncomment this if you want your log files compressed, 日志檔案是否壓縮。如果取消注釋,則日志會在轉儲的同時進行壓縮
#compress
#RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# 包含 /etc/logrotate.d/ 目錄中所有的子配置檔案。也就 是說會把這個目錄中所有子配置檔案讀取進來,
#下面是單獨設定,優先級更高。
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly # 每月對日志檔案進行一次輪替
create 0664 root utmp # 建立的新日志檔案,權限是 0664 ,所有者是 root ,所屬組是 utmp 組
minsize 1M # 日志檔案最小輪替大小是 1MB 。也就是日志一定要超過 1MB 才會輪替,否則就算時間達到
一個月,也不進行日志轉儲
rotate 1 # 僅保留一個日志備份。也就是隻有 wtmp 和 wtmp.1 日志保留而已
}
/var/log/btmp {
missingok # 如果日志不存在,則忽略該日志的警告資訊
monthly
create 0600 root utmp
rotate 1
}
- 參數說明:
4.4 把自己的日志加入日志輪替
-
- 第一種方法是直接在
配置檔案中寫入該日志的輪替政策/etc/logrotate.conf
- 第二種方法是在
目錄中建立立該日志的輪替檔案,在該輪替檔案中寫入正确的輪替政策,因為該目錄中的檔案都會被“/etc/logrotate.d/
”到主配置檔案中,是以也可以把日志加入輪替。include
- 推薦使用第二種方法,因為系統中需要輪替的日志非常多,如果全都直接寫入
配置檔案,那麼這個檔案的可管理性就會非常差,不利于此檔案的維護。/etc/logrotate.conf
- 在
配置輪替檔案一覽/etc/logrotate.d/
4.5 應用執行個體
- 案例,在
進行配置, 或者直接在 /etc/logrotate.conf
下建立檔案/etc/logrotate.d/
,編寫如下内容,具體輪替的效果可以參考 xdrlog
下的 /var/log
情況boot.log
/var/log/xdr.log
{
missingok
daily
copytruncate
rotate 7
notifempty
}
5. 日志輪替機制原理
- 日志輪替之是以可以在指定的時間備份日志,是依賴系統定時任務。在
目錄,就會發現這個目錄中是有 /etc/cron.daily/
檔案(可執行),logrotate
通過這個檔案依賴定時任務執行的。logrotate
6. 檢視記憶體日志
-
-
可以檢視記憶體日志,journalctl
- 常用的指令
journalctl ##檢視全部
journalctl -n 3 ##檢視最新 3 條
journalctl --since 19:00 --until 19:10:10 #檢視起始時間到結束時間的日志可加日期
journalctl -p err ##報錯日志
journalctl -o verbose ##日志詳細内容
journalctl _PID=1245 _COMM=sshd ##檢視包含這些參數的日志(在詳細日志檢視)
或者
journalctl | grep sshd