目標
對於日誌系統有基礎的認識,瞭解【常見的日誌】【配置的日誌】【輪替的日誌】
學習目錄
1.常見的日誌
2.配置的日誌
3.轉儲的日誌
1.常見的日誌
在Linux大部分發行版都內置使用rsyslog系統日誌,常見的日誌一般存放在/var/log中。
根據服務對象一般可以把日誌分爲兩種:
- 系統日誌
- 應用日誌
系統日誌主要存放系統內置程序或系統內核之類的日誌信息。
應用日誌主要是存放第三方應用所產生的日誌。
常見的系統日誌
alternatives.log | 系統的一些更新替代信息記錄 |
---|---|
apport.log | 應用程序崩潰信息記錄 |
apt/history.log | 使用apt-get安裝卸載軟件的信息記錄 |
apt/term.log | 使用apt-get時的具體操作 |
auth.log | 登錄認證的信息記錄 |
boot.log | 系統啓動時的程序服務的日誌信息 |
btmp | 錯誤的信息記錄 |
Consolekit/history | 控制檯的信息記錄 |
dist-upgrade | dist-upgrade 這種更新方式的信息記錄 |
dmesg | 啓動時,顯示屏幕上內核緩衝信息,與硬件有關的信息 |
dpkg.log | dpkg 命令管理包的日誌 |
faillog | 用戶登錄失敗詳細信息記錄 |
fontconfig.log | 與字體配置有關的信息記錄 |
kern.log | 內核產生的信息記錄,在自己修改內核時很有幫助 |
lastlog | 用戶的最近信息記錄 |
wtmp | 登錄信息的記錄,wtmp可以找出誰正在進入系統 |
syslog | 系統信息記錄 |
2.配置的日誌
日誌信息是如何實現的?
通過兩種方式:
- 一種由軟件開發商自己來自定義日誌格式然後指定輸出日誌位置
- 一種方式就是Linux提供的日誌服務程序,也就是rsyslog
rsyslog的全稱是 rocket-fast system for log,它提供了高性能高安全功能和模塊化設計。
rsyslog的配置文件有什麼呢?
- 一個是/etc/rsyslog.conf
#配置環境,也就是加載模塊,文件所屬者 - 一個是/etc/rsyslog.d/50-default.conf
#配置的Filter Conditions
rsyslog模塊構成:
- input
- output
- parser
- queue
模塊流程:通過input module收集消息,然後將收集的消息傳送給parser module,通過分析模塊的層層處理將真正需要的消息傳送給output module,然後輸出至日誌文件。
queue模塊:高併發模塊。
etc/rsyslog.d/50-default.conf 配置文件
這個文件中主要是配置的 Filter Conditions,也就是我們在流程圖中所看見的 Parser & Filter Engine,它的名字叫 Selectors 是過濾 syslog 的傳統方法,他主要由兩部分組成,facility 與 priority。
3.轉儲的日誌
出現原因:每天都有許多的日誌信息被寫入文件,爲了節約空間logratate誕生了。
logratate:日誌文件管理工具。將舊的日誌文件刪除,創建新的日誌文件,根據日誌文件的大小或者日誌文件的天數來切割日誌,管理日誌,這個過程叫做“轉儲”。
logratate是基於CRON來運行,其腳本是/etc/cron.daily/logratate,同時,可以在/etc/logratate中找到其配置文件。
logratate配置文件信息參數及含義
see “man logrotate” for details //可以查看幫助文檔
rotate log files weekly
weekly //設置每週轉儲一次(daily、weekly、monthly當然可以使用這些參數每天、星期,月 )
keep 4 weeks worth of backlogs
rotate 4 //最多轉儲4次
create new (empty) log files after rotating old ones
create //當轉儲後文件不存在時創建它
uncomment this if you want your log files compressed
compress //通過gzip壓縮方式轉儲(nocompress可以不壓縮)
RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日誌文件的轉儲方式配置文件,包含在該目錄下
no packages own wtmp – we’ll rotate them here
/var/log/wtmp { //設置/var/log/wtmp日誌文件的轉儲參數
monthly //每月轉儲
create 0664 root utmp //轉儲後文件不存在時創建它,文件所有者爲root,所屬組爲utmp,對應的權限爲0664
rotate 1 //最多轉儲一次