天天看點

【Linux】日志管理基本使用

文章目錄

  • ​​1. 基本介紹​​
  • ​​2. 系統常用的日志​​
  • ​​3. 日志管理服務 rsyslogd​​
  • ​​4. 日志輪替​​
  • ​​4.1 基本介紹​​
  • ​​4.2 日志輪替檔案命名​​
  • ​​4.3 logrotate 配置檔案​​
  • ​​4.4 把自己的日志加入日志輪替​​
  • ​​4.5 應用執行個體​​
  • ​​5. 日志輪替機制原理​​
  • ​​6. 檢視記憶體日志​​

1. 基本介紹

  1. 日志檔案是重要的系統資訊檔案,其中記錄了許多重要的系統事件,包括使用者的登入資訊、系統的啟動資訊、系統的安全資訊、郵件相關資訊、各種服務相關資訊等。
  2. 日志對于安全來說也很重要,它記錄了系統每天發生的各種事情,通過日志來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕迹。
  3. 可以這樣了解:日志是用來記錄重大事件的工具

2. 系統常用的日志

​/var/log/​

​ 目錄就是系統日志檔案的儲存位置

【Linux】日志管理基本使用

系統常用的日志

【Linux】日志管理基本使用

應用案例

使用 root 使用者通過 xshell 登陸, 前兩次使用錯誤的密碼,第三次使用正确的密碼登入成功

看看在日志檔案​

​/var/log/secure​

​ 裡有沒有記錄相關資訊

【Linux】日志管理基本使用

3. 日志管理服務 rsyslogd

CentOS7.6 日志服務是 ​

​rsyslogd​

​ , CentOS6.x 日志服務是 ​

​syslogd​

​rsyslogd​

​ 功能更強大,rsyslogd 的使用、日志檔案的格式 和 syslogd 服務相容的。

原理示意圖

【Linux】日志管理基本使用

查詢 Linux 中的 ​

​rsyslogd​

​ 服務是否啟動,​

​grep -v​

​ 表示反向比對,從管道符中挑選出不包含 ​

​grep​

​ 的程序

ps aux | grep "rsyslog" | grep -v "grep"      
【Linux】日志管理基本使用
  • 查詢 ​

    ​rsyslogd​

    ​ 服務的自啟動狀态
systemctl list-unit-files | grep rsyslog      
【Linux】日志管理基本使用
  • 配置檔案:​

    ​/etc/rsyslog.conf​

  1. 日志類型分為:
    【Linux】日志管理基本使用
  2. 日志級别分為:
ebug ##有調試資訊的,日志通信最多
info ##一般資訊日志,最常用
notice ##最具有重要性的普通條件的資訊
warning ##警告級别
err ##錯誤級别,阻止某個功能或者子產品不能正常工作的資訊
crit ##嚴重級别,阻止整個系統或者整個軟體不能正常工作的資訊
alert ##需要立刻修改的資訊
emerg ##核心崩潰等重要資訊
none ##什麼都不記錄
注意:從上到下,級别從低到高,記錄資訊越來越少      
  • 由日志服務 rsyslogd 記錄的日志檔案,日志檔案的格式包含以下 4 列:
  1. 事件産生的時間
  2. 産生事件的伺服器的主機名
  3. 産生事件的服務名或程式名
  4. 事件的具體資訊

日志如何檢視執行個體

檢視一下 ​

​/var/log/secure​

​ 日志,這個日志中記錄的是使用者驗證和授權方面的資訊, 分析如何檢視

【Linux】日志管理基本使用

日志管理服務應用執行個體

在​

​/etc/rsyslog.conf​

​ 中添加一個日志檔案​

​/var/log/xdr.log​

​,當有事件發送時(比如 ​

​sshd​

​ 服務相關事件),該檔案會接收到資訊并儲存,示範 重新開機,登入 的情況,看看是否有日志儲存

【Linux】日志管理基本使用

​*.*​

​表示把是以類型和級别的日志都做記錄寫進 ​

​xdr.log​

【Linux】日志管理基本使用

重新伺服器後

reboot      
  • 重新連接配接 sshd,前兩次輸錯密碼,第三次正确輸入,檢視 sshd 的日志的記錄情況
cat xdr.log | grep sshd      
【Linux】日志管理基本使用

4. 日志輪替

4.1 基本介紹

4.2 日志輪替檔案命名

  1. centos7 使用 ​

    ​logrotate​

    ​​ 進行日志輪替管理,要想改變日志輪替檔案名字,通過 ​

    ​/etc/logrotate.conf​

    ​​ 配置檔案中“​

    ​dateext​

    ​”參數:
  2. 如果配置檔案中有“​

    ​dateext​

    ​​”參數,那麼日志會用日期來作為日志檔案的字尾,例如 :“​

    ​secure-20220101​

    ​”。這樣日志檔案名不會重疊,也就不需要日志檔案的改名, 隻需要指定儲存日志個數,删除多餘的日志檔案即可。
  3. 如果配置檔案中沒有“​

    ​dateext​

    ​​”參數,日志檔案就需要進行改名了。當第一次進行日志輪替時,目前的“secure”日志會自動改名為“​

    ​secure.1​

    ​​”,然後建立“secure”日志, 用來儲存新的日志。當第二次進行日志輪替時,“​

    ​secure.1​

    ​​”會自動改名為“​

    ​secure.2​

    ​”, 目前的“secure”日志會自動改名為“secure.1”,然後也會建立“secure”日志,用來儲存新的日志,以此類推。

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
}      
  • 參數說明:
    【Linux】日志管理基本使用

4.4 把自己的日志加入日志輪替

  1. 第一種方法是直接在​

    ​/etc/logrotate.conf​

    ​ 配置檔案中寫入該日志的輪替政策
  2. 第二種方法是在​

    ​/etc/logrotate.d/​

    ​目錄中建立立該日志的輪替檔案,在該輪替檔案中寫入正确的輪替政策,因為該目錄中的檔案都會被“​

    ​include​

    ​”到主配置檔案中,是以也可以把日志加入輪替。
  3. 推薦使用第二種方法,因為系統中需要輪替的日志非常多,如果全都直接寫入​

    ​/etc/logrotate.conf​

    ​ 配置檔案,那麼這個檔案的可管理性就會非常差,不利于此檔案的維護。
  4. 在​

    ​/etc/logrotate.d/​

    ​ 配置輪替檔案一覽
    【Linux】日志管理基本使用

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​

    ​​ 通過這個檔案依賴定時任務執行的。
    【Linux】日志管理基本使用
    【Linux】日志管理基本使用

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